volver a Tutorial de Yocto Project

Crear Imagen para Atom E6xx

Este tutorial sirve para los kits SYS9402. 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
  • 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

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.2/poky-denzil-7.0.tar.bz2

Descargas yocto

Descomprimir el paquete

tar xvfj poky-denzil-7.0.tar.bz2

Bajar BSP

wget http://downloads.yoctoproject.org/releases/yocto/yocto-1.2/machines/crownbay/crownbay-denzil-7.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 Atom E6xx y Z6xx y placa de video integrada Embedded Media and Graphics Driver (EMGD) 1.10

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 crownbay-denzil-7.0.tar.bz2 -C ~/poky-denzil-7.0

Generar el entorno

cd poky-denzil-7.0/
source oe-init-build-env 

Esto Nos reubico en ~/poky-denzil-7.0/build/ Ahora debemos editar dos archivos de configuración, están ubicados en la carpeta ~/poky-denzil-7.0/build/conf/ creada recientemente.

Verificar que este la siguiente configuracion

local.conf

ubicado en ~/poky-denzil-7.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 ?= "crownbay"

Para que cree una imagen para el nuestro equipo y utilizando el BSP

LICENSE_FLAGS_WHITELIST = "license_emgd-driver-bin_1.10"

por las licencias propietarias del BSP

bblayer.conf

ubicado en ~/poky-denzil-7.0/build/conf/bblayer.conf en este archivo tenemos que agregar dos layers provistos por el BSP, que bajamos anteriormente y tenemos que poner su path completo en la seccion BBLAYER, debe quedar algo asi:

LCONF_VERSION = "4"

BBFILES ?= ""
BBLAYERS ?= " \
  /home/USUARIO/poky-denzil-7.0/meta \
  /home/USUARIO/poky-denzil-7.0/meta-yocto \
  /home/USUARIO/poky-denzil-7.0/meta-intel \
  /home/USUARIO/poky-denzil-7.0/meta-intel/meta-crownbay \
  "

Compilar/crear la imagen

cd ..
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

Más información

Cargamos La Imagen Creada

Nuestras Imágenes se van a generar en: ~/poky-denzil-7.0/build/tmp/deploy/images las que vamos a utilizar son las que terminan con extensión ext3 para Discos Rígidos convencionales y hddimg para memorias SD y pendrives

Disco Rigido

Vamos a cargar la imagen en el supuesto 2do disco “b” y la 3er partición “3” sdb3, también se recomienda poner una partición swap del tamaño de la memoria ram, para particionar se puede utilizar el cfdisk o alguna opción gráfica como el gparted

Primero Debemos Formatear una partición con formato ext3(también se puede hacer con el gparted)

sudo mkfs.ext3 /dev/sdb3

montamos el disco y la imagen y copiamos su contenido

# mkdir /mnt/target
# mkdir /mnt/target-ext3
# mount /dev/sdb3 /mnt/target
# mount -o loop sudo mount ~/poky-denzil-7.0/build/tmp/deploy/images/core-image-sato-crownbay.ext3 /mnt/target-ext3
# cp -a /mnt/target-ext3/* /mnt/target

ahora instalamos el gestor de arranque

# grub-install --recheck --root-directory=/mnt/target /dev/sdb

ahora creamos/editamos este archivo /mnt/target/boot/grub/grub.cfg

set default="0"
set timeout="30"

menuentry 'Yocto SDK' {
      insmod part_msdos
      insmod ext2
      set root='(hd0,msdos3)'
      linux /boot/bzImage root=/dev/sda3
}

Desmontamos

# umount /mnt/target
# umount /mnt/target-ext3
Pendrive o SD

En este ejemplo vamos a utilizar el disco sdc montar el sistema operativo en un pendrive o memoria SD

# dd if=~/poky-denzil-7.0/build/tmp/deploy/images/core-image-sato.hddimg of=/dev/sdc
# sync
# eject /dev/sdc

Nota: hay que utilizar sdc NO sdc1

Datos Útiles