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