Вы находитесь на странице: 1из 51

Criandosistemas embarcadoscomLinux dateoriaprtica

Eng.Dr.MarceloBarrosdeAlmeida
marcelobarrosalmeida@gmail.com

SmarEquipamentosIndustriaisLTDA
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

Direitosdecpia
CrditosShareAlike2.0 Voclivrepara copiar,distribuir,apresentareexecutartrabalhos fazertrabalhosderivados fazerusocomercialdestetrabalho Sobasseguintescondies Crditos.Vocdevedarcrditoaoautororiginal. Compartilhedomesmomodo.Sevocalterar,mudar, ourealizartrabalhosusandoestecomobase,vocdeve redistribuirotrabalhosresultantesobumalicena idnticaaesta. Paraqualquerreusooudistribuiovocdevedeixarclaro ostermosdelicenadestetrabalho. Qualquerumadestascondiespodemserabandonadasse vocobtiverumapermissododetentordosdireitos autorais. Faausojustoeodireitosdosoutrosnoseroafetadosde formaalgumapelasrestriesacima. Textodalicena: http://creativecommons.org/licenses/bysa/2.0/legalcode

Copyright2007 MarceloBarros marcelobarrosalmeida@gmail.com Documentosoriginais,atualizaese tradues: http://linuxabordo.com.br/ Correes,sugestesetraduesso bemvindas!

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

MarceloBarros?

Formao:

Engenheiroeletrnico(EFEI,1996) Mestre(UFMG,1998) Doutor(UFMG,2002) Engenheiro(SmarEquip.IndustriaisLTDA) ProfessordoBarodemau

Atualmente:

smar

Detalhes: http://linuxabordo.com.br/wiki/index.php?title=Marcelo_Barros
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

Criandosistemasembarcados comLinux

Introduo

Definiodesistemaembarcado Mercado LinuxtradicionalxLinuxembarcado Vantagensecuidados

Prrequisitos Criandosistemasembarcados Crditos,agradecimentoselinks

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

Definiodesistemaembarcado
Oqueexatamentesignificasistemaembarcado?
DefiniodaWikipedia:umcomputadordepropsitoespecial,que completamenteencapsuladopelodispositivoquecontrola.

Definiomuitoabrangente.Algumasdicas:
Propsitoespecfico Microprocessado/Microcontrolado AplicaoemROM/Flash Restriesdeconsumooutamanho sofreqentes

?
5

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

Exemplosdesistemasembarcados comLinux
Telefonescelulares PDASharpZauroSLC3100

MultimdiaArchosPMA400 RoteadorLinksysWTR54G

TelefoneVoIPWiFiAcctonVM1188T

Thinclients

Relgio

Tablets

DVDs

Robs

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

MercadodeLinuxembarcado
QuaisSOstmsidousadospelasuaempresanosltimosdois anosemprojetosembarcados?

Slidesde11a17:pesquisaespontnearealizadaporlinuxdevices.com(http://linuxdevices.com/news/NS5319577519.html) CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

MercadodeLinuxembarcado
QuefontesdoLinuxforamusadosnoseusprojetos embarcados?

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

MercadodeLinuxembarcado
Vocpagariaporsuporte?

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

MercadodeLinuxembarcado
Queferramentasdedesenvolvimentovocesperausar?

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

10

MercadodeLinuxembarcado
Eapartelegaldoprojeto?

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

11

MercadodeLinuxembarcado
QuaisforamasCPUusadanosprojetos?

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

12

LinuxtradicionalxLinuxEmbarcado
GNUTradicional/SistemaLinux SistemaLinuxembarcado
Grficos, navegadorweb, servidordeweb. Implementaes muitomaisleves! Semferramentasde desenvolvimento.

Navegadorweb,escritrio,multimdia... Interfacepersonalizada busybox (ls,vi,wget,httpd...) dropbear(ssh)...

Interface comousurio Utilitriosde linhade comando Bibliotecas compartilhadas BibliotecaC Kernel

ls,vi,wget,ssh,httpd,gcc...

libjpeg,libstdc++,libxml,libvorbis...

libjpeg,libstdc++,libxml,libvorbis...

uClibc
BibliotecaGNUC
Kernelcompletocoma maioriadascaractersticasecom KernelLinux driversparatodotipodehardware dePCdoplaneta!!

KernelLinux/uClinux(semMMU)

Muitomaisleve doquea bibliotecaCGNU! Kernelleve,somente comascaractersticas necessriasedrivers

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

13

VantagensdeLinuxembarcado

Qualidadedocdigo Footprintrelativamentepequeno:

Kernel:0,52MBdeflash Sistemadearquivos:varivel Mesmoassim,podesergrandeparaalgumasaplicaes

Portabilidadeeescalabilidade Grandenmerodeaplicativosdisponveis Possibilidadedecustosreduzidos Suporte

Usethesourcesyou must,Luke

Frum,listas,email,FAQs,exemplos,suportecomercial disponvel.
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

14

CuidadoscomLinuxembarcado

Linuxumsistemadepropsitogeral! Existemmuitasopesdeaplicativos,requer anliserefinada Sistemaemevoluoconstante Faaanlisesimparciais,eviteo deslumbramento Oformatodaslicenasdeveserverificado sempre

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

15

LicenaseLinuxembarcado
GPL2:
Youmaycopyanddistributethe Program(oraworkbasedonit...)... providedthatyou...accompanyitwith thecompletecorrespondingmachine readablesourcecode...

LesserGPL(LGPL):
Weusethislicenseforcertainlibraries inordertopermitlinkingthoselibraries intononfreeprograms...Asan exception...youmayalsocombineor linka"workthatusestheLibrary"with theLibrarytoproduceaworkcontaining portionsoftheLibrary,anddistribute thatworkundertermsofyourchoice, providedthatthetermspermit modificationoftheworkforthe customer'sownuseandreverse engineeringfordebuggingsuch modifications...

KernelLinuxGPL2,mas...
Thiscopyrightdoes*not*coveruser programsthatusekernelservicesby normalsystemcallsthisismerely considerednormaluseofthekernel,and does*not*fallundertheheadingof "derivedwork"...(LinusTorvalds)

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

16

LicenaseLinuxembarcado

GPL3

FortementecontraoDRM(DigitalRights Management) Inibeousodepatentes Atomomento,oLinuxGPLv2 Umalistainteressanteem: http://debianlinux.net/os.html NetBSD


St.IGNUcius
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

Alternativas:

17

Criandosistemasembarcados comLinux

Introduo Prrequisitos

Conhecimentosnecessrios Equipamentonecessrios Criandosistemasembarcados Preview:criandosistemasembarcados

Crditos,agradecimentoselinks

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

18

Conhecimentosnecessrios: KernelLinux

Linux

OperaoefuncionamentodosistemaLinux Inicializaonaplataformadesejada ConhecimentodaestruturadoKernel CompilaoeinstalaodoKernel

AlgunsdetalhesdoLinux*:

Verso2.6.12.5:

~189MB ~4,686milhesdelinhas ~468desenvolvedores


CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

*AstudyofLinuxkernelevolution,OdedKoren,ACMSIGOPSOperatingSystemsReview,Volume40,Issue2,pag.110112

19

Conhecimentosnecessrios: ferramentas

Compiladorescruzados(toolchains)

PortesdoGCCparaaplataformadesejada(binutils/glibc/GCC/GDB,...) Downloaddetoolchainsprcompiladosoucompilao(podeserfacilitada combuildroot,CrossTool,OpenEmbedded,Scratchbox,T2Project...)

Emuladores

Qemu(x86/ARM/PPC/MIPS/Sparc) Especficos:Skyeye/Softgun/SWARM(ARM),Coldfireemulator

Outros

Conhecimentosderedes(Configurao,TFTP,NFS,...) Usodeaplicativoscomominicom(consoleserial),hexdump,conversores Controledeverso(CVS/Subversion/Git),patches,diffs,Makefiles,etc


CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

20

Conhecimentosnecessrios: programao

ProgramaremCobrigatrio Assemblyparaaplataformadesejadapodesernecessrio Umpoucodeshellscriptnofazmalaningum Desenvolvimentodemdulosedevicedrivers Bnustrack:


HTML,servidoresHTTP CGIescripts(Python,PHP,Perl,etc) Java

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

21

Conhecimentosnecessrios: eletrnicadigital

Microcontroladores/Microprocessadores Padresdememrias:

SDRAM Flash EEPROM

Padresdebarramentospodeajudarcasoprecise desenvolverdrivers Outros:

Timers,PWM,SPI,I2C,interrupes,RTCs,MMUs,etc

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

22

Equipamentosnecessrios

EstaodetrabalhoLinux Plataformaembarcada Equipamentoparadebug Cabos(serialeethernet) Switches

Imagem:nbpfaus.net/~pfau/pictures/MyWorkstation.jpg

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

23

Equipamentosnecessrios: plataformaembarcada

Principaisalternativasparaaplataformaembarcada

Emulao:Qemuououtroemuladorespecfico PC(ATX,miniITX,nanoITX) PC/104 SBC(SingleBoardComputers) Hardwarehackeado(PDAs,celulares,MP3players,roteadores,set topboxes,vdeogames,relgios,etc) Hardwareproprietrio

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

24

Algunsformfactorspara plataformaembarcada

http://www.linuxdevices.com/articles/AT2614444132.html http://www.via.com.tw/en/products/mainboards/
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

25

ExemplodeSBC: AtmelNGW100

ProcessadorAtmelAVR32,32AP7000,industrial, 150Mhzmximoe210DMIPS. Doiscontroladoresethernet(34Mbits/sde performance) 32MBdeSDRAM,16MBdeflash(8MBparalelae8MB serial) ConectorparacartesSD/MMC USB,JTAG,conectoresparaexpanso ToolchainekernelLinuxcomsuporteatodosos perifricos Esquemas,gerberfiles
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

26

Equipamentosnecessrios: plataformaembarcada

Hardwareproprietriopodetercustoelevado:

Projetodocircuitoeletrnico Layoutdaplaca ConfecodoPCB(PrintedCircuitBoard)emontagem Instrumentao(osciloscpios,analisadoreslgicos,multmetros, estaesdesoldagem) Integraohardwarexsoftware Mecnica(caixas,fixao,conectores,etc) Certificao,quandonecessrio

Avaliarsempreocustodoinvestimento
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

27

Equipamentosnecessrios: debug

JTAG(JointTestActionGroup)

Permitedebugdaplataformaatravsdeumainterfacesimples,geralmente viaportaparalela,USBouethernet(ICEInCircuitEmulation),desdequeo chiptenhasuporteaoJTAG Custobaixo,algunspodemserfeitosemcasa Breakpoints,inspeodememria,execuopassoapasso,acessoa registros,etc

BDM(BackgroundDebugMode)

FuncionalidadeICEsimilaraoJTAG,empregadopelaMotorola

Emuladores(viahardware)

Equipamentosqueemulamoprocessador/microcontrolador.Bemmaiscaros.
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

GDBremoto
28

Criandosistemasembarcados comLinux

Introduo Prrequisitos Criandosistemasembarcados


Fazendoescolhas Conceitos Criandodispositivos

Crditos,agradecimentoselinks

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

29

Fazendoescolhas: plataformaesuporte

Vriasplataformasexistentes:

ARM(vriosfabricantes,longabusca...) Coldfire(Motorola) PPC(Motorola/IBM/Apple) x86fanless(Geode/AlchemydaAMD,CeleronMdaIntel,Edenda VIA) MIPS(MIPS) AVR/AVR32(Atmel)

Suporte

Comercialxcomunitrio
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

30

Fazendoescolhas: suporteatemporeal

Suporteatemporeal:

Comercial:

RTLinuxPro(AntesFMSLabs,agoraWindRiver) MontaVista RTLinuxFree(WindRiver,licenadual) RTAI(UsandoAdeos,livredepatentesagora)

Opensource:

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

31

Fazendoescolhas: interfacesgrficas

Vriassistemasgrficos:

Qtopia DirectFB Matchbox SDL FLTK MiniGUI NanoX(Microwindows)

Referncias:http://www.linuxdevices.com/articles/AT9202043619.html http://www.linuxjournal.com/article/9403 CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

32

Fazendoescolhas: interfacesgrficas
FramebufferxXlib:

Qtopia Qt/Embedded Framebuffer Linux

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

33

Criandosistemasembarcados
Comtudodefinido,horadeaprendernovaslies: Conceito1:execuoemRAM Conceito2:bootloader Conceito3:rootfs Conceito4:init

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

34

Conceito1:execuoemRAM

Oprograma,armazenadoemflash,emgeraldescompactadoparaa RAM.Depois,aexecuotransferidaparaaRAM.

Ocustodamemriaflashpormegabytemaior AvelocidadedaRAMbemsuperior Oprogramapodeserarmazenadocompactadoemflash necessrioumbootloader(programadecarga)

AtenocomprocessadoressemMMU:

Amemriacompartilhadaporaplicativosepeloprpriokernel.Afalhaemum aplicativopodecomprometerokernelemprocessadoressemunidadede gerenciamentodememria(MMU)

ExecutandodiretodaflashcomXIP(eXecutionInPlace):

http://tree.celinuxforum.org/CelfPubWiki/KernelXIP
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

35

Conceito2:bootloader

Usadoparainicializarosistemaoperacionaletambma configuraoinicialdaplataformaemuso Geralmenteagregaoutrastarefas,comodescompactao, bootremotoviaredeouserial,operaescomaflash,etc Algunsexemplos:


DasUBoot:PPC,ARM,AVR32,MIPS,Coldfire,... MicroMonitor:ARM,ColdFire,SH2,68K,MIPS, PowerPC,XScale... redBoot:ARM,x86,MIPS,PPC,SHx.... Grub/Lilo:x86,bootdoLinux,Windows,etc. Outros:blob,SmartLoader,colilo,etc.


Imagem:http://itpro.nikkeibp.co.jp/article/COLUMN/20060908/247572/zu1.jpg

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

36

Conceito3:rootfs

Okernelestpronto,maseorestantedasaplicaes?Deondeelassero lidas?Rootfs! OrootfsosistemadearquivoinicialdoLinux.Podeserumarquivocpio/etx2 (comumemaplicaesembarcadas),umapartio(geralmentesistemasno embarcados)ouaindaviarede(NFS,porexemplo). Nomomentodoboot,oparmetroroot=passadoparaoLinux,indicandoele irencontrarosistemadearquivoinicial.Exemplos:


root=/dev/hda1 root=/dev/ram0rootfstype=ramfs root=/dev/mtdblock1rootfstype=jffs2

Obusyboxpodeserumaboaalternativaparapopularorootfs,emulandovrios aplicativostradicionaisdoLinux.PodeusarabibliotecauClibc,bemmenorquea glibc.


CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

37

Conceito4:init

Apsmontarorootfs,okernelexecutaoprograma init(ououtro,casosejausadooparmetroinit=). Tambmprocuraporlinuxrc. Esteoprimeiroprogramaexecutadoeirfazera inicializaodosistema.Oarquivo/etc/inittabdas diretrizesdecomoistodeveserfeito. MquinascomversocompletadoLinuxpodemter esquemasdiferentesquandosousadosmdulos externosqueprecisamsercarregadosantesdo rootfs (esquemakernel initrd rootfs).

Arquivo initrd

mount

Diretrio rootfs

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

38

Criandoumsistemamnimo comsasheLinux

OquenecessrionumsistemamnimocomLinux?

Osistemaoperacional(kernelLinux) Sistemaraiz(rootfs),comaplicativo(s)e bibliotecas


Kernel init=/bin/sash rootfs (sash,dev) Qemu

Sistemamnimocomsash

sash=staticlinkedshell(semlibc!) /dev/console(necessrioparaokernel) /dev/hda(necessrioparaoqemu/kernel) /bin/sash:processoaserexecutado

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

39

Criandoumsistemamnimo comsasheLinux

Compileumkernelmonoltico Crieumarquivovazioeformateocomoext2

ddif=/dev/zeroof=rootfs.imgbz=1024kcount=1 /sbin/mkfs.ext2i1024m0Frootfs.img

Arquivo initrd

Monteestearquivonumdiretriotemporrio

mountolooprootfs.imgrootfs

mount

Populeestediretrio:

Dispositivodoterminal:/dev/console Promptdecomandos(shell)esuasdependncias Scriptdepartida:/bin/sash

Diretrio rootfs

Executeoqemuparainiciaraemulao
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

40

Criandoumsistemamnimo comsasheLinux:melhorias

uClibc:

Semrestriesdelicena(LGPL2) Footprintpequenocomquaseamesmafuncionalidadedaglibc http://www.uclibc.org

Busybox

VersesreduzidasdeutilitriosUnixemumnicoexecutvel,bastante modulareconfigurvel AceitatambmuClibc SuportaoutrasplataformasviaGCCcrosscompiler http://busybox.net/

DeveseterumtoolchainconstrudocomauClibc
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

41

Emteoria,noexistediferena entreteoriaeprtica...

I'mtooyoungtodie

Targetigual(x86),toolchainekernelprontosparaaCPU/placa

Hey,nottoorough

Targetdiferente,toolchainekernelprontosparaaCPU/placa(kits)

Hurtmeplease

Targetdiferente,toolchainportado,portedokernelparaa CPUmascomnovosperifricosnaplaca(drivers)

Imagem:www.idsoftware.com/

Ultraviolence

Targetdiferente,toolchaineportedoLinuxquaseprontos(CPUparecida)

Nightmare

Targetdiferente,semtoolchainportadonemLinuxparaaCPU/placa(depreferncia SoPC/FPGA)
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

42

CriandoumsistemaLinux paraaNGW100(AVR32)

Algumasfacilidades:

ToolchainfornecidopelaAtmel,compiladocomuClib Kerneltotalmenteportadoefuncional Vriosaplicativosjportados Scriptsparareconstruodosistemaraiz

Problemas:

Muitospatchesparaseremaplicados Dificuldadedepersonalizao Repetibilidadecomprometida Suporteaindainicialemferramentastradicionais(buildroot,T2,etc)


CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

43

LinuxFromScratcheAVR32

LinuxFromScratch(LFS):

passoapassodaconstruodosistemaLinux.Merece umalidapelomenosumavez.

AutomatedLinuxFromScratch(ALFS)

Permiteautomatizaraconstruodosistema nALFS:executainstruesdeconstruobaseadaemum arquivoxml

avr32fs(AVR32fromscratch)

ProjetoparageraodosistemadaplacaNGW100 Facilitaoprocessoepermiteacompanhamento http://code.google.com/p/avr32fs/wiki/MainPage


CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

44

LinuxFromScratcheAVR32

Oavr32fsdivididoemtrsestgios:

stage1:criaestruturabsicadosistemaearquivosdeconfigurao stage2:compilaeinstalavriospacotesdesoftware(uClibc,kernel, iptables,etc) stage3:criaaimagemdosistema,emjffs2,prontaparasergravada naflash

Obootloader(uboot)usadoparaagravaodanova imagem

vriasopes:TFTP,serial,cartosd,NFS funesparaapagamentoegravaonaflash

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

45

JFFS2eoparticionamentodaflash

JournallingFlashFileSystemverso2

Estratgiamelhorparaescritanaflash(vidatilmaior) Possibilidadedecompresso,suporteajournaling Consomemaismemriaeaumentaotempodeboot Exigemodificaesnokernelparadescreveraflashe criaroparticionamento

/dev/mtdblock0(128k) uboot

MudanasnoKernel:

/dev/mtdblock1(8000k) kernel+rootfs

[path_do_kernel]/arch/avr32/boards/atngw100/flash.c osdispositivosdeblocksocriadosnapartida
/dev/mtdblock2(64k) parmetrosdouboot
Flash(NOR)paralela daNGW100
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

46

GravandoanovaimagemviaUBoot
Comandos:
protectoff0x200000x7effff erase0x200000x7effff setenvipaddr10.0.0.1 setenvtftpip10.0.0.100 tftp0x90000000avr32linuximagebasic.jffs2.img cp.b0x900000000x200000x23e014<<<<====tamanho!! protectonall setbootargs'console=ttyS0root=/dev/mtdblock1 rootfstype=jffs2';fsload;bootm boot

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

47

Criandosistemasembarcados comLinux

Introduo Prrequisitos Criandosistemasembarcados Crditos,agradecimentoselinks

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

48

Agradecimentos

AoMichaelOpdnacker,pordeixarpblicoexcelentematerialsobre Linuxembarcado,algumasparteusadasaqui:http://freeelectrons.com AoprojetoOpenCliparts:http://openclipart.org AoprojetoOpenOfficepelosexcelenteprogramas

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

49

Projetosdeconstruodosistema

buildroot:http://buildroot.uclibc.org/ Scratchbox:http://www.scratchbox.org/ Croostool:http://www.kegel.com/crosstool/ T2Project:http://www.t2project.org Podemgerardozero,usandoauClibc:


Crosscompiler Rootfs Linuxkernel

Vriasplataformassuportadas(x86,ARM,PPC,MIPS...)
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

50

Links

LinuxaBordo:http://linuxabordo.com.br LinuxDevices:http://linuxdevices.com FreeElectrons:http://freeelectrons.com ucdot:http://ucdot.org Qemu:http://fabrice.bellard.free.fr/qemu/ Busybox:http://www.busybox.net/ Codesourcery:http://www.codesourcery.com/ avr32fs:http://code.google.com/p/avr32fs/wiki/MainPage DasUBoot:http://www.denx.de/wiki/UBoot

CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br

51

Вам также может понравиться