Yocto Project: Quick Start

yocto project introdução
Este post faz parte da série Yocto Project. Leia também os outros posts da série:

Na primeira parte dessa série apresentamos os prós e contras ao se utilizar distribuições Linux prontas e customizadas, uma breve introdução sobre o Yocto Project, bem como suas características principais e seus diferenciais. Na segunda parte vimos em mais detalhes a arquitetura e conceitos e definições do Yocto Project. Nessa terceira parte faremos um Quick Start e demonstraremos na prática o uso dos conceitos apresentados.

Nesse Quick Start iremos gerar uma distribuição Linux embarcado com interface gráfica que será executada pelo emulador de hardware QEMU para arquiteturas ARM.

Preparando o Host

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

  • Ubuntu 14.04, 14.10, 15.04, 15.10;
  • Fedora 21 e 22;
  • CentOS 6.x e 7.x;
  • Debian 7.x e 8.x;
  • openSUSE 13.2.

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

Ubuntu e Debian:

Fedora:

openSUSE:

CentOS:

Montando o ambiente de construção

Neste tutorial iremos utilizar a versão mais recente do Yocto (krogoth) disponível. 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:

Toda vez que desejarmos usar o Yocto em uma nova instância do shell devemos usar o comando “source” para que as variáveis de ambiente sejam devidamente configuradas.

Adicione as seguintes variáveis no arquivo ~/yocto/build-krogoth/conf/local.conf:

Note que configuramos nossa Distro como poky (DISTRO = “poky”), Machine como sendo a qemuarm (MACHINE = “qemuarm”), mudamos o diretório de download (DL_DIR = “${TOPDIR}/../dl”) para podermos reutilizar os fontes baixados em outros projetos e iremos gerar pacotes para usarmos o opkg (PACKAGE_CLASSES = “package_ipk”).

Na primeira vez que executamos o comando “source” acima o Yocto irá gerar o arquivo “~/yocto/build-krogoth/conf/bblayers.conf" com as camadas básicas, como podemos ver abaixo:

O arquivo bblayers.conf configura quais serão as camadas a serem consideradas pelo sistema de build.

Construindo a imagem

Vamos gerar uma imagem com interface gráfica mínima (core-image-sato) que utiliza o X11 como backend e GTK com o comando:

Esta é a configuração de build utilizada:

Ao final do processo receberemos uma mensagem semelhante a essa:

Executando a imagem com QEMU

Agora estamos prontos para rodar a imagem que geramos com QEMU para processadores ARM com o seguinte comando no mesmo shell que usamos para rodar o bitbake:

Se você desejar rodar o QEMU em outra instância do shell será necessário rodar o comando “source” utilizado anteriormente.

Ao executar o “runqemu” o script irá solicitar que entre com a senha de “root” e teremos a seguinte mensagem no terminal:

Após alguns instantes abrirá a tela do emulador e poderemos acompanhar o carregamento da imagem do sistema como ilustrado na figura 1.

Yocto quick start - Carregamento do QEMU
Figura 1 – Carregamento do QEMU.

Ao término teremos o sistema como apresentado na figura 2 e as aplicações disponíveis presentes na imagem como na figura 3.

Tela inicial da imagem Sato
Figura 2 – Tela inicial da imagem Sato.
Aplicativos presentes na imagem Sato
Figura 3 – Aplicativos presentes na imagem Sato.

Conclusão

Nessa última parte da série de Introdução ao Yocto Project vimos de maneira prática como gerar uma distribuição Linux embarcado com suporte à interface gráfica (X11 e GTK) para ser emulada no QEMU para processadores ARM.

Confira os diversos artigos publicados no site sobre o uso do Yocto Project para gerar diferentes tipos de distribuições para diversos tipos de placas. 

Outros artigos da série

<< Yocto Project: Definições e Conceitos
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
1 Comentário
recentes
antigos mais votados
Inline Feedbacks
View all comments
Pedro Henrique Bertoleti
phfbertoleti
24/08/2016 02:06

Muito bom!

Talvez você goste:

Séries



Outros da Série

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