HOB: Interface Gráfica para desenvolvimento de distribuições Linux Embarcados com Yocto

yocto

HOB é uma ferramenta de interface gráfica de usuário que facilita o desenvolvimento de distribuições Linux Embarcado utilizando o Yocto/Openembedded.

Diversas tarefas simples como escolha da plataforma de hardware (MACHINE), tipo de imagem e pacotes são contempladas. Não existe mais a necessidade de editar arquivos ou utilizar a linha de comando para iniciar o processo de construção de uma distribuição.

Se você ainda não conhece o Yocto sugiro que dê uma na seção “O que é o Yocto?” do artigo Beaglebone Black + Yocto escrito pelo Henrique Rossi e nos posts sobre Yocto publicados aqui no site.

Veremos nesse artigo como proceder para configurar o ambiente e como utilizar o HOB para executar diversas tarefas como:

  • Construir imagens
  • Executar imagens com o QEMU
  • Criar a sua própria receita de imagem

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:

Iniciando e configurando o HOB

Vamos configurar o ambiente para gerarmos os artefatos de software e executar  o HOB:

Após a execução do comando “hob” teremos a seguinte tela:

hob-launch

Vamos configurar o local onde queremos que os códigos-fonte sejam baixados. Para isso basta clicar em “Settings” e escolher o diretório na campo “Downloads directory”, como mostrado na figura abaixo, e clique em “Save”. É interessante que escolha um diretório fora da árvore do Yocto, como por exemplo ~/yocto/dl, pois dessa maneira você poderá compartilhá-lo com outros projetos, não necessitando baixar os fontes novamente.

hob-settings-download

Note que existe a possibilidade de configurarmos quantas tarefas em paralelo podem ser executadas pelo bitbake e pelo make. Além disso é possível realizar configurações de proxy, dentre outras.

Construindo a primeira imagem

Vamos agora construir nossa primeira imagem.

Para isso iremos selecionar a nossa MACHINE como qemuarm no campo “Select a machine”. Note que qemuarm irá configurar o build para gerar imagens de emulação com o QEMU para plataformas ARM. Dessa maneira não precisamos ter necessariamente o hardware em mãos para testar as imagens geradas. Note que existem diversas outras opções de MACHINE disponíveis.

Vamos selecionar a imagem que queremos gerar, como por exemplo core-image-sato, em “Select an image recipe”. A imagem core-image-sato possui diversos aplicativos e o sistema de interface gráfica X11.

A tela do HOB será:

hob-qemuarm-sato

Depois de selecionarmos nossa MACHINE e nossa imagem, vamos construir a distribuição clicando em “Build image”.

Uma nova tela será mostrada e é possível acompanhar todo o processo de construção, bem como as configurações utilizadas e eventuais alertas e erros que ocorreram:

hob-build-1

Ao final do processo teremos:

hob-image-details

Executando a imagem com QEMU

Após o processo de construção ter sido terminado vamos clicar em “Run image“. Abrirá um terminal de comando onde será necessário entrar com a senha de root de sua máquina Host. Ao final do processo de inicialização termos o qemu rodando a imagem core-image-sato emulando arquitetura arm:

hob-qemu

Aproveite para explorar a imagem e note que existem diversas aplicações inclusas. Você pode inclusive se conectar ao qemu via VNC.

Criando uma receita de imagem

Para isso clique em “Build new image“, selecione qemuarm em “Select a machine” e core-image-sato em “Select an image recipe“. Estamos utilizando a core-image-sato como base para a nossa nova imagem. Clique em “Edit image recipe” e teremos a seguinte tela:

hob-edit-image

Clique em “All recipes” e note que há uma caixa de busca. Vamos procurar por “python” e adicionar o pacote python-gst (que são bindings de python para o gstreamer) a nossa imagem clicando no checkbox “Included“. Aproveite para inserir quaisquer outros pacotes que desejar.

hob-python-gst

Veja que ao clicarmos em algum pacote uma nova janela é aberta trazendo informações interessantes como: Versão, Licença e Descrição.

hob-python-gst-details

Após selecionar os pacotes clique em “Build packages“. Ao término da construção dos pacotes selecionados, deveremos selecioná-los novamente para serem inseridos de fato em nossa imagem através do checkbox “Included“:

hob-python-gst-2

Clique em “Build image” e teremos no final a tela:

hob-edit-image-1

Vamos criar nossa nova imagem clicando em “Save image recipe“, escolher um nome para ela e clicar em “Save“:

hob-new-image-1
hob-new-image-2

Clique em “Build new image“, selecione qemuarm em “Select a machine“.

Agora vamos selecionar a receita da imagem que criamos em “Select an image recipe” e “Select from my image recipes“:

hob-new-image-3

Clique em “Select” e na próxima tela termos a nossa imagem selecionada e vamos construí-la clicando em “Build image“:

hob-new-image-4

Ao final do processo teremos a seguinte tela:

hob-new-image-5

Veja que podemos testá-la rodando o QEMU, clicando em “Run image“, assim como fizemos anteriormente com a imagem core-image-sato.

Conclusão

O HOB através de interface gráfica nos permite configurar, construir, criar novas imagens, testar e utilizar o QEMU de maneira bastante simplificada e direta. Porém, infelizmente ele não possui todas as ferramentas necessárias para se utilizar o Yocto de maneira avançada. Não conseguimos, por exemplo, criar ou editar uma receita de um pacote em específico.

Neste tutorial não cobrimos todas as funcionalidades da ferramenta, mas é possível adicionar novas machines e camadas (clicando em “Layers“), bem como configurações avançadas (clicando em “Advanced configuration“) para a escolha de qual distro utilizar, quais formatos de imagem de sistema de arquivos, qual formato dos pacotes gerados (deb, ipk ou rpm), tamanho extra na imagem exclusão de pacotes que possuam licença GPLv3 e geração de SDK com toolchain e bibliotecas para desenvolvimento de aplicações.

Para aprender mais

Cozinhando com o Yocto Project

Desvendando Yocto Project – Primeiros passos

BeagleBone Black + Yocto

Beaglebone Black + Yocto Daisy (Versão 1.6)

Raspberrypi + Yocto

Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 1

Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 2

Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 3

Beaglebone Black + Qt Embedded + Yocto – parte 1

Beaglebone Black + Qt Embedded + Yocto – parte 2

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

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

[wpseo_breadcrumb]
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries

Menu
Privacy Settings saved!
Configurações de Privacidade

Entenda quais dados e informações usamos para ter melhor entrega de conteúdo personalizado para você.

These cookies are necessary for the website to function and cannot be switched off in our systems.

Para usar este site, usamos os seguintes cookies tecnicamente exigidos

  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec

Decline all Services
Accept all Services