SASE2015 - Booteando Linux en una CIAA NXP

Anuncio
SASE2015 - Booteando Linux en una CIAA NXP
Requisitos
Ezequiel García
Ariel D’Alessandro
August 10, 2015
IMPORTANTE: Los asistentes al taller deben seguir y completar instrucciones en forma previa al
dictado del mismo. Al comenzar el taller asumiremos que todos los equipos tienen el software que aquí
se instala y configura, listo para ser usado.
1 Paquetes
IMPORTANTE: Los siguientes paquetes deben estar instalados antes de comenzar el taller. ¡No se
debe asumir que se dispondrá de conexión a internet durante el mismo!
Los siguientes paquetes son necesarios:
• which
• tar
• sed
• cpio
• make
• python (version 2.6 o 2.7)
• binutils
• unzip
• build-essential (solo para sistemas Debian/Ubuntu)
• rsync
• wget
• gcc
• ncurses-dev
• g++
• git
• bash
• bc
• patch
• picocom
• gzip
• libusb-1.x-dev
• bzip2
• u-boot-tools (en algunas distros se llama
uboot-tools)
• perl
Por ejemplo, en Debian/Ubuntu(14.04) ejecutar:
$ sudo apt-get install sed make binutils build-essential gcc g++ bash patch gzip \
bzip2 perl tar cpio python unzip rsync wget libncurses5-dev git bc picocom \
libusb-1.0-0-dev u-boot-tools
1
Si tu Sistema Operativo es de 64 bits también deberás instalar los siguientes paquetes para 32 bits:
• libc6
• libstdc++6
• zlib1g
Por ejemplo, en Debian/Ubuntu(14.04) ejecutar:
$ sudo apt-get install libc6:i386 libstdc++6:i386 zlib1g:i386
2 Fuentes
$ git clone https://github.com/ciaa/u-boot.git
$ git clone https://github.com/ciaa/linux.git
$ git clone https://github.com/ciaa/buildroot.git
IMPORTANTE: Los siguientes repositorios deben estar clonados antes de comenzar el taller. ¡No se
debe asumir que se dispondrá de conexión a internet!
3 Openocd
Instalar Openocd v0.8.0:
$
$
$
$
$
$
wget http://downloads.sourceforge.net/project/openocd/openocd/0.8.0/openocd-0.8.0.tar.bz2
tar xf openocd-0.8.0.tar.bz2
cd openocd-0.8.0/
./configure --enable-ftdi
make
sudo make install
Si todo salió bien, deberíamos tener un binario instalado en /usr/local/bin/openocd, que podemos verificar con stat o file.
$ file /usr/local/bin/openocd
Si algo salió mal, el programa no compila o se ve un mensaje como este:
$ file /usr/local/bin/openocd
/usr/local/bin/openocd: cannot open `/usr/local/bin/openocd' (No such file or directory)
En ese caso, contactar a los organizadores.
4 Toolchain
El proceso de generación de la toolchain puede demandar un tiempo considerable, por lo que es de suma
importancia realizarlo antes de asistir al taller.
La toolchain la generamos con Buildroot ejecutando los siguientes comandos:
2
$
$
$
$
cd buildroot/
make ciaa_lpc4337_defconfig
make source
make toolchain
Una vez que tenemos la toolchain generada, definimos una función bash ’ciaa_env’ que setea algunas
variables del environment. De esta manera, cuando abrimos una consola y ejecutamos ’ciaa_env’ obtendremos un rápido acceso a la toolchain para utilizarla en la compilación del resto de los programas.
En el archivo archivo $HOME/.bashrc debemos agregar:
function ciaa_env {
export ARCH=arm
export PATH=$PATH:/path/to/buildroot/output/host/usr/bin/
export CROSS_COMPILE="arm-cortexm3-uclinuxeabi-"
test -f /path/to/buildroot/output/host/usr/bin/arm-cortexm3-uclinuxeabi-gcc \
&& echo "CIAA environment. ARCH=${ARCH}, CC=${CROSS_COMPILE}" \
|| echo "No toolchain installed!"
}
IMPORTANTE: Se debe reemplazar /path/to/ por la ubicación o ruta que corresponda según el
directorio de instalación. Se recomienda usar $HOME.
Si todo salió bien, se puede cargar el nuevo entorno. Para ello se debe abrir una nueva ventana y ejecutar
el comando ’ciaa_env’:
$ ciaa_env
CIAA environment. ARCH=arm, CC=arm-cortexm3-uclinuxeabi-
5 Para más info!
• Linux en la CIAA - http://www.proyecto-ciaa.com.ar/devwiki/doku.php?id=desarrollo:
linux
• Linux corriendo en CIAA-NXP - http://www.proyecto-ciaa.com.ar/devwiki/doku.php?id=
desarrollo:linux:linux_en_ciaa-nxp
3
Descargar