Agenda - Yocto Project

Informações gerais

Tópicos principais Introdução ao Yocto Project, Poky e metadados, sistema de build OpenEmbedded, conceito de camadas, criando e gerenciando camadas, conceito de receitas, criando e mantendo receitas, customização de imagens, desenvolvimento de BSP, gerando e utilizando SDKs, ferramentas e recursos adicionais
Duração 3 dias - 24 horas - 40% de teoria e 60% de prática
Instrutor Sergio Prado
Público-alvo Estudantes, engenheiros, desenvolvedores e líderes de equipes de desenvolvimento de software para sistemas embarcados
Pré-requisitos Conhecimentos básicos de ferramentas de linha de comando GNU/Linux (cat, find, grep, ps, vi, etc), arquitetura de sistemas com Linux embarcado, linguagem C, uso de toolchain e ferramentas de compilação (gcc, make, autotools)
Material de estudo O material de estudo é composto pelos slides, o livro de atividades e exercícios, os guias de referência e documentos de estudo adicional. Todo o material é fornecido de forma eletrônica no início do treinamento
Kit de desenvolvimento O treinamento pode ser realizado no emulador (QEMU) ou em um kit de desenvolvimento baseado no SoM Colibri i.MX6 (ARM Cortex-A9) da Toradex. Os kits de desenvolvimento são emprestados aos alunos durante o treinamento para a execução das atividades práticas. Se necessário, e conforme a necessidade da empresa contratante, o treinamento pode ser portado para uma outra plataforma de hardware

Agenda detalhada

Dia 1 - manhã


Apresentação: Arquitetura de sistemas com Linux embarcado, introdução ao Yocto Project, histórico e motivações do projeto, principais características e arquitetura básica, Poky e seus componentes, documentação do projeto.

Apresentação: Introdução ao Poky, preparando a máquina de build, baixando o Poky e estudando sua estrutura, preparando o diretório de build, bblayers.conf e local.conf, processando uma receita de imagem, diretório de saída e imagens geradas, gerando uma imagem para o QEMU.

Laboratório: Primeiros passos com o Poky: neste exercício teremos um contato inicial com o Yocto Project, gerando e testando uma distribuição GNU/Linux mínima no QEMU.

Apresentação: Introdução ao sistema de build, BitBake e metadados, receitas, classes, arquivos de configuração, tipos de camadas (BSP, distro, software), usando o BitBake, funcionamento interno do BitBake, tarefas e gráfico de dependências.

Dia 1 - tarde


Laboratório: Explorando o sistema de build: neste exercício iremos explorar com mais detalhes o sistema de build.

Apresentação: Introdução ao conceito de camadas, criando uma camada, estrutura de arquivos e diretórios de uma camada, variáveis do layer.conf, utilizando as ferramentas bitbake-layers e yocto-check-layer.

Laboratório: Criando camadas: neste exercício aprenderemos a criar e configurar camadas com o Yocto Project.

Apresentação: Introdução às receitas, receitas vs pacotes, estrutura de uma receita, principais variáveis utilizadas em receitas, herdando classes e implementando tarefas, etapas do processamento de uma receita, diretório de processamento e logs de uma receita.

Dia 2 - manhã


Laboratório: Desenvolvendo receitas: neste exercício aprenderemos a criar receitas com o Yocto Project.

Apresentação: Conceitos avançados de receitas, sintaxe de atribuição de variáveis do BitBake, overrides e variable flags, arquivos de append, PACKAGECONFIG, diretivas de include e require, versionamento e prioridade, depurando receitas, ferramentas devshell e oe-pkgdata-util, verificações de qualidade (QA checks).

Laboratório: Customizando receitas: neste exercício aprenderemos a customizar receitas com o Yocto Project.

Dia 2 - tarde


Apresentação: Customização de imagens, criando receitas de imagem, grupos de pacotes (packagegroups), funcionalidades de imagens (image features), adicionando usuários e grupos, configurando permissões de arquivos e diretórios do rootfs, scripts de post-install, alterando o formato da imagem, criando arquivos de configuração de distro, variáveis de uma distribuição, distro features, habilitando o gerenciamento de pacotes na distro, dicas para customização e gerenciamento de camadas.

Laboratório: Customizando imagens: neste exercício aprenderemos a customizar as imagens geradas com o Yocto Project.

Dia 3 - manhã


Apresentação: Desenvolvimento de camadas de BSP, criando uma camada de BSP, arquivo de configuração de machine, principais variáveis de uma machine, mecanismo de provides, variáveis de compilação do U-Boot e do kernel, funcionalidades de machine (machine features), criando receitas de bootloader, criando receitas de kernel e módulos do kernel, aplicando patches e alterando a configuração do kernel, kernel advanced metadata.

Laboratório: Desenvolvendo e customizando BSPs: neste exercício aprenderemos a criar arquivos de configuração de machine e customizar BSPs no Yocto Project.

Apresentação: Trabalhando com SDK (Software Development Kit), componentes de um SDK (toolchain, sysroot, scripts e ferramentas adicionais), tipos de toolchain, gerando SDKs, receita meta-toolchain, tarefas populate_sdk e populate_sdk_ext, instalando e utilizando SDKs, Extensible SDK (eSDK) e a ferramenta devtool.

Dia 3 - tarde


Laboratório: Gerando e utilizando SDKs: neste exercício aprenderemos a compilar, instalar e utilizar o Extensible SDK do Yocto Project.

Apresentação: Ferramentas e recursos adicionais, gerenciamento de licenças, caches de compilação (shared state cache), históricos de build (build history), Toaster, ferramenta recipetool, ferramentas de compilação (build appliance, CROPS, autobuilder).

Laboratório: Explorando ferramentas e recursos adicionais: neste exercício aprenderemos a utilizar algumas ferramentas adicionais do Yocto Project.

Apresentação: Considerações finais, links e referências de estudo, livros, conclusão do treinamento.