Este documento discute o uso do Yocto Project para desenvolvimento de software embarcado. Apresenta os desafios do Linux embarcado, como a complexidade do ecossistema. Explica a arquitetura do Yocto Project e como ele manipula metadados para simplificar o processo de compilação. Fornece exemplos de como empresas usam Yocto Project e discute como ele pode ajudar a resolver problemas de reprodutibilidade, licenciamento e tempo de mercado. Por fim, sugere caminhos para aprender Yocto Project, como usar a documentação, layers open-source
3. Sobre a Emc Logic
● Empresa de consultoria, desenvolvendo e treinamento para software embarcado que
está há 6 anos no mercado
● Somos recomendados na página oficial do Yocto Project como especialistas em
Yocto Project
● Nosso trabalho oferece a simplificação do processo de desenvolvimento de software
embarcado, acelerar o time-to-market dos produtos e sistemas, melhorar a qualidade
e também capacitar equipes com melhores práticas de mercado.
4. Agenda
● Linux Embarcado e seu ecossistema - desafios!
● Yocto Project e sua arquitetura
● Aplicações e utilização do Yocto Project no mercado
● Resolvendo problemas de reprodutibilidade, licenciamento e time-to-market
● Caminhos para aprenderYocto Project
5. Linux Embarcado - desafios!
● O termo “Linux” é comumente utilizado para descrever sistemas Operacionais Linux mas na
verdade “Linux” é o nome do kernel do sistema operacional.
● A primeira versão do Linux foi lançada há mais de 30 anos
● Seu código é composto de milhões de linhas de código
● Linux roda em praticamente quase todo tipo de hardware e hoje encontramos ele em desktops,
notebooks, servidores, supercomputadores, celulares, sistemas embarcados e dispositivos
eletrônicos.
6. Linux Embarcado - desafios!
● Além do kernel, um sistema linux possui centenas de softwares e bibliotecas que compõem o
sistema.
● Esses softwares possuem versionamento, licença e dependências.
● Para manter o sistema atualizado e seguro, uma maneira trivial é ter consciência de correções e
patchs de seguranças que normalmente são apresentados à comunidade por meio de CVEs
(Commum Vunerabilities and Exposures).
9. Linux Embarcado - desafios!
https://embarcados.com.br/webinar-por-que-dominar-sistema-operacional-linux-deveria-
ser-a-sua-prioridade/
10. Linux Embarcado - desafios!
https://embarcados.com.br/e-b
ooks/e-book-descobrindo-o-lin
ux-embarcado/
11. Yocto Project e sua arquitetura
● O Yocto Project trabalha com a manipulação de Metadados.
● Metadados são os conceitos de receitas, camadas, distros e machines. Todos
eles podem ser reutilizados.
● Todos os metadados são descritos via código e podemos ir melhorando ao
longo do tempo (versionar também).
● Os resultados esperados são o download do código-fonte,
aplicação de patchs, configuração, compilação,
instalação e geração de imagem.
DISTRO
MACHINE IMAGE
12. Yocto Project e sua arquitetura
inputs
inputs
outputs
outputs
13. Yocto Project e sua arquitetura
https://embarcados.com.br/webinar-utilizando-o-yocto-project-para-automatizar-o-desenvolvime
nto-em-linux-embarcado/
14. Aplicações e uso do Yocto no mercado
https://github.com/webosose/meta-weboso
se
https://www.webosose.org/docs/guides/se
tup/building-webos-ose/
15. Aplicações e uso do Yocto no mercado
https://developer.toradex.com/torizon/in-depth/build-torizoncore-from-source-with
-yocto-projectopenembedded/
https://developer.toradex.com/linux-bsp/
16. Aplicações e uso do Yocto no mercado
https://wiki.st.com/stm32mpu/wiki/OpenEmbedded
17. Aplicações e uso do Yocto no mercado
https://software-dl.ti.com/processor-sdk-linux/es
d/AM64X/07_03_01_006/exports/docs/linux/Rel
ease_Specific_CoreSDK_Yocto_layer_Configur
ation.html
19. Resolvendo desafios com Yocto - Reprodutibilidade
receitas camadas distro machine
Versionamento código
Controle da origem do código fonte, hash
do commit e etc
20. Resolvendo desafios com Yocto - Reprodutibilidade
https://layers.openembedded.org/layerindex/branc
h/kirkstone/layer/meta-ti-bsp/
21. Resolvendo desafios com Yocto - Licenciamento
● SBOM: Este termo significa "Lista de Materiais de Software".
Ao distribuir software, ele oferece uma descrição de todos os
componentes utilizados, suas licenças correspondentes,
suas dependências, as alterações que foram aplicadas e as
vulnerabilidades conhecidas que foram corrigidas.
● Isso pode ser utilizado pelos destinatários do software para
avaliar sua exposição a questões de conformidade de licença
e vulnerabilidades de segurança.
● Consulte o artigo "Cadeia de Suprimentos de Software" na
Wikipedia para mais detalhes.
22. Resolvendo desafios com Yocto - time-to-market
Yocto Build
Server
build
image
SDK
developer
Apps
23. Resolvendo desafios com Yocto - time-to-market
Yocto Build
Server
build
image
eSDK
developer
Apps
image
extended SDK
24. Caminhos para aprenderYocto
● O processo de aprendizado do Yocto Project possui uma grande
curva de aprendizado
● Além da dificuldade em si da ferramenta, seus componentes,
sintaxe e processos, possuímos as complicações que vem com
os vários pacotes de software, cada um com sua complexidade
interna
● A ferramenta faz uso extenso de linha de comando
● Somado a isso, também possuímos dificuldades na utilização da
ferramenta, que pode demandar muito poder computacional e
gerar builds demorados
● O processo de debug de uma compilação não é trivial