Linguagem | Português Brasil |
Versão | 2.0.0 |
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 - 50% de teoria e 50% 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 | Este treinamento não requer nenhum kit de desenvolvimento ou hardware adicional. Para a execução dos exercícios, é utilizado por padrão um ambiente emulado com o QEMU. Se necessário, e conforme a necessidade da empresa contratante, o treinamento pode ser portado para qualquer plataforma de hardware suportada pelo Yocto Project |
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.
Laboratório: Explorando o sistema de build: neste exercício, vamos explorar com mais detalhes o sistema de build do Yocto Project.
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, dynamic layers, utilizando as ferramentas bitbake-layers e yocto-check-layer.
Laboratório: Criando camadas: neste exercício, aprenderemos a criar e configurar camadas no 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.
Laboratório: Desenvolvendo receitas: neste exercício, aprenderemos a desenvolver receitas para 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, vamos praticar a customização de receitas no Yocto Project, criando arquivos .bbappend, aplicando patches, habilitando funcionalidades adicionais e resolvendo problemas de QA.
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, template files, habilitando o gerenciamento de pacotes na distro, dicas para customização e gerenciamento de camadas.
Laboratório: Customizando imagens: neste exercício, vamos aprender a gerar imagens customizadas com o Yocto Project.
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), WIC images, arquivos de formfactor, criando receitas de bootloader, criando receitas de kernel e módulos do kernel, aplicando patches e alterando a configuração do kernel, advanced metadata (kernel cache).
Laboratório: Desenvolvendo e customizando BSPs: neste exercício, aprenderemos a criar e customizar BSPs com o 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), ferramenta devtool.
Laboratório: Gerando e utilizando SDKs: neste exercício, aprenderemos a gerar, 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), geração de SBOM, checagem de CVEs, históricos de build (build history), Toaster, ferramenta recipetool, extensão do VSCode, 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.