volver a [[Tutorial de Yocto Project]] ======Crear Imagen para Beagleboard-XM ====== Esta imagen fue testeada en las siguientes plataformas * Beagleboard C4 * Beagleboard xM Rev A & B En Yocto project recomiendan utilizar alguna de estas distribuciones Ubuntu, Fedora, openSUSE y CentOS, ademas también es necesario tener al menos 70gb libres y conexión a Internet para la creación de la imagen. === Configuración Previa=== Usar al bash como interprete de comandos: sudo dpkg-reconfigure dash y luego seleccionar la opción **NO** Instalo paquetes necesarios para la compilación: * Ubuntu sudo apt-get install sed wget cvs subversion git-core coreutils unzip texi2html texinfo libsdl1.2-dev docbook-utils gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ desktop-file-utils chrpath libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff libtool xterm sudo apt-get install uboot-mkimage * Fedora sudo yum groupinstall "development tools" sudo yum install python m4 make wget curl ftp hg tar bzip2 gzip unzip python-psyco perl texinfo texi2html diffstat openjade docbook-style-dsssl sed docbook-style-xsl docbook-dtds docbook-utils sed bc eglibc-devel ccache pcre pcre-devel quilt groff linuxdoc-tools patch linuxdoc-tools cmake help2man perl-ExtUtils-MakeMaker tcl-devel gettext chrpath ncurses apr SDL-devel mesa-libGL-devel mesa-libGLU-devel gnome-doc-utils autoconf automake libtool xterm sudo yum install uboot-tools para bajar tenemos que bajar una version de poky del yocto project ===Bajar poky[VERSION].tar.bz2=== wget http://downloads.yoctoproject.org/releases/yocto/yocto-1.1/poky-edison-6.0.tar.bz2 [[http://www.yoctoproject.org/download/all?keys=&download_type=0&download_version=|Descargas yocto]] ===Descomprimir el paquete=== tar xvfj poky-edison-6.0.tar.bz2 ===Bajar BSP=== wget http://downloads.yoctoproject.org/releases/yocto/yocto-1.1/machines/beagleboard/beagleboard-edison-6.0.0.tar.bz2 Este Board Suport Package, es una Capa (Layer) que le podemos agregar a nuestro proyecto, esta capa tiene el soprte del porcesador OPMAP3530 y todos los periféricos de las beagleboard XM y C4 ==Descomprimir el BSP== Lo vamos a descomprimir dentro de nuestra carpeta de trabajo por comodidad(no es necesario que este en ese lugar) tar xvfj beagleboard-edison-6.0.0.tar.bz2 -C poky-edison-6.0 ===Generar el entorno=== cd poky-edison-6.0 source oe-init-build-env Esto Nos reubico en ~/poky-edison-6.0/build/ Ahora debemos editar un archivo de configuración, está ubicado en la carpeta //~/poky-edison-6.0/build/conf/// creada recientemente. ===Verificar que este la siguiente configuracion=== ==local.conf== ubicado en //~/poky-edison-6.0/build/conf/local.conf// BB_NUMBER_THREADS = "N" PARALLEL_MAKE = "-j N" N=cantidad de nucleos de la pc que va a compilar MACHINE ?= "beagleboard" Para que cree una imagen para el nuestro equipo y utilizando el BSP ===Compilar/crear la imagen=== Dentro de la carpeta build bitbake core-image-sato bitbake descarga y compila el recipe que le indiquemos, al poner como recipe core-image-[minimal sato micro ...], el buildsystem va a resolver las dependencias del recipe bajar compilar, empaquetar y crear la imagen que seleccionamos. Este Proceso va a tardar mas de 2hs, y va a ocupar 50gb por lo menos, hay que tener en cuenta que tiene que bajar todas las fuentes de los programas que componen el sistema operativo y luego compilarlas.. ==Algunas Imagenes interesantes== * **core-image-minimal**: Por ahora la imagen mas chica, sin entorno gráfico sin soporte completo del hardware especifico * **core-image-base**: Imagen Sin entorno gráfico que soprta completamente el hardware del target. * **core-image-core**: Imagen con un entorno gráfico elemental * **core-image-sato**: Imagen con entono gráfico basado en Busybox con theme Sato, con reproductor, administrador de archivos, etc recomendable para sistemas touch [[http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html|Más información]] ===Cargamos La Imagen Creada=== Nuestras Imágenes se van a generar en: //~/poky-edison-6.0/build/tmp/deploy/images// ==Preparar la memoria SD/Pendrive== En este ejemplo vamos a utilizar la memoria **sdc** montar el sistema operativo en un pendrive o memoria SD, hemos creado la imagen core-image-sato. Primero debemos crear las particiones de booteo fat16 y la partición donde va a estar alojado nuestro SO ext3. para esto podemos crear las particiones con [[http://manual.aptosid.com/es/part-cfdisk-es.htm|cfdisk]], o con alguna opción gráfica como el gparted, vamos a crear una partición de 50mb booteable en la primera partición primaria en fat16 y una del resto del espacio con extencion ext3 debe quedar algo asi: Dispositivo Inicio Comienzo Fin Bloques Id Sistema /dev/sdc1 * 62 137267 68603 e W95 FAT16 (LBA) /dev/sdc2 137268 7774207 3818470 83 Linux **si seguimos la opcion del cfdisk podemos formatear los las partciones con** Nota:toda esta sección se debe ejecutar como root u añadir sudo adelante de cada instruccion # mkfs.vfat -F 16 -n "boot" /dev/sdc1 # mke2fs -j -L "root" /dev/sdc2 **Ahora creamos dos carpetas temporales donde vamos a montar las particiones y copiar la información necesaria** # mkdir /mnt/root # mkdir /mnt/boot **Montamos las Particiones creadas** # mount /dev/sdc1 /mnt/boot/ # mount /dev/sdc2 /mnt/root/ **Copiamos SO/Creamos el Bootloader** # cd poky-edison-6.0/build/tmp/deploy/images/ # cp MLO-beagleboard /mnt/boot/MLO # cp u-boot-beagleboard.bin /mnt/boot/u-boot.bin # cp uImage-beagleboard.bin /mnt/boot/uImage # tar x -C /mnt/root -f core-image-sato-beagleboard.tar.bz2 # tar x -C /mnt/root -f modules-2.6.37.6-yocto-standard+-r21-beagleboard.tgz Así como esta todo podemos bootear y cargar el kernel y SO creado con la interfaz serie del beagleboard, pero vamos a crear un script para que esto se haga automático. Creamos un archivo de texto plano dentro de la carpeta de trabajo llamado **//serial-boot.cmd//**. setenv bootcmd 'mmc init; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000' setenv bootargs 'console=tty0 console=ttyO2,115200n8 root=/dev/mmcblk0p2 rootwait rootfstype=ext3 ro' boot creamos y copiamos el archivo boot.scr Nota: __debe estar instalado uboot-mkimage__ si no lo instalo al inicio del tutorial ejecute //apt-get install uboot-mkimage// # mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n Core_SATO -d ./serial-boot.cmd ./boot.scr Creamos otro arhivo de texto plano con nombre //uEnv.txt//, este archivo es el que va a ejecutar el bootloader creado anteriormente bootenv=boot.scr loaduimage=fatload mmc ${mmcdev} ${loadaddr} ${bootenv} mmcboot=echo Running boot.scr script from mmc ...; source ${loadaddr} **Copiamos los archivos creados** # cp boot.scr /mnt/boot/ # cp uEnv.txt /mnt/boot/ **Desmontamos ambas particiones y listo** # umount /dev/sdc2 # umount /dev/sdc1 Si se encuentran con problemas es recomendable conectarse al la interfaz serie del beagleboard 115200-N-8 ==Datos Útiles == [[http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html| Documentación YoctoProject]] [[http://www.yoctoproject.org/download/bsp/texas-instruments-arm-cortex-a8-development-board-beagleboard-0|Beagleboard BSP]] volver a [[Tutorial de Yocto Project]] --- //[[fespain@frba.utn.edu.ar|Francisco Espain]] 2012/10/03 20:07//