Vous êtes sur la page 1sur 16

Embedded Labworks

Desenvolvendo Sistemas Linux Embarcado

Build system

Embedded Labworks

O DESAFIO: INTEGRAR TUDO ISSO


Biblioteca Biblioteca

Biblioteca Toolchain

Biblioteca Biblioteca C Linux kernel Bootloader Hardware

O DESAFIO: INTEGRAR TUDO ISSO (cont.)


u-boot.bin uImage rootfs.img

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

DISTRIBUIO PRONTA (cont.)

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

BUILD SYSTEM (cont.)

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

Buildroot, desenvolvido pela comunidade: http://www.buildroot.net

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

Permite configurar, dentre outras opes:

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

Configurao tambm fica armazenada em um arquivo .config. Para compilar:


make

No final do processo de compilao, as imagens estaro disponveis no diretrio abaixo:


lsoutput/images/ rootfs.ext2rootfs.jffs2uboot.binuImage

Embedded Labworks

LABORATRIO

Gerando um sistema Linux do zero com o Buildroot