Grupo 2 Programación Distribuida - ASTROINGENIERIA/ASTROUFRO GitHub Wiki

Integrantes

  • Celso Martin
  • Patricio Mercado

Imagen Yocto para el Raspberry Pi

ASTROUFRO - Grupo de AstroIngeniería de la Universidad de La Frontera

Crear una distribución linux para Raspberry Pi 3

Estacion de trabajo:

  • Ubuntu 14.04 (LTS) x64
  • 90GB espacio libre en disco duro (particion /home)
  • 8GB ram

Instalar controlador de versiones GIT

  • $sudo apt-get update
  • $sudo apt-get install git

Instalar packetes requeridos para el correcto funcionamiento

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath

Instalación de Poky

Poky es la distribución de referencia del Proyecto Yocto. Contiene algunos de los componentes básicos (llamados sistema de compilación) de OpenEmbedded y un conjunto de metadatos para crear distribuciones integradas para una serie de objetivos. Es independiente de la plataforma y realiza una compilación cruzada utilizando la herramienta BitBake (un programador de tareas), el núcleo integrado y un conjunto predeterminado de metadatos.

$ cd $ git clone git://git.yoctoproject.org/poky

Instalacion metadata Raspberry pi & Zeroc ice

cd poky

$ git clone git://git.yoctoproject.org/meta-raspberrypi

$ git clone -b rocko git://git.yoctoproject.org/poky.git

Para ver en que maquinas es funcional, se puede utilizar el siguiente comando

$ ls ls meta-*/conf/machine/*.conf

Las que nos interesan son las siguientes

  • raspberrypi0.conf
  • raspberrypi0-wifi.conf
  • raspberrypi2.conf
  • raspberrypi3-64.conf
  • raspberrypi3.conf
  • raspberrypi-cm3.conf
  • raspberrypi-cm.conf
  • raspberrypi.conf

Iniciar entorno

source oe-init-build-env

Este es un script para la configuración / inicialización del entorno de compilación. No está destinado a ser ejecutado, sino que debe ser de origen. Su trabajo, entre otros, es inicializar un cierto número de variables de entorno y ubicarse en el directorio de compilación especificado en el argumento.

En la carpeta conf se crearon dos archivos:

  • local.conf: contiene parametros para configurar Bitbake.
  • bblayers.conf: lista de capas que bitbake implementará.

Configuración de local.conf & bblayers.conf

Configuramos local.conf

~/poky/build$ vim conf/local.conf

  • Escribimos el nombre de la maquina que vamos a usar en este caso raspberrypi3

MACHINE ?= "raspberrypi3"

  • Para agregar Zeroc ice a la imagen se necesita insertar lo siguiente:

IMAGE_INSTALL_append = " zeroc-ice zeroc-ice-python"

TOOLCHAIN_TARGET_TASK_append = " zeroc-ice-dev zeroc-ice-staticdev"

PREFERRED_VERSION_zeroc-ice = "3.7.1"

Configuramos bblayers.conf

~/poky/build$ vim conf/bblayers.conf

  • Los layers deben verse de la siguiemte forma
    /home/{USER}/poky/meta \
    /home/{USER}/poky/meta-yocto \
    /home/{USER}/poky/meta-yocto-bsp \
    /home/{USER}/poky/meta-raspberrypi \
    /home/{USER}/poky/meta-zeroc \

Construyendo imagen Poky

Para ver las imagenes que se pueden crear, se puede ejecutar los siguientes comandos
$ cd
$ cd poky
$ ls meta*/recipes*/images/*.bb

Para nuetro interes usaremos 'rpi-basic-image'
~/poky/build$ bitbake rpi-basic-image

Mostraria las siguientes configuraciones

Build Configuration:
BB_VERSION = "1.39.1"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "universal"
TARGET_SYS = "arm-poky-linux-gnueabi"
MACHINE = "raspberrypi3"
DISTRO = "poky"
DISTRO_VERSION = "2.5+snapshot-20181019"
TUNE_FEATURES = "arm armv7ve vfp thumb neon vfpv4 callconvention-hard cortexa7"
TARGET_FPU = "hard"
meta
meta-poky
meta-yocto-bsp = "master:289f792d2299a252e614d374617f0199be525806"
meta-zeroc = "rocko:2c9d787cb5b4d7b417c1c6cf24bcca3f9af25a2d"
meta-raspberrypi = "master:30200f75d60a6bd041410ac2cc885c1fadfac132"
meta-oe
meta-multimedia = "master:463fd3dff33457ba8fc519a2716f3270e054d533" \

Quemando imagen en micro SD

Para ver el correcto nombre del dispositivo se puede ejecutar el siguiente comando

$ lsblk

En este caso la tarjeta SD tiene el nombre de mmcblk0 , para grabar la imagen usaremos el siguiente comando

~/poky/build$ sudo dd if=tmp/deploy/images/raspberrypi3/rpi-basic-image-raspberrypi.rpi-sdimg of=/dev/mmcblk0 bs=1M

Ahora se inserta la tarjeta con la imagen quemada en la raspberry pi