Yocto Project E Como Usá-Lo Em Seu Próximo Projeto

Yocto Project E Como Usá-Lo Em Seu Próximo Projeto

padtec.com Introdução ao Yocto Project e como usá-lo em seu próximo projeto João Freitas [email protected] padtec.com [email protected] http://www.github.com/joaohf padtec.com Linux Embarcado Aplicação Aplicação • Fim específico • Conjunto reduzido • Autonomia Biblioteca Biblioteca Biblioteca Toolchain Biblioteca C Linux Kernel Hardware Padtec S/A © 2014 Todos os Direitos Reservados 4 Imagem do Sistema Bootloader • Tamanho reduzido Linux Kernel • Particionamento rootfs1 rootfs2 data Padtec S/A © 2014 Todos os Direitos Reservados 5 Sistema com Linux Embarcado Opções para construção: • Distribuição pronta • Gerar uma distribuição manualmente • Usar um sistema de build Padtec S/A © 2014 Todos os Direitos Reservados 6 Sistema com Linux Embarcado ● Usar uma distribuição pronta – Red Hat – Ubuntu – Suse – Archlinux – Slackware – Debian – Android, Emdebian, Tizen Padtec S/A © 2014 Todos os Direitos Reservados Sistema com Linux Embarcado ● Gerar uma distribuição manualmente – Controle Total – Flexibilidade – Trabalhoso – Reprodutibilidade ● Linux From Scratch: vale a experiência! – http://www.linuxfromscratch.org/ Padtec S/A © 2014 Todos os Direitos Reservados Sistema com Linux Embarcado ● Ferramenta de Build – Automatização do processo de geração – Conjunto de pacotes validados – Frameworks para extensão e desenvolvimento ● Buildroot, PTXdist, LTIB, BaseRock, OpenEmbedded, Poky Padtec S/A © 2014 Todos os Direitos Reservados Yocto Project Unidade SI de medição, igual a 10^24 http://www.yoctoproject.org Padtec S/A © 2014 Todos os Direitos Reservados O que é? ● Projeto Open Source ● Build System para Linux OS ● Coleção de projetos, métodos e ferramentas – Fácil customização – Um lugar para a Indústria publicar BSPs ● Fundado em 2010 ● Gerenciado por membros da Linux Foundation ● Cadência de releases: 6 meses Padtec S/A © 2014 Todos os Direitos Reservados O que é? ● “The Yocto Project is not an Embedded Linux Distribution – It creates a custom one for You!” ● “The Yocto Project is not Single Open Source Project – It is an Ecosystem” ● “The Yocto Project combines the convenience of a ready-to-run Linux Distribuition with the flexibility of a custom Linux operation system stack” ● “... to bring some order to the chaos of embedded Linux development” Padtec S/A © 2014 Todos os Direitos Reservados Quem faz? ● Comunidade de usuários ● Organizações – Desenvolvedores individuais – Embeded Hardware – Semicondutores – OS Vendors ● Linux Foundation Padtec S/A © 2014 Todos os Direitos Reservados Quem faz? ● Adivisory Board – LSI, Freescale, Wind River, OpenEmbedded – TI, Intel, LTSI, Juniper Networks, AMD – Mentor Graphics, LG, Dell, Broadcom, – Renesas, OS Systems, MontaVista, Huawei, – Enea Padtec S/A © 2014 Todos os Direitos Reservados Quem faz? ● Participantes ● Membros ● Colaboradores Padtec S/A © 2014 Todos os Direitos Reservados Quem usa? ● Distros Comerciais – Wind River Linux Carrier Grade Profile 5 – Wind River Linux 6 – Enea Linux 4.0 – MontaVista Linux Carrier Grade Edition 7 – Mentor Embedded Linux ● Distros – Angstron (http://www.angstrom-distribution.org) – Shr (http://shr-project.org) Padtec S/A © 2014 Todos os Direitos Reservados Quem usa? ● BSP (Board Support Package) – Intel – Freescale – Texas Instruments – Renesas – AMD Padtec S/A © 2014 Todos os Direitos Reservados O que eu preciso para usar? Para começar... ● PC padrão ● 50Gb de disco ● Um distro recente (debian, ubuntu, fedora, opensuse, centos) ● Pacotes de desenvolvimento (gcc,make,git) ● Uma release do Yocto Project ● http://www.yoctoproject.org/docs/1.7/yocto-project-qs/yocto-project-qs.ht ml Padtec S/A © 2014 Todos os Direitos Reservados O que eu preciso para usar? ● Se quiser brincar profissionalmente: – Processador Xeon, 16Gb RAM, 1Tb Disco, controlador RAID com cache alto ● Em casa: i5 terceira geração com 16Gb RAM e 1Tb HD 7200 SATA ● Um bom processador e disco com controladora rápida vai fazer a diferença. Padtec S/A © 2014 Todos os Direitos Reservados Como funciona? ● Build System: – Poky reference system ● Bitbake: build engine ● OpenEmbedded Core: receitas e classes bases – http://www.openembedded.org ● Core BSPs e layers Padtec S/A © 2014 Todos os Direitos Reservados Como funciona? ● Ferramentas de desenvolvimento – Application Development Toolkit – Hob – Toaster ● Eclise IDE Plugin: integração entre ADT e Eclipse ● AutoBuilder: build tests e QA ● cross-prelink, pseudo, swabber Padtec S/A © 2014 Todos os Direitos Reservados Como funciona? ● Tarefa (task): etapas executadas pelo build engine ● Receita (recipe): conjunto de tarefas necessárias para compilar determinado software (.bb, .bbappend) ● Classes (classes): herança e encapsulamento da lógica para a execução de tarefas comuns (.bbclass) Padtec S/A © 2014 Todos os Direitos Reservados Como funciona? ● Configuração (conf): arquivos com definições globais (.conf) ● Pacote (package): resultado do processamento da receita de um componente de software ● Camada (layer): conjunto de receitas, classes, arquivos de configuração que podem ser agregados ao sistema de build para estendê-lo ou modificar comportamentos Padtec S/A © 2014 Todos os Direitos Reservados Como funciona? ● Composição de layers Padtec S/A © 2014 Todos os Direitos Reservados Como funciona? ● Layers são blocos de construção Padtec S/A © 2014 Todos os Direitos Reservados Como funciona? ● Layer é o modo de extender o build system – Adicionar, remover, modificar ● Classes, receitas, configurações – São adicionadas no sistema Padtec S/A © 2014 Todos os Direitos Reservados Como funciona? ● Agrupe as layers por funcionalidade, exemplo: – Toolchains – BSP/Machine – Áreas funcionais (database, networking, languages) – Especificidades do projeto ● Pilhas de software de terceiros ● Componente usados em outros projetos ● Configurações Padtec S/A © 2014 Todos os Direitos Reservados Como funciona? ● Máquina (machine): plataforma de hardware alvo da distribuição. Implementado através de uma layer BSP ● Imagem (image): imagem final do rootfs do sistema gerado ● Distribuição (distro): regras e políticas de geração da imagem do sistema Padtec S/A © 2014 Todos os Direitos Reservados Como funciona? Padtec S/A © 2014 Todos os Direitos Reservados Tem interface gráfica? ● Bitbake: linha de comando $ bitbake <receita> $ bitbake <receita> -c <task> $ bitbake <receita> -k $ bitbake -s Padtec S/A © 2014 Todos os Direitos Reservados Tem interface gráfica? ● HOB Padtec S/A © 2014 Todos os Direitos Reservados Tem interface gráfica? ● Toaster Padtec S/A © 2014 Todos os Direitos Reservados Distro YP X Distro customizada por mim? ● Distribuição Pronta, vantagens Framework de Simplicidade de uso desenvolvimento Pronto e funcional Facilidade na Base de usuários instalação (pacotes) Suporte comercial Padtec S/A © 2014 Todos os Direitos Reservados Distro YP X Distro customizada por mim? ● Distribuição Pronta, desvantagens Tempo de boot Falta de pode ser alto flexibilidade Requisitos de licença Pode não estar otimizada Experiência Requer tempo Para adaptação e customização Padtec S/A © 2014 Todos os Direitos Reservados O que o Yocto Project permite configurar numa distribuição? ● Versão dos componentes de sw ● Subsistemas – Systemv, systemd ● Features adicionais: alsa, wayland, x11, usb, pci ● Toolchain – Interna ou externa ● Versão de Linux Kernel Padtec S/A © 2014 Todos os Direitos Reservados Há alguma restrição de licença nas distribuições geradas? ● Não há restrição de licenças ● Há preocupação do YP em gerar distros legais – Opções para não permitir determinada licença – Manifesto de licenças – Exportação de código fonte, scripts, patches ● https://www.yoctoproject.org/blogs/davest/2012/binaries-considered-dang erous Padtec S/A © 2014 Todos os Direitos Reservados Caso: 1 distro 4 plataforma ● Plataformas: – 2 EVKs (ppc e x86-64) – plataforma alvo do produto – máquina virtual para integração ● Solução YP: – Distro e Linux Kernel comum – A mesma SDK – MACHINE=<plataforma alvo> Padtec S/A © 2014 Todos os Direitos Reservados Caso: Fabricante sumiu, cadê o BSP? ● BSP antigo (2002) – Fabricante não oferecia suporte ($$$) ● Necessidade de evolução kernel e userland ● Plataforma não otimizada ● Solução YP: – Redução do footprint – Toolchain otimizado – Bugfixes gerais e críticos solucionados – Controle de todos os componentes do produto Padtec S/A © 2014 Todos os Direitos Reservados Caso: Toolchains ● Geração de SDKs – Podem ser instaladas em qualquer workstation linux ● Mesma versão de GCC ● Target para diferentes plataformas Padtec S/A © 2014 Todos os Direitos Reservados Qual o resultado da construção? ● Imagem: ext2, ext3, cpio, directdisk, jffs2, ubi, cramfw, brtfs, live ● Linux kernel image (bz2, uImage) ● Pacotes (rpm, ipk, deb, tar) ● Manifesto das licenças de softwares usadas ● Histórico de build (buildhistory) ● Código fonte de todos os softwares usados ● Scripts de build e patches aplicados Padtec S/A © 2014 Todos os Direitos Reservados Quais plataformas são suportadas? ● Arquiteturas: ARM, PPC, MIPS, x86 e x86-64 ● Machines: qemuarm, qemumips64, qemumips, qemuppc, qemux86, qemux86-64 ● Vendor BSPs: – TI, FSF, Intel, AMD, LSI http://git.yoctoproject. org/ Padtec S/A © 2014 Todos os Direitos Reservados Quais softwares podem rodar nestas distribuições? Servidores web? Banco de dados? Controladores de hardware? ● Qualquer sw pode ser buildado e adicionado na imagem final ● Alguns sw são mais complicados de empacotar – Requerem buildtools exóticos ou scripts que não seguem padrões ● Como regra geral: qualquer artefato que o bitbake consiga empacotar, pode ser usado ● Qualquer

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    62 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us