Vous êtes sur la page 1sur 3

Rodando Linux em ARM Plataformas de desenvolvimento Janeiro 2007 Resumo Este documento descreve as fases para rodar o Linux

em plataformas baseadas em ARM, desde a instalao de um boot loader, do kernel e arquivo imagem do sistema. Este documento no pretende ser exaustiva orientar sobre o desenvolvimento ou construo de um sistema Linux. ! informao dispon"vel na comunidade de c#digo aberto para isso. $#runs de discusso de c#digo aberto tamb%m oferecem uma valiosa fonte de informao. &or favor, consulte o site 'iki ARM Linux( ))).linux*arm.org ou ))).arm.com+linux para informa,es adicionais. 1. Instalao de imagens r!"#onstru$das

As imagens podem ser instalados em flas- usando um depurador conectado . placa atrav%s de um controle de execuo de dispositivo /0A1, tais unidades ARM Real2ie) 34E. * ARM RealView Integrator Board( usa ARM $las- 5tilit6 7fornecido com a placa8 para imagens do programas 7por exemplo A$5.axf8, executando o utilit!rio do depurador( AFU> program 1 u-boot c:/tmp/u-boot.bin Lowest available flash at location 0 !"""0000 bloc# $%0 &rogramming $loc# $%0 ' * ARM RealView Versatile/(PB, AB) 926EJ-S( executa o programa 9ootMonitor.axf fornecido com o placa do depurador de imagens do programa. ! um menu $las- com algumas op,es para programa EL$ ou imagens bin!rias. &ara executar a partir de flas- voc: deve programar a imagem EL$ na flas- como( FLA()> write image c:/tmp/u-boot.a f *A+, u-boot 5m utilit!rio de programao adicional flas- % fornecido com ARM Real2ie) 2ersatile c-amados ;<et)ork 5tilit6 $las-= 7<$58. Este programa permite a programao de imagens na flas- usando uma conexo Et-ernet. &ara baixar e programar uma imagem de 5*9oot na flas- a partir de um servidor com endereo 3& >?@A.?BC.D.?E por exemplo, voc: pode usar a seguinte sequ:ncia( manage -hcpc start manage map n: 1.!.1/0.0.1 flash write image n:/u-boot.a f 5m processo semel-ante pode ser usado para programar outras imagens 7kernel e cramfs8 na $las-. Estas deveriam ser programadas como arquivos bin!rios que no so imagens EL$. 2. %oot Loader 5*9oot % usado como boot loader para Real2ie) 3ntegrator e plataformas 2ersatile. F c#digo fonte e documentao esto dispon"veis no seguinte local( -ttp(++sourceforge.net+proGects+u*boot+ 5*9oot dever! funcionar a partir de DxD?DDDDDD na mem#ria em placas ARM. As imagens fornecidas pode ser carregado e executado a partir de um depurador neste endereo. * Real2ie) 3ntegrator( bin!rios ra) 7ou arquivos EL$8 pode ser colocado no in"cio da flas- e executado como imagem padro. * Real2ie) 2ersatile( voc: deve usar o arquivo EL$ para executar diretamente da flas- ou carregar e executar o bin!rio da mem#ria. &ara compilar 5*9oot, baixe distribuio do c#digo fonte do site acima. Ap#s ter baixado os fontes, voc: precisa configurar e construir o boot loader. 2oc: pode consultar a lista completa dos alvos do Makefile. &ara configurar e compilar o boot loader, voc: deve executar os seguintes comandos( * Real2ie) 3ntegrator+4&( ma#e integratorcp1config ma#e * Real2ie) 2ersatile( ma#e versatileab1config ma#e Execut!veis resultantes 7bin!rio e EL$8 esto localiHados no diret#rio de n"vel superior. Algumas macros so usadas para codificar lin-a de comando padro passado para um kernel Linux, sequ:ncia de boot padro do boot loader 7ou seGa d-cp+bootp, flas- etc.8 Algumas destas defini,es podem ser alteradas de forma interativa a partir do lin-a de comando do 5*boot, usando o comando set. &arImetros utiliHados para placa ARM Real2ie) 2ersatile podem ser encontradas na respectiva configurao arquivo no diret#rio include+configs com defini,es macro, tais como 4F<$31J4FMMA<KL, 4F<$31J9FF0AR1L e 4F<$31J9FF04FMMA<K. F kernel do Linux % normalmente carregado no endereo especificado pelo 4$1JLFAKJAKKR 7DxMcD8 e em seguida, executado a partir de DxCDDD para uma imagem do kernel Linux descompactado. Estes parImetros so

especificado pelo utilit!rio mkimage do u*boot que converte uma imagem de bin!rio do kernel do Linux para ser carregado pelo u*boot. F utilit!rio mkimage % constru"do ao compilar u*boot. <ote que quando importar uma imagem de kernel atrav%s da Et-ernet, voc: deve configurar o servidor para recon-ecer o endereo MA4 da sua plataforma e a localiHao da imagem para baixar. %oot a artir de imagens em flas&

Ao adicionar o cabeal-o u*boot para a imagem bin!ria do kernel Linux, garante que a carga e endereo de execuo esto definidas em DxCDDD. F comando de inicialiHao deve ser( 2 3ntegrator4& 5 cp 0 6#ernel1a--ress1in1flash> 0 7fc0 0 63mage1si8e1in1wor-s> 2 3ntegrator4& 5 bootm 2oc: tamb%m pode usar a NaGudaO de comando com 5*9oot para ver a sintaxe exata de cada comando. A lin&a de #omando A cmdline do kernel Linux pode ser definido a partir do prompt 5*9oot usando o comando ;set=. F 4omando ;printenv= pode ser usado para listar as vari!veis de ambiente. Ao executar o Pernel Linux a partir de um boot loader, o kernel ir! utiliHar a lin-a de comando que % apontado por >r?E, em veH de qualquer padro constru"do em lin-a de comando. As imagens fornecidas permite que voc: salve o ambiente na mem#ria $las-. 3sto pode ser feito usando o comando saveenv. As imagens 5*9oot dispon"veis para do)nload em -ttp(++))).arm.com+linux contem a lin-a de comando usada com 5*9oot, kernel e imagens do sistema de arquivos salvos na flas-, nessa ordem, a comear na parte inferior da flas-. '. (ernel do Linux $ontes do kernel podem ser obtidos e baixado ))).kernel.org. Qualquer correo adicional deve ser aplicada para a !rvore fonte do kernel base como se segue( 9 c- linu -!./.1./ 9 patch 2p 1 6 patch-!./.1.-6revision> Fs arquivos de configurao so fornecidos para cada plataforma e imagens pr%*constru"das. A configurao do arquivo deve ser copiada para a !rvore do kernel como .config, o kernel pode ser configurado em execuo ;Make xconfig= ou comandos equivalentes 7;make menuconfig= etc.8 A seguinte sequ:ncia de comandos podem ser usados para construir o kernel( 9 ma#e config 9 ma#e 3mage *E produH uma imagem de bin!rio em arc-+arm+boot+

5m arquivo vmlinux tamb%m % gerado, que cont%m informa,es de depurao associados aimagem do kernel que pode ser carregado por um depurador 7assumindo que o kernel % compilado com a flag ;*g=8. F boot loader tamb%m determina a identificao da plataforma. Esta informao % armaHenada no registo >r?E. F nRmero da plataforma % necess!rio para o kernel antes de iniciar sua execuo. Ao iniciar o kernel diretamente de um depurador, este valor do registo deve ser definido a partir do depurador. ). *iles+stem 3magens pr%*constru"das do sistema de arquivos fornecidos para esta p!gina pode ser usado com ARM Real2ie) 3ntegrator e &lataformas 2ersatile. F tipo de plataforma % detectado em tempo de execuo com um script para criar um link simb#lico para o dispositivo apropriado de s%rie 7+dev+tt6 ...8. Estas imagens cont:m um subconGunto de utilit!rios de sistema, comandos e aplica,es. &ara configurar um imagem compactada do sistema de arquivos, o arquivo ARMJEmbeddedJLinuxJA.S.D.tar.gH precisa ser descompactado. As instru,es de construo previstas no n"vel superior do arquivos REAKME lista os v!rios passos necess!rios para gerar uma imagem de sistema de arquivos compactado. 5m exemplo da fonte de pacotes usados para produHir aplica,es utiliHadas neste sistema de arquivos 7por exemplo cramfs8 est! dispon"vel em formato fonte para ARM sobre pedido 7contato com o suporte ARM8. F sistema de arquivos pode ser montado atrav%s do <$L ou colocado na $las-, dependendo das defini,es da plataforma e da lin-a de comando passada para o kernel no momento do boot. Em qualquer caso, a localiHao do sistema de arquivos deve ser especificada na lin-a de comando do kernel pelo NrootT...O opo, ou rootT+dev+mtdblocki, ou rootT+dev+nfs, onde i % para ser substitu"do pelo nRmero da partio apropriada. <a plataforma Real2ie) 2ersatile, a opo mtdpart precisa ser definido para indicar onde as imagens esto localiHados na flas-. 3sso est! documentado nos fontes kernel driver+M0K+ e um exemplo est! na arquivo de configurao associado com a imagem bin!ria da Real2ie) 2ersatile. ,. -om ilation *erramentas ,.1.-ross"#om ilao 5m brao da cadeia ferramenta cross*compilao precisa ser instalado no sistema -ost para produHir Linux kernels ou aplica,es. &or padro, este documento assume um desenvolvimento anfitrio baseado em Linux plataforma. <ote*se que a cadeia de ferramentas pr%*compilado que est! dispon"vel para do)nload pressup,e que voc: ten-a um verso da biblioteca glibc U A,S instalado em seu sistema. Execute os seguintes passos como root para descompactar e instalar a cadeia de ferramentas pr%*constru"do

em seu sistema( 9 9 9 9 m#-ir /usr/local/arm/gnu/release".1.1 c- /usr/local/arm/gnu/release".1.1 tar vf8 sourcer:g;;-".1.1-arm-none-linu -gnueabi-i/0/-pc-linu -gnu.tar.g8 ln 2s /usr/local/arm/gnu/release-".1.1 /usr/local/arm/gnu/release

$ontes utiliHadas para construir as ferramentas 144 pode ser baixado do ))).codesourcer6.com ou do 144 principal reposit#rio 42L. 1rupos de discusso tamb%m esto dispon"veis neste site para discutir t%cnico quest,es relacionadas com a ARM ferramentas 1<5. 2!rios alvos pode ser constru"do para o compilador( * arm*elf produH um bin!rio planas ou autVnomo que no esto vinculados a qualquer sistema operacional. arm*elf seleciona EL$ apoio que compartil-a muito do seu c#digo com o arm*linux. * arm*none*linux*gnueabi % o alvo que voc: precisa para Linux e gera apoio EL$ para Linux+ARM. A cadeia de ferramentas pr%*constru"do % produHido usando a opo de brao*linux e % produHido contra A.S.B verso do 1libc. ,.2. A%I #om ati.ilidade A verso do 144 usado com esta verso 7ou seGa, 144 W.?8 padro para a nova A93 para o ARM Arquitetura. Linux kernel A.B.?@ verso pode ser configurado para suportar tanto, a nova A93 para a Arquitetura ARM e A93 idade. &acotes fornecidos com o sistema de arquivos verso A.A.D foram constru"dos para o nova A93, voc: deve garantir que o kernel Linux est! configurado para suportar esta verso do 309 7Recursos do kernel (( 4F<$31JAEA938. 2erso mais antiga do A93 para a arquitetura ARM pode ser usado com recursos do kernel (( 4F<$31JFA93J4FM&A0, no entanto, esta deve ser utiliHada em conGunto com um sistema de arquivo com bin!rios constru"dos para a A93 idade 7ou seGa AEL A.?.D8. 3sto % particularmente importante quando se utiliHa estruturas de dados, como aqueles passados atrav%s ioctl78 c-amadas onde tipos e alin-amento deve ser exatamente o mesmo do ponto de vista do kernel a partir da viso do usu!rio. 5ma nota de aplicao est! dispon"vel a partir de p!ginas brao de apoio que fornecem mais informa,es sobre como usar as ferramentas de compilao ARM Real2ie) com ferramentas 1<5. Este documento pode ser encontrado em( -ttp(++))).arm.com+pdfs+A<?XD9J9uildingJLinuxJApplicationsJ)it-JR240.Hip /. 0-linux Esta p!gina fornece imagens pr%*constru"das de gros u4linux. F principal reposit#rio e fonte de informa,es sobre u4linux % acess"vel a -ttp(++))).uclinux.org e -ttp(++opensrc.sec.samsung.com+ para a porta ARM inicial criado por 6ok L. 4-oi. A partir de ADDX, Apoio MM5less para ARM comeou a ser incorporado kernel principal e na maioria das &atc-es no kernel MM5less devem ser integrados em kernel. As imagens u4linux dispon"veis a partir desta p!gina )eb so geradas utiliHando uma ferramenta compat"vel EA93 cadeia e que o kernel % compilado com a opo 4F<$31JAEA93 -abilitado. <o entanto, no -! ainda um cumprimento EA93 completo para u4linux 7bibliotecas compartil-adas ou seGa, etc.8 A imagem do sistema de arquivos fornecido nesta p!gina % uma coleo de utilit!rios e arquivos execut!veis gerados pela comunidade que no so compilado com a opo EA93. F kernel pode lidar com ambos os tipos de bin!rios assumindo que ele ten-a sido configurado para faHer isso. u4linux usa um formato bin!rio apartamento em arquivos bin!rios. Este % um formato relativamente simples destinado a conter o m"nimo necess!rio para carregar e executar bin!rios. 5m script de ligao especial % necess!ria para preparar um arquivo EL$, assim como uma utilidade c-amada elfAflat. Estes so fornecidos com 1<5 ferramentas dispon"veis da comunidade u4linux. 7. 1otas adi#ionais <otas e pacotes do Linux fornecidas nesta p!gina servem como ponto de partida para a avaliao e validao com plataformas de desenvolvimento ARM. Entre em contato com distribuidores de Linux para Linux completo distribui,es. Alguns f#runs de discusso adicionais tamb%m esto dispon"veis em sites pRblicos, listas de discusso do kernel do Linux e listas de correio 1<5. Futras comunidades, como ))).debian.org, ))).openembedded.org, ))).-and-elds.org -ttp(++))).celinuxforum.org+ e tamb%m proporcionar bons recursos que podem ser usado com plataformas ARM.

Vous aimerez peut-être aussi