Beaglebone Black + Yocto Daisy (Versão 1.6)

Beaglebone Black com Yocto Project

A nova versão 1.6 (daisy) do Yocto Project foi lançada recentemente e uma das novidades interessantes é que a Beaglebone Black agora é oficialmente suportada pelo projeto.

 

Sendo assim, não precisamos utilizar a camada de BSP da Texas Instruments (meta-ti) para adicionarmos suporte a Beaglebone Black no Yocto. Porém se você deseja usar a aceleração 3D por hardware do processador AM3359 (presente na BBB) você terá de recorrer a meta-ti.

 

 

Desde a versão 3.12 mainline do Kernel Linux a Beaglebone Black é suportada e nesta nova versão do Yocto o Kernel Linux construído é o 3.14, ou seja, uma versão bem recente. Mas existe uma limitação para BBB no mainline Linux Kernel: o suporte às capes não foi integrado ainda. Se você deseja usar as capes em seu projeto terá que usar o BSP da BBB disponibilizado pela meta-beagleboard e a versão do Kernel Linux utilizada é a 3.8. 

 

Se você é novo no mundo do Yocto sugiro que dê uma lida na seção "O que é o Yocto" no artigo "Beaglebone + Yocto" escrito pelo Henrique Rossi.

 

 

Preparando o Host

 

O Yocto Project suporta oficialmente as seguintes distribuições GNU/Linux como ambiente de construção:

  • Ubuntu 12.04, 13.10 e 14.04
  • Fedora 19 e 20 
  • CentOS 6.4 e 6.5
  • Debian 7.0, 7.1, 7.2, 7.3 e 7.4
  • openSUSE 12.2, 12.3 e 13.1

 

Para que ele execute no Host alguns pacotes necessitam ser instalados.

 

Ubuntu e Debian:

 

Fedora:

 

openSUSE:

 

CentOS:

 

 

Montando o ambiente de construção

 

Após instalar os pacotes para o Host, vamos criar os diretórios e baixar os fontes necessários:

 

Agora vamos configurar o ambiente para gerarmos os artefatos de software:

 

Modifique e adicione as seguintes variáveis no arquivo ~/yocto/build-daisy/conf/local.conf: 

 

Note que configuramos nossa machine como sendo a beaglebone (serve tanto para a white como a black), mudamos o diretório de download para podermos reutilizar os fontes baixados em outros projetos e adicionamos os módulos e dtb nas imagens que iremos gerar.

 

 

Construindo as imagens

 

Vamos gerar uma imagem mínima sem suporte a interface gráfica (core-image-mininal) com o comando:

 

Esta é a configuração de build que utilizada:

 

Vamos construir também uma imagem com suporte a interface gráfica (core-image-sato):

 

 

 

Gravando as imagens

 

Este procedimento é praticamente o mesmo utilizado no tutorial do Henrique mencionado no começo deste post. 

 

Para a gravação das imagens no microSD card, o mesmo deve ser particionado e formatado de acordo o padrão aceito pelo placa. Para isso foi criado um script, que pode ser obtido com os seguintes comandos:

 

Insira um microSD card no computador PC ou notebook (sistema host) e descubra qual o device node criado pelo sistema operacional. Tente um dos seguintes comandos:

 

Caso, por exemplo, o device node criado seja /dev/sdb, use o seguinte comando:

 

 

Assim que o processo de particionamento e formatação terminar, duas partições no microSD card são criadas:

  • boot (FAT32);
  • rootfs (ext4).

 

Execute a “montagem” dessas duas partições no sistema de arquivos do sistema host. Caso esse faça uso da distribuição Ubuntu, basta remover e inserir novamente o dispositivo no seu conector. Dado que, por exemplo, os pontos de montagem criados sejam /media/boot e /media/rootfs, a imagem gerada anteriormente é copiada da seguinte forma para o microSD :

Este último comando é importante, pois sem ele os dispositivos conectados a USB não serão reconhecidos pelo kernel.

 

Se você já possui algum outro sistema operacional instalado no eMMC da BBB, como por exemplo o Angstrom, execute os seguintes comandos:

Dessa maneira garantimos que o bootloader irá carregar os arquivos corretos do microSD card. 

 

 

Testando as imagens

 

Remova o microSD do computador e insira-o na BBB, conecte-a a uma TV por um cabo HDMI, e a um mouse através do conector USB. Se quiser monitorar o processo de boot, você também pode conectar um cabo serial.

 

A imagem core-image-minimal (sem interface gráfica) possui o seguinte log de boot:

 

 Para a imagem core-image-sato (com interface gráfica) temos o sequinte log de boot: 

 

E as seguintes imagens saindo pelo HDMI:

 

Beaglebone Black com Yocto Project

 

Beaglebone Black com Yocto Project 

 

 

Para aprender mais

 

BeagleBone Black + Yocto

Beaglebone Black + Yocto Daisy (Versão 1.6)

Lançada Nova Versão 1.7 (dizzy) do Yocto Project

 

 

Pronto! Agora você já tem um ponto de partida para construir  e customizar as suas distribuições Linux embarcado com o Yocto Project.

 

 

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Diego Sueiro
Formado em Engenharia de Controle e Automação pela UNIFEI e CEO do Embarcados, atualmente trabalho na Inglaterra com Desenvolvimento de Sistemas Linux Embarcado Real Time. Sou consultor e desenvolvedor de software para Sistemas Embarcados com vasta experiência em projetos com processadores de 8bits a 32bits, sistemas bare metal, RTOS, Linux Embarcado e Android Embarcado. Um apaixonado por Pink Floyd e Empreendedorismo.

21
Deixe um comentário

avatar
 
17 Comment threads
4 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
Caio PereiraWendell SilvaDiego SueiroAdriano CasimiroProjeto de Kiosk Interativo para a Beaglebone Black com Yocto Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
trackback

[…] Beaglebone Black + Yocto Daisy (Versão 1.6) […]

trackback

[…] Beaglebone Black + Yocto Daisy (Versão 1.6) […]

trackback

[…] Beaglebone Black + Yocto Daisy (Versão 1.6) […]

trackback

[…] Beaglebone Black + Yocto Daisy (Versão 1.6) […]

trackback

[…] Beaglebone Black + Yocto Daisy (Versão 1.6) […]

trackback

[…] Beaglebone Black + Yocto Daisy (Versão 1.6) […]

trackback

[…] Beaglebone Black + Yocto Daisy (Versão 1.6) […]

trackback

[…] Beaglebone Black + Yocto Daisy (Versão 1.6) […]

trackback

[…] Beaglebone Black + Yocto Daisy (Versão 1.6) […]

trackback