Você está na página 1de 48

Sistemas Embarcados com Linux primeiros passos

Copyright 2008, Marcelo Barros de Almeida


Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
!istemas
embarcados com Linu'
primeiros passos
(ng# )r# Marcelo Barros de Almeida
marcelobarrosalmeida*gmail#com
!mar (+uipamentos ,ndustriais L-)A
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
2
)ireitos de c.pia
Crditos - ShareAlike 2.0
Voc li!re para
copiar, distribuir, apresentar e e'ecutar trabalhos
/a0er trabalhos derivados
/a0er uso comercial deste trabalho
Sob as se"uintes condi#$es
Cr1ditos# 2oc3 deve dar cr1dito ao autor original#
Compartilhe do mesmo modo# !e voc3 alterar, mudar,
ou reali0ar trabalhos usando este como base,voc3 deve
redistribuir o trabalhos resultante sob uma licena
id3ntica a esta#
4ara +ual+uer reuso ou distribui5o voc3 deve dei'ar claro
os termos de licena deste trabalho#
6ual+uer uma destas condi7es podem ser abandonadas
se voc3 obtiver uma permiss5o do detentor dos direitos
autorais#
%a#a uso &usto e o direitos dos outros n'o ser'o a(etados de
(orma al"uma pelas restri#$es acima.
-e'to da licena$
http$%%creativecommons#org%licenses%bysa%2#0%legalcode
Copyright 2008 Marcelo Barros
marcelobarrosalmeida*gmail#com
)ocumentos originais, atuali0a7es e
tradu7es$
http$%%linu'abordo#com#br%
Corre7es, sugest7es e tradu7es s5o
bem vindas8
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
9
Marcelo Barros :

;orma5o$

(ngenheiro eletr<nico =(;(,, >??@A

Mestre =B;MC, >??8A

)outor =B;MC, 2002A

Atualmente$

(ngenheiro =!mar (+uip# ,ndustriais L-)AA

4ro/essor do Bar5o de mauD

)etalhes, currEculo, blogs$


http$%%linu'abordo#com#br%&i"i%inde'#php:titleFMarceloGBarros
http$%%Hedi0one#&ordpress#com
http$%%t&itter#com%marcelobarros
smar
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
I
!istemas embarcados
com Linu'

)ntrodu#'o

*e(ini#'o e exemplos de sistemas embarcados

+ercado

Linux tradicional x Linux embarcado

Vanta"ens e cuidados

4r1re+uisitos

Criando sistemas embarcados

Cr1ditos, agradecimentos e lin"s


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
J
)e/ini5o de sistema embarcado
?

K +ue e'atamente signi/ica Lsistema embarcadoM :

)e/ini5o da Ni"ipedia$ Lum computador de propsito especial, que


completamente encapsulado pelo dispositivo que controlaM#

)e/ini5o muito abrangente# Algumas dicas$

4rop.sito especE/ico

Microprocessado%Microcontrolado

Aplica5o em OKM%;lash

Oestri7es de consumo ou tamanho s5o /re+Pentes

Oe+uisitos de tempo real tamb1m


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
@
('emplos de sistemas embarcados

(stamos rodeados de sistemas embarcados$

Alarmes automotivos, sistemas de airbag e AB!, computadores de


bordo, inHe5o eletr<nica, C4!

MD+uinas de lavar, microondas, )2)%Media players, -2 )igital

Calculadoras, videogames, 4)As

!emD/oros, cQmeras de vigilQncia, radares

(+uipamentos para rede =roteadores, s&itches, modemsA

-ele/ones celulares, centrais tele/<nicas

(+uipamentos de controle industriais

('istem muito mais processadores sendo usado em sistemas


embarcados do +ue em 4Cs
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
R
('emplos de sistemas embarcados

pe+uenos$ com apenas alguns "b de OAM e


poucas de0enas de "b de mem.ria n5o volDtil
=programaA#

('$ processadores M!4I90 =-e'as ,nstrumentsA,


com > "b de OAM e @0Sb de /lash#

m1dios$ algumas centenas de "b de mem.ria


para programa, de0enas de "b de OAM#

('$ inTmeros processadores, como a linha


Cold/ire =;reescaleA ou mesmo A2O =AtmelA#

grandes$ mem.ria n5o volDtil HD em megabytes e


OAM na casa das centenas#

e'tralarge$ de0enas de MB de /lash e de OAM#

2Drios /abricantes, principalmente baseados em


processadores AOM, 4o&er4C e '8@#
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
8
('emplos de sistemas embarcados
com Linu'
4)A !harp Uauro !LC9>00
MultimEdia Archos 4MAI00
-ele/one 2o,4 Ni;i Accton 2M>>88-
-ele/ones celulares
Ooteador Lin"sys N-OJIC
C4!
Oel.gio
-ablets
)2)s
Oob<s
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
?
Linu' embarcado na tele/onia celular

Mercado a+uecido, com


grandes empresas apostando
em Linu'

Coogle%V-C =AndroidA

Motorola

Wo"ia =Maemo%-rolltechA

W(C

4anasonic

;unda7es privadas =LiMoA e


abertas =Kpen Mo"oA gerando
especi/ica7es e !)Ss
JR,>X
>R,IX
>2,0X
R,9X
2,8X
2,9X >,>X
Mercado de !martphones
!ymbian O,M Nindo&s Mobile Linu'
Mac K! Y 4alm K! Kthers
/onte$ http$%%&&&#linu'devices#com%ne&s%W!828?08??I@#html
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
>0
Wem tudo 1 '8@ no mundo de sistemas
embarcados ###
6uais /oram as C4B usada nos seus proHetos recentes :
;onte$ pes+uisa espontQnea reali0ada por linu'devices#com =http$%%linu'devices#com%ne&s%W!J9>?JRRJ>?#htmlA
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
>>
Wem tudo 1 /echado no mundo de
sistemas embarcados ###
;onte$ http$%%&&&#linu'devices#com%ne&s%W!I?20J?R?8>#html
Linu'$>8X
eCos, B!), ;reeO-K!, and -inyK!$ JX
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
>2
Mas ser aberto n5o signi/ica
ser sempre de graa ###
/onte$ http$%%&&&#embedded#com%products%so/t&aretools%2>0200J80
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
>9
Linu' tradicional ' Linu' (mbarcado
Kernel Linux
Biblioteca GNU C
libjpeg, libstdc++, libxml, libvorbis...
ls, vi, wget, ssh, httpd, gcc...
Navegador web, escritrio, multimdia...
Utilitrios de
linha de
comando
Kernel
Biblioteca C
Bibliotecas
compartilhadas
Interface
com o usurio
GNU Tradicional / Sistema Linux Sistema Linux embarcado
uClibc
Muito mais leve
do que a
biblioteca C GNU!
libjpeg, libstdc++, libxml, libvorbis...
busybox
(ls, vi, wget, httpd...)
dropbear (ssh)...
Implementaes
muito mais leves!
Sem ferramentas de
desenvolvimento.
Kernel Linux / uClinux (sem MMU)
Interface personalizada
Kernel leve, somente
com as caractersticas
necessrias e drivers
Kernel completo com a
maioria das caractersticas e com
drivers para todo tipo de hardware
de PC do planeta!!
Grficos,
navegador web,
servidor de web.
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
>I
2antagens de Linu' embarcado

6ualidade do c.digo

;ootprint relativamente pe+ueno$

Sernel$ 0,J Z 2MB de /lash

!istema de ar+uivos$ variDvel

Mesmo assim, pode ser grande para algumas


aplica7es

4ortabilidade e escalabilidade

Crande nTmero de aplicativos disponEveis

4ossibilidade de custos redu0idos

!uporte

;.rum, listas, email, ;A6s, e'emplos, suporte comercial


disponEvel#
Use the sources you
must, Luke
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
>J
Cuidados com Linu' embarcado

Linu' 1 um sistema de prop.sito geral 8

('istem muitas op7es de aplicativos, re+uer


anDlise re/inada

!istema em evolu5o constante

;aa anDlises imparciais, evite o


deslumbramento

K /ormato das licenas deve ser veri/icado


sempre
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
>@
Licenas e Linu' embarcado
C4L2$
You may copy and distribute the
Program (or a work based on it !
provided that you accompany it with
the complete corresponding machine"
readable source code
Sernel Linu' 1 C4L2, mas ###
#his copyright does $not$ cover user
programs that use kernel services by
normal system calls " this is merely
considered normal use o% the kernel,
and does $not$ %all under the heading o%
&derived work& (Linus #orvalds!
Lesser C4L =LC4LA$
'e use this license %or certain libraries
in order to permit linking those libraries
into non"%ree programs (s an
e)ception you may also combine or
link a &work that uses the Library& with
the Library to produce a work
containing portions o% the Library, and
distribute that work under terms o% your
choice, provided that the terms permit
modi%ication o% the work %or the
customer*s own use and reverse
engineering %or debugging such
modi%ications
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
>R
Licenas e Linu' embarcado

C4L9

;ortemente contra o )OM =)igital Oights


ManagementA

,nibe o uso de patentes

Contra a L-ivoi0ationM

At1 o momento, o Linu' 1 C4Lv2

Alternativas$

Bma lista interessante em$


http$%%debianlinu'#net%os#html

WetB!)

eCos =m1dioA

/reeO-K! =pe+uenoA
!t# ,CWBcius
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
>8
!istemas embarcados com Linu'

,ntrodu5o

,r-re-uisitos

Conhecimentos necessDrios

(+uipamento necessDrios

;a0endo escolhas

Criando sistemas embarcados

Cr1ditos, agradecimentos e lin"s


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
>?
Conhecimentos necessDrios$
Sernel Linu'

Linu'

Kpera5o e /uncionamento do sistema Linu'

,niciali0a5o na plata/orma deseHada

Conhecimento da estrutura do Sernel

Compila5o e instala5o do Sernel

Alguns detalhes do Linu'[$

2ers5o 2#@#>2#J$

\ >8?MB

\ I,@8@ milh7es de linhas

\ I@8 desenvolvedores
[ A study o/ Linu' "ernel evolution, Kded Soren, ACM !,CK4! Kperating !ystems Oevie&, 2olume I0 , ,ssue 2, pag# >>0>>2
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
20
Conhecimentos necessDrios$
/erramentas

Compiladores cru.ados /toolchains0

4ortes do CCC para a plata/orma deseHada =binutils%glibc%CCC%C)B,###A

)o&nload de toolchains pr1compilados ou compila5o =pode ser /acilitada


com buildroot, Cross-ool, Kpen(mbedded, !cratchbo', -2 4roHect ###A

Emuladores

6emu ='8@%AOM%44C%M,4!%!parcA

(specE/icos$ !"yeye%!o/tgun%!NAOM =AOMA, Cold/ire emulator

1utros

Conhecimentos de redes =Con/igura5o, -;-4, W;!, ###A

Bso de aplicativos como minicom =console serialA, he'dump, conversores

Controle de vers5o =C2!%!ubversion%CitA, patches, di//s, Ma"e/iles, etc


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
2>
Conhecimentos necessDrios$
programa5o

4rogramar em C 1 obrigat.rio

Assembly para a plata/orma deseHada pode ser necessDrio

Bm pouco de shell script n5o /a0 mal a ningu1m

)esenvolvimento de m.dulos e device drivers pode ser


necessDrio

B<nus trac"$

V-ML, servidores V--4

CC, e scripts =4ython, 4V4, 4erl, etcA

]ava
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
22
(+uipamentos necessDrios

(sta5o de trabalho Linu'

4lata/orma embarcada

(+uipamento para debug

Cabos =serial e ethernetA

!&itches
,magem$ nbp/aus#net%\p/au%pictures%MyNor"station#Hpg
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
29
Con/igura5o tEpica
Cabo ethernet
=crossoverA
Cabo serial
!o/t&are$ W;!, -;-4, compiladores,
editores, consoles seriais, etc#
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
2I
(+uipamentos necessDrios$
plata/orma embarcada

4rincipais alternativas para a plata/orma embarcada

)esenvolver tudo antes no des"top e recompilar depois para o


sistema deseHado

(mula5o$ 6emu ou outro emulador especE/ico

4C =A-Y, mini,-Y, nano,-YA

4C%>0I

!BC =!ingle Board ComputersA

Vard&are hac"eado =4)As, celulares, M49 players, roteadores, set


top bo'es, vEdeo games, rel.gios, etcA

Vard&are proprietDrio
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
2J
Alguns /orm/actors para
plata/orma embarcada
http$%%&&&#linu'devices#com%articles%A-2@>IIII>92#html
http$%%&&&#via#com#t&%en%products%mainboards%
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
2@
('emplo de !BC$
Atmel WCN>00

4rocessador Atmel A2O92, 92A4R000, industrial,


>J0Mh0 mD'imo e 2>0)M,4!#

)ois controladores ethernet =9IMbits%s de


per/ormanceA

92MB de !)OAM, >@MB de /lash =8MB paralela e


8MB serialA

Conector para cart7es !)%MMC

B!B, ]-AC, conectores para e'pans5o

-oolchain e "ernel Linu' com suporte a todos os


peri/1ricos

(s+uemDticos, gerber /iles

Apro'imadamente 80 d.lares
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
2R
('emplo de !BC$
Beagleboard

Core AOM Corte'A8 =>200 )M,4!A e cache L2


2J@SB com acelerador grD/ico 2)%9), da -e'as
,nstruments

)!4 -M!920C@I'^ =V) video e


processamento de sinais at1 I90MV0A

>28MB Oam e 2J@MB ;lash

,2C, ,2!, !4,, MMC%!) =via conector de


e'pans5oA

)2,), ]-AC, !2ideo, !)%MMC^

!tereo Kut, !tereo ,n

B!B 2#0 V! K-C, !erial O!292

Apro'imadamente >J0 d.lares


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
28
(+uipamentos necessDrios$
plata/orma embarcada

Vard&are proprietDrio pode ter custo elevado$

4roHeto do circuito eletr<nico

Layout da placa

Con/ec5o do 4CB =4rinted Circuit BoardA e montagem

,nstrumenta5o =oscilosc.pios, analisadores l.gicos, multEmetros,


esta7es de soldagemA

,ntegra5o hard&are ' so/t&are

MecQnica =cai'as, /i'a5o, conectores, etcA

Certi/ica5o, +uando necessDrio

Avaliar sempre o custo do investimento


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
2?
(+uipamentos necessDrios$
debug

!e o seu "ernel roda sem problemas, o C)B remoto resolve a


depura5o dos aplicativos# Caso contrDrio ###

]-AC =]oint -est Action CroupA

4ermite debug da plata/orma atrav1s de uma inter/ace simples, geralmente


via porta paralela, B!B ou ethernet =,C(+n ,ircuit -mulationA, desde +ue o
chip tenha suporte ao ]-AC

Custo bai'o, alguns podem ser /eitos em casa

Brea"points, inspe5o de mem.ria, e'ecu5o passo a passo, acesso a


registros, etc

B)M =Bac"ground )ebug ModeA

;uncionalidade ,C( similar ao ]-AC, empregado pela Motorola

(muladores =via hard&areA

(+uipamentos +ue emulam o processador%microcontrolador# Caros#


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
90
;a0endo escolhas$
plata/orma e suporte

2Drias plata/ormas e'istentes$

AOM =vDrios /abricantes, longa busca###A

Cold/ire =;reescaleA

4o&er4C =;reescale%,BM%AppleA

'8@ /anless =Ceode%Alchemy da AM), Celeron M da ,ntel, (den da


2,AA

M,4! =M,4!A

A2O%A2O92 =AtmelA

!uporte

Comercial ' comunitDrio


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
9>
;a0endo escolhas$
distribui7es

)istribui7es comerciais

Montavista

-ime!ys

Linu'Nor"s

NindOiver

!napCear

!ysCo

Soan

###

)istribui7es livres

uClinu'

(mdebian

(mbedded Centoo

(mbedded%Mobile Bbuntu

Kpen(mbedded

;amiliar

L-,B =;reescaleA

-2 !)(

,ntel Moblin

_4onha seu nome a+ui`


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
92
;a0endo escolhas$
suporte a tempo real

!uporte a tempo real$

Comercial$

O-Linu'4ro =Antes ;M!Labs, agora Nind OiverA

Monta2ista

Kpen source$

O-Linu' ;ree =Nind Oiver, licena dualA

O-A, =Bsando Adeos, livre de patentes agoraA


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
99
;a0endo escolhas$
inter/aces grD/icas

2Drias sistemas grD/icos$

6topia

)irect;B

Matchbo'

!)L

;L-S

MiniCB,

WanoY =Micro&indo&sA
Oe/er3ncias$ http$%%&&&#linu'devices#com%articles%A-?2020I9@>?#html
http$%%&&&#linu'Hournal#com%article%?I09
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
9I
;a0endo escolhas$
inter/aces grD/icas
6topia
;rame bu//er
Linu'
6t%(mbedded
;rame bu//er ' Ylib$
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
9J
(m teoria, n5o e'iste di/erena
entre teoria e prDtica###

)2m too 3oun" to die

-arget igual ='8@A, toolchain e "ernel prontos para a C4B%placa

4e35 not too rou"h

-arget di/erente, toolchain e "ernel prontos para a C4B%placa ="itsA

4urt me please

-arget di/erente, toolchain portado, porte do "ernel para a


C4B mas com novos peri/1ricos na placa =driversA

6ltra-!iolence

-arget di/erente, toolchain e porte do Linu' L+uaseM prontos =C4B parecidaA

7i"htmare

-arget di/erente, sem toolchain portado nem Linu' para a C4B%placa /de pre/er3ncia
!o4C%;4CAA
,magem$ &&&#idso/t&are#com%
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
9@
!istemas embarcados com Linu'

,ntrodu5o

4r1re+uisitos

Criando sistemas embarcados

Cr1ditos, agradecimentos e lin"s


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
9R
Criando sistemas embarcados
Com tudo de/inido, 1 hora de aprender novas li7es$

Conceito >$ e'ecu5o em OAM

Conceito 2$ bootloader

Conceito 9$ root/s

Conceito I$ init
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
98
Conceito >$ e'ecu5o em OAM

K programa, arma0enado em /lash, em geral 1 descompactado para a


OAM# )epois, a e'ecu5o 1 trans/erida para a OAM#

K custo da mem.ria /lash por megabyte 1 maior

A velocidade da OAM 1 bem superior

K programa pode ser arma0enado compactado em /lash

a necessDrio um bootloader =programa de cargaA

Aten5o com processadores sem MMB$

A mem.ria 1 compartilhada por aplicativos e pelo pr.prio "ernel# A /alha em um


aplicativo pode comprometer o "ernel em processadores sem unidade de
gerenciamento de mem.ria =MMBA

('ecutando direto da /lash com Y,4 =eYecution ,n 4laceA$

http$%%elinu'#org%SernelGY,4

http$%%a'/s#source/orge#net%
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
9?
Conceito 2$ bootloader

Bsado para iniciali0ar o sistema operacional e tamb1m a


con/igura5o inicial da plata/orma em uso

Ceralmente agrega outras tare/as, como descompacta5o,


boot remoto via rede ou serial, opera7es com a /lash, etc

Alguns e'emplos$

)as BBoot$ 44C, AOM, A2O92, M,4!, Cold/ire, ###

MicroMonitor$ AOM, Cold;ire, !V2, @8S, M,4!,


4o&er4C, Y!cale ###

redBoot$ AOM,'8@,M,4!,44C, !V' ####

Crub%Lilo$ '8@, boot do Linu', Nindo&s, etc#

Kutros$ blob, !martLoader, colilo, etc#


,magem$ http$%%itpro#ni""eibp#co#Hp%article%CKLBMW%200@0?08%2IRJR2%0u>#Hpg
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
I0
Conceito 9$ root/s

K "ernel estD pronto, mas e o restante das aplica7es : )e onde elas ser5o
lidas : Ooot/s 8

K root/s 1 o sistema de ar+uivo inicial do Linu'# 4ode ser um ar+uivo cpio%et'2


=comum em aplica7es embarcadasA, uma parti5o =geralmente sistemas n5o
embarcadosA ou ainda via rede =W;!, por e'emploA#

Wo momento do boot, o parQmetro LrootFM 1 passado para o Linu', indicando ele


irD encontrar o sistema de ar+uivo inicial# ('emplos$

rootF%dev%hda>

rootF%dev%ram0 root/stypeFram/s

rootF%dev%mtdbloc"> root/stypeFH//s2

K busybo' pode ser uma boa alternativa para popular o root/s, emulando vDrios
aplicativos tradicionais do Linu'# 4ode usar a biblioteca uClibc, bem menor +ue
a glibc#
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
I>
Conceito I$ init

Ap.s montar o root/s, o "ernel e'ecuta o programa


init =ou outro, caso seHa usado o parQmetro LinitFMA#
-amb1m procura por linuxrc#

(ste 1 o primeiro programa e'ecutado e irD /a0er a


iniciali0a5o do sistema# K ar+uivo %etc%inittab dD as
diretri0es de como isto deve ser /eito#

MD+uinas com vers5o completa do Linu' podem ter


es+uemas di/erentes +uando s5o usados m.dulos
e'ternos +ue precisam ser carregados antes do
root/s =es+uema "ernel initrd root/sA#
Ar+uivo
initrd
)iret.rio
root/s
mount
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
I2
Criando um sistema mEnimo
com sash e Linu'

K +ue 1 necessDrio num sistema mEnimo com Linu' :

K sistema operacional ="ernel Linu'A

!istema rai0 =root/sA, com aplicativo=sA e


bibliotecas

!istema mEnimo com sash

sash F static lin"ed shell =sem libc8A

%dev%console =necessDrio para o "ernelA

%dev%hda =necessDrio para o +emu%"ernelA

%bin%sash$ processo a ser e'ecutado


8emu
Sernel
root/s
=sash,devA
init9:bin:sash
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
I9
Criando um sistema mEnimo
com sash e Linu'

Compile um "ernel monolEtico

Crie um ar+uivo va0io e /ormateo como e't2

dd i/F%dev%0ero o/Froot/s#img b0F>02I" countF>

%sbin%m"/s#e't2 i >02I m 0 ; root/s#img

LMonteM este ar+uivo num diret.rio temporDrio

mount o loop root/s#img root/s

L4opuleM este diret.rio$

)ispositivo do terminal$ %dev%console

4rompt de comandos =shellA e suas depend3ncias

!cript de partida$ %bin%sash

('ecute o +emu para iniciar a emula5o


Ar+uivo
initrd
)iret.rio
root/s
mount
Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
II
Criando um sistema mEnimo
com sash e Linu'$ melhorias

uClibc$

Oestri7es menores de licena =LC4L 2A

;ootprint pe+ueno com +uase a mesma /uncionalidade da glibc

http$%%&&&#uclibc#org

Busybo'

2ers7es redu0idas de utilitDrios Bni' em um Tnico e'ecutDvel, bastante


modular e con/igurDvel

Aceita tamb1m uClibc

!uporta outras plata/ormas via CCC cross compiler

http$%%busybo'#net%

)evese ter um toolchain construEdo com a uClibc


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
IJ
!istemas embarcados com Linu'

,ntrodu5o

4r1re+uisitos

Criando sistemas embarcados

Crditos5 a"radecimentos e links


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
I@
4roHetos de constru5o do sistema

buildroot$ http$%%buildroot#uclibc#org%

!cratchbo'$ http$%%&&&#scratchbo'#org%

Croostool$ http$%%&&&#"egel#com%crosstool%

-2 4roHect$ http$%%&&&#t2proHect#org

4odem gerar do 0ero, usando a uClibc$

Cross compiler

Ooot/s

Linu' "ernel

2Drias plata/ormas suportadas ='8@, AOM, 44C, M,4! ###A


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
IR
Lin"s

Linu' a Bordo$ http$%%linu'abordo#com#br

Linu' )evices$ http$%%linu'devices#com

;ree (lectrons$ http$%%/reeelectrons#com

ucdot$ http$%%ucdot#org

6emu$ http$%%/abrice#bellard#/ree#/r%+emu%

Busybo'$ http$%%&&&#busybo'#net%

Code sourcery$ http$%%&&&#codesourcery#com%

avr92/s$ http$%%code#google#com%p%avr92/s%&i"i%Main4age

)as BBoot$ http$%%&&&#den'#de%&i"i%BBoot


Sistemas Embarcados com Linux primeiros passos
Copyright 2008, Marcelo Barros de Almeida
Licena Creative Commons Attribution!hareAli"e 2#0
http$%%&&&#smar#com#br http$%%&&&#linu'abordo#com#br
I8
Agradecimentos

Ao Michael Kpdnac"er, por dei'ar pTblico e'celente material sobre


Linu' embarcado, algumas parte usadas a+ui$ http$%%/reeelectrons#com

Ao proHeto Kpen Cliparts$ http$%%openclipart#org

Ao proHeto Kpen K//ice pelos e'celente programas

Você também pode gostar