Projeto Yocto – Configurando para diferentes Boards
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.
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:
- cubieboard [link]
- cubieboard2[link]
- cubietruck[link]
- olinuxino-a13 [link]
- olinuxino-a10 [link]
- olinuxino-a10s [link]
- olinuxino-a20 [link]
- mele [link]
- meleg [link]
FreeScale
Texas
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]
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
[…] (Configuração da máquina de trabalho com diferentes sistemas operacionais pode ser consultada em http://www2.decom.ufop.br/imobilis/?p=3783). A placa que usamos nesse tutorial foi uma wandboard quad […]