Build system
Embedded Labworks
Biblioteca Toolchain
Embedded Labworks
Embedded Labworks
INTEGRANDO TUDO
O que vimos at aqui foi um passo-a-passo de como desenvolver um sistema Linux embarcado do zero. Na prtica, no precisamos desenvolver um sistema Linux manualmente, ja que uma atividade trabalhosa, demorada e suscetvel erros. Portanto, temos normalmente duas possveis solues para trabalhar no desenvolvimento de sistemas com Linux embarcado:
1. Usar uma distribuio Linux pronta. 2. Usar um sistema de build (build system).
Embedded Labworks
DISTRIBUIO PRONTA
Existem diversas distribuies comerciais prontas para Linux embarcado: MontaVista, Timesys Linux, Wind River Linux, etc. Existem tambm diversas solues abertas, incluindo Android, Emdebian, Ubuntu embedded, Tizen, Angstrom, Meego, etc. Vantagens:
Simplicidade de uso. Facilidade na instalao de novos pacotes. Framework de desenvolvimento pronto e funcional.
Embedded Labworks
Desvantagens:
Falta flexibilidade (compatibilidade com plataforma de hardware, mecanismo de inicializao, framework de desenvolvimento disponvel, erros em pacotes da distribuio, etc). Normalmente o rootfs grande, ocupa muito espao no dispositivo de armazenamento. Tempo de boot normalmente alto. Requer customizao para deixar o sistema mais leve. Difcil de levantar quais pacotes open source so usados.
Embedded Labworks
BUILD SYSTEM
O build system permite gerar um sistema Linux completo do zero. Ele automatiza o processo de gerao dos diversos componentes do sistema, incluindo o toolchain, o kernel, o bootloader, as bibliotecas e as aplicaes. Normalmente j contm um conjunto grande de pacotes configurados para serem habilitados e utilizados pelo seu sistema. E facilita o trabalho de adicionar novos pacotes se necessrio.
Embedded Labworks
Vantagens:
Flexibilidade. O processo de build torna-se reproduzvel, facilitando o trabalho de recompilao, correo de problemas e adio de novas funcionalidades.
Desvantagens:
Tempo extra para configurar a ferramenta. necessrio conhecimento do funcionamento da ferramenta e de mecanismos de compilao para adicionar novos pacotes se necessrio e corrigir possveis erros de compilao.
Embedded Labworks
FERRAMENTAS
PTXdist, desenvolvido pela empresa Pengutronix: http://www.pengutronix.de/software/ptxdist/index_en.htm LTIB, desenvolvido principalmente pela Freescale: http://www.ltib.org/
Embedded Labworks
FERRAMENTAS (cont.)
OpenEmbedded, mais flexvel (e tambm mais complexo): http://www.openembedded.org Yocto, evoluo do OpenEmbedded: http://www.yoctoproject.org/ Sistemas Timesys). comerciais (MontaVista, WindRiver,
Embedded Labworks
LTIB
LTIB (Linux Target Image Builder) uma ferramenta usada para desenvolver e liberar BSPs (Board Support Packages). http://ltib.org/ Projeto inicialmente patrocionado pela Freescale, suporta gerar imagens para ARM, PPC e Coldfire. Permite gerar imagens do bootloader, kernel e rootfs. Usa o sistema de pacotes RPM, e possui em torno de 200 aplicaes/bibliotecas disponveis.
Embedded Labworks
BUILDROOT
Desenvolvido uClibc.
pelos
mesmos
mantenedores
da
Possibilita gerar o toolchain, o bootloader, o kernel e o rootfs com muitas bibliotecas e aplicaes disponveis. Mais de 700 aplicaes e bibliotecas integradas, de utilitrios bsicos bibliotecas mais elaboradas como X.org, Qt, Gtk, Webkit, Gstreamer, etc. tima soluo para projetos pequenos e mdios. Desde a verso 2009.02 um novo release liberado a cada 3 meses.
Embedded Labworks
CONFIGURANDO O BUILDROOT
Arquitetura e modelo da CPU. Toolchain. Bootloader. Kernel. Bibliotecas e aplicaes. Tipos das imagens do rootfs (ext2, jffs2, etc).
Para configurar:
makemenuconfig
Embedded Labworks
CONFIGURANDO O BUILDROOT
Embedded Labworks
COMPILANDO O BUILDROOT
Embedded Labworks
LABORATRIO