Projeto Yocto – Configurando para diferentes Boards

On 22 de agosto de 2014 by admin

yocto-project-transp

 

Neste Tutorial iremos mostrar um passo a passo para criar uma imagem para algumas Boards, utilizando o Yocto. O objetivo final é termos a possibilidade de compreender e usar diferentes modelos de hardware, utilizando a mesma base de software para possibilitar flexibilidade em um projeto de sistema embarcado.

building-an-image

O sistema permite o uso do QEMU para emulação e teste da board

Boards e Máquinas.

Neste passo a passo iremos trabalhar com os seguintes fabricantes: Texas, AllWinner, Freescale. Estes fabricantes utilizam processadores ARM [1], e possuem um conjunto de boards de trabalho – daqui em diante referidas como BSP – as quais iremos explorar neste e nos próximos tutoriais

AllWinner:

FreeScale

  • imx6qsabresd [link]
  • wandboard-solo[link]
  • wandboard-dual[link]
  • wandboard-quad[link]

 

Texas

  • beaglebone[link]
  • beagleboneblack[link]

 

Configurar a máquina de trabalho

O computador usado para criar as imagens conterá todos templates e por fim as imagens geradas. Se o objetivo for criar varias imagens, como é o nosso caso, é recomendável ter uma quantidade considerável de espaço livre em disco, pelo menos 1TB para conter todas as imagens geradas e os arquivos do repositório.

O código fonte

Para cada distribuição linux, existe uma sequência de comandos para instalar os pacotes necessários

Ubuntu

Os pacotes necessários para a instalação

[source] $ sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm curl[/source]

 Fedora

Neste caso, será necessário

[source]$ sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath ccache SDL-devel xterm[/source]

OpenSUSE

O seguinte comando

[source]$ sudo zypper install python gcc gcc-c++ git chrpath make wget python-xml diffstat texinfo python-curses patch libSDL-devel xterm[/source]

CentOS

O seguinte comando

[source]$ sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath SDL-devel xterm[/source]

Downloads e preparos

O objetivo agora é criar uma base local  e assim poder ser adaptada ao seu proprio trabalho. Se por acaso, for possivel, a contribuição pode ser disponibilizada para a comunidade de sua respectiva BSP.

Download do BSP para boards Texas e demais padronizadas

Para buscar o ambiente padrão, utilizando o oe. Neste caso, é esperado consumir em torno de 50GB de disco:

[source]$ git clone http://git.yoctoproject.org/git/poky
$ cd poky
$ git checkout -b daisy origin/daisy[/source]

Em seguida, para criar o branch local e configura-lo

[source]$ source oe-init-build-env[/source]

No caso da Texas, um tutorial especifico é recomendado:[link] para gerar as imagens e instala-las na board

Download do BSP para as boards da Freescale

Pegando o codigo fonte

Instale o repo

[source]$mkdir ~/bin
$curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$PATH=$PATH:~/bin
$chmod a+x ~/bin/repo[/source]

Para o Daisy, que é a versão em desenvolvimento mais atual. (em Agosto de 2014, está na versao 1.6.1)

[source]$ mkdir fsl-community-bsp
$ cd fsl-community-bsp
$ repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b daisy 
$ repo sync[/source]

O espaço requerido para este repo é de aproximadamente 250MB.

[source]$ repo start <new branch name> –all[/source]

Agora, será executado o script que permitira construir todo o espaço de trabalho para a board

[source]$ source setup-environment build[/source]

Apos isso, você estará no diretorio build, que contém os arquivos para criação da board.

Download do BSP para as boards da AllWinner (linux-sunxi)

Para este caso, o repositório utiliza o Angstrom como template:

[source]$git clone git://github.com/Angstrom-distribution/setup-scripts.git $cd setup-scripts $git checkout -b next origin/next[/source]

Em seguida, para cara máquina, deve-se fazer o source

[source]$MACHINE=cubieboard ./oebb.sh config cubieboard[/source]

A partir deste ponto, pode-se padronizar a configuração da distribuição, buscando criar um repositorio local com as layers necessárias. No próximo post iremos explorar o sistema de configuração e personalização das mesmas.

Referências:

[1] http://www.arm.com/
[2] https://community.freescale.com/docs/DOC-94849
[
3] http://linux-sunxi.org/OpenEmbedded
[
4] http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html
[
5] http://www.embarcados.com.br/beaglebone-black-yocto/
[
6] https://www.yoctoproject.org/downloads/bsps/daisy16/beaglebone

Trackbacks & Pings

Deixe um comentário

O seu endereço de e-mail não será publicado.