Compilando uma Distribuição Linux Openembedded

Openembedded

Nos últimos meses, diversos artigos sobre o computador em módulo Colibri T20 foram postados no Embarcados. O Colibri T20 é parte integrante da família de computadores pino compatíveis da Toradex que também conta com outros módulos como o Colibri iMX6Colibri Vybrid VF50, VF61 e diversos módulos baseados na linha PXA Intel Marvel. Veja aqui um comparativo entre os diversos módulos da família Colibri.

No artigo Fast Time to Maket com Computadores em Módulo, Guilherme Fernandes explica as vantagens e as desvantagens do uso de computadores em módulo assim como as características dos produtos comercializados pela Toradex. O produto Colibri T20 apareceu também em outros dois artigos: Desenvolvendo Sistemas Embarcados com Windows Embedded CompactCOM Toradex Colibri T20 e Carrier Board Iris artigo no qual Thiago Lima apresenta o conjunto de módulo e motherboard comercializados pela Toradex.

Acompanhado a linha de artigos envolvendo esse módulo, o tutorial abaixo mostrará os passos necessários para preparar um Build System para o CoM Colibri T20. Com o seu próprio Build System é possível criar personalizações em sua distribuição e como resultado obter sua própria imagem.

A Toradex disponibiliza através do meta-toradex toda a personalização do Linux integrada com o OpenEmbedded. Atualmente, o OpenEmbedded em conjunto com o Yocto tem se tornado mais popular entre os usuários, motivo pelo qual tem crescido o conteúdo informativo sobre ele. Portanto, modificar, adicionar e até mesmo criar seus próprios pacotes se torna mais fácil.

A Toradex fornece imagens Linux pré-compiladas, uma lista das características de nossa imagem Linux pode ser encontrada aqui. A Toradex também oferece uma imagem de teste do Android para nosso Colibri T20. Nos casos em que a utilização da imagem pré-compilada seja suficiente, o usuário as irá encontrar em: http://developer.toradex.com/files/toradex-dev/uploads/media/Colibri/Linux/Images/

Hardware utilizado

Para este tutorial foi utilizado um módulo Colibri T20 em conjunto com placa de suporte Iris Carrier Board (Figura 1). Um monitor DVI foi usado para interface gráfica com o usuário.

FIGURA_1

Os cabos foram conectados de conforme a Figura 2. Basicamente foi conectado o cabo serial no conector X13, teclado e mouse USB, monitor DVI e alimentação de 6-27V DC.

FIGURA_2 (1)

A Figura 3 mostra como ficou o setup após a conexão dos cabos.

FIGURA_3 (1)

Para agilizar o desenvolvimento, a Toradex disponibiliza uma página com os passo a passo para configurar seu computador e acessar as principais funções do módulo sem a necessidade de passar pelo processo de compilar sua própria imagem.

Preparando ambiente Host

Todo o processo de configuração, compilação e geração da imagem foi realizado em uma máquina virtual “Ubuntu 12.04 – 64-Bits” criada apenas para realização desse tutorial.

Os pacotes exigidos pelo OpenEmbedded e pelo meta-toradex devem ser instalados com o comando abaixo.

Versões e Branches

Atualmente temos duas versões de build system: V1.X – baseada no OpenEmbedded (Classic) e V2.X – baseada no OpenEmbedded (Core). Esse tutorial utilizará a versão V2.1 no branch dylan. Caso o usuário necessite do branch dora, é preciso usar a versão V2.2. Porém, essa versão só foi testada com o módulo Apalis iMx6.

Ao compilar a versão V2.1 conforme esse tutorial, a imagem gerada deve ser equivalente as imagens pré-compiladas citadas no início desse artigo. Um vez que não será adicionado ou modificado o Build System padrão.

Sincronizando repositório

A partir da versão V2.1, utiliza-se a ferramenta “repo” para gerenciar diferentes repositórios e versões. Isso se fez necessário uma vez que o OpenEmbedded começou a exigir diversos repositórios.

Instalando a ferramenta “repo”

Antes de iniciar a sincronização, é necessário atualizar duas URLs no arquivo manifest.xml.Criando o diretório onde será realizado o download dos repositórios e a configuração da sua distribuição.

Altere a URL correspondente ao OpenEmbedded e ao Linaro conforme segue:

Em seguida, execute a sincronização com o repositório.

Configurando a compilação

Após finalizada a sincronização, execute o arquivo “export”. Isso irá configurar as variáveis de ambiente. Na primeira execução desse script será criada automaticamente a pasta build com os arquivos de configuração.

Após executar o export, o shell será direcionado automaticamente para o diretório  “oe-core/build”.

Sendo assim, modifique o arquivo “local.conf” para configuração seu build.

Altere o dispositivo modificando a variável MACHINE para colibri T20.

As variáveis BB_NUMBER_THREADS e PARALLEL_MAKE configuram respectivamente quantas threads e processadores executarão em paralelo.

Por padrão, o arquivo local config configura o build para remover o diretório work. Isso significa que todo código fonte usado será removido ao final da compilação. Essa configuração é útil no caso de a máquina utilizada no processo ter pouco espaço em disco. Porém, caso seja preciso os códigos-fontes para a personalização de algum pacote, o ideal é comentar a linha abaixo:

Assim, todos os códigos – fontes serão destinados para a pasta “work”.

Executando a compilação

Agora com o “local.conf” configurado para o build do seu dispositivo é hora de compilar. Tenha em mente que isso pode demorar horas!

Imagens Geradas

Ao terminar a compilação, as imagens estarão no diretório:

Entre os arquivos gerados estão:  u-boot, root file system e kernel. Porém, o arquivo mais importante para a gravação é: Colibri_T20_LinuxImageV2.1_20140530.tar.bz2

Esse arquivo contém todos os arquivos necessários e o script de atualização.

Extraia o arquivo “Colibri_T20_LinuxImageV2.1_20140530.tar.bz2” com permissão de sudo.

No diretório extraído, encontramos o script de atualização “update.sh”. Para executá-lo é necessário colocar a placa em recovery mode (modo de gravação).

Gravação da Imagem no Módulo

Primeiro conecte o cabo micro USB no conector X12 e no seu computador conforme a Figura 4. Caso esteja usando máquina virtual, lembre-se de adicionar a USB correspondente a VM.

FIGURA_4 (1)

Existem dois métodos de colocar a placa em modo de gravação.

O método mais fácil é por software. Para os casos nos quais as placas ja tenham Linux ou Windows instalados existem comandos de bootloader que colocam o módulo em modo de gravação.

Caso a placa esteja com Linux, execute o comando “enterrcm” no uboot.

 

Para os casos em que o módulo esteja com Windows execute os seguintes comandos no bootloader.

O segundo método, por Hardware, não precisa ter nenhum bootloader pré-gravado na placa. Para a placa Iris, basta ligar a placa curto-circuitando o pad 1 e 2 do Jumper JPI. Em seguida remova o curto.

Com a placa em modo de gravação e o cabo microSD devidamente conectado será possível localizar o device com o comando:

Agora com a placa pronta para gravação e o dispositivo já reconhecido, execute o script de update com parâmetro -h.

Repare que todo módulo tem uma etiqueta de identificação. Nela é possível ver o quanto de RAM tem em seu módulo e também a versão do seu Hardware. Altere os parâmetros para o seu caso e execute a atualização.

Aguarde até o final da gravação que terá o resultado abaixo.

Boot do novo Linux

Reinicie o equipamento e terá o boot da sua imagem.

Loge com usuario “root” e sem senha.

FIGURA_5 (1)

Agora temos o Build System completo. Para listar os comandos já instalados na sua imagem execute:

Comandos úteis usando bitbake

1.    O parâmentro “-k” configura o bitbake para continuar compilando os pacotes independentemente da ocorrência de algum erro.

2.    Caso seja necessário consultar as variáveis de ambiente ou obter informações do Build System, use o comando abaixo.

3.    Para listar todas as tasks existentes em uma receita:

4.    Listar todos os pacotes disponíveis em seu Build System:

Sobre a Toradex Brasil

Seguindo sua política global de vendas diretas e contato próximo com o cliente, a Toradex está abrindo no início de 2014 um escritório de vendas e assistência no Brasil para atender toda a América Latina. Em breve você poderá comprar os produtos da empresa, em qualquer quantidade, sem a necessidade de importação, além de contar com suporte gratuito em português para seu desenvolvimento.

Toradex Brasil

Rua Luiz Spiandoreli Neto Nº 60 – Ed. Paineiras, Sala 304 Valinhos – SP | Brazil

T: +55 19 3327 3738

Email: [email protected] , Site: www.toradex.com

Referência e Links adicionais:

http://developer.toradex.com/product-selector/colibri-t20
http://developer.toradex.com/product-selector/iris-carrier-board
http://developer.toradex.com/software-resources/arm-family/linux/board-support-package/openembedded-(core)​
http://developer.toradex.com/knowledge-base/iris-carrier-board-peripherals
http://developer.toradex.com/software-resources/arm-family/linux/features
http://openembedded.org/wiki/Main_Page
http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html

 (*) esse post foi patrocinado pela Toradex

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.

Linux Embarcado » Compilando uma Distribuição Linux Openembedded
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries

Menu
WEBINAR
Além da IoT
DATA: 27/01 às 19:30H