fabim escreveu:Bom, dado o nivél tênico dos colaboradores.
Eu acho interessante darmos um startup em poucas palavras para que o inutil aqui, e outros que nem tanto são inuteis, iniciem neste vasto universo linuxeiro..
Bem, eu entendi mais ou menos como iniciar, mais ai fica bem complexo e arduo o negocio.
o problema eh que daih vc comeca a entrar em TI *bem* avancado.
nao estou falando do TI enganacao que a maioria faz, que eh subir um server com samba e tah no ar. imagina uma aplicacao embarcada trivial, tipo um modem ADSL: jah tem que manjar de firewall e nat (iptables), tem que suprir um manager via http e snmp, tem que suprir funcionalidade de administracao avancada com ssh, suporte a roteamento, ppp e um maldito device driver para a interface xDSL que vc estiver utilizando.
e isso ae eh um negocio capenga. daqui a pouco o cliente vai pedir suporte a RIP, OSPF e um asterisk, daih como fica? tah praticamente tudo pronto, mas o esforco para colocar no ar dentro do embarcado eh cavalar, nao tem interface grafica, IDE ou o caramba q tem nos windows melzinho na chupeta, motivo pelo qual possivelmente uma solucao destas com windows eh um lixo e nao funciona! vai num datacenter grande procurar um roteador windows powered... nao tem.
dada a bronca, espero que em paralelo vc gaste seu precioso tempo lendo a documentacao que lhe foi indicada, evite a todo custo usar ferramentas facilitadoras e meta a mao na massa.
O ideal, seria uma base didatica de assuntos pertinentes ao iniciante.
Por exemplo.
Compilar o kernel !?
cd /usr/src/linux
make menuconfig
make
make modules
isso vai gerar um kernel e seus modulos. como eh quase certo que vai dar m**** pq vc ainda nao sabe o que deve ou nao incluir, deixo como opcional:
make install
make modules_install
recomendo comecar a fazer isso com uma maquina virtual x86. um slackware instala em 15 minutos do DVD, eh soh ir dando enter e vc pode destruir a vontade... antes que pergunte, tem tutorial no youtube de instalacao e configuracao. novamente, usar a muleta do ubuntu soh vai te atrasar a vida quando o embarcado lah na frente comecar a dar pau e vc nao souber nem fazer um ifconfig para ver que ele bootou sem o mac address.
gerar os makes !?
para o kernel eh uma coisa, para aplicacoes eh outra, para aplicacoes:
http://www.linfo.org/create_c1.htmlsobre makefiles em geral:
http://www.opussoftware.com/tutorial/TutMakefile.htmhttp://www.cs.colby.edu/maxwell/courses ... /maketutore gaste um tempo com shell e awk, eh importante:
http://www.freeos.com/guides/lsst/ imbutir os device drivers !?
para kernel eh outra historia:
http://www.faqs.org/docs/kernel/tem makefile diferente. e ainda nem entramos em cross-compiler ae... esqueca no momento, depois vc ve isso.
Entende ?
Eu por exemplo, só para entenderem melhor onde eu estou preso.
Fiz a bagaça para FAT32 para o CM3 da nxp.
Eu abri o keil,
Inseri na arvore:
MAIN> header uC
FAT PROCESS
USB HOST PROCESS
HW USB HOST PROCESS
Fiz o link, onde USB toma conta do fisico, onde é chamado pelo FAT que é o logico.
Ou seja, no MAIN que é a unica e contante tarefa, com latencia imensuravel pois é tudo por interrupt e tempo real. Eu leio e escrevo no pendrive com auxilio da FAT, a qual precisei fazer adaptações para que enxergasse os drives da usb host.
Bem, olhando por este angulo.
Eu tenho o linux, que é um SO.
Este SO é o sargentão, que faz o gerenciamento de tudo que se passa, onde este mesmo ja tem acesso ao FAT, que de alguma forma ao compilar o kernel ou sei lá como é. Eu precisei criar e linkar um device drive que faça a adaptação logica FAT ao fisico por exemplo pendrive.
o linux jah tem tudo lah... vc espeta o pendrive com FAT no seu x86 ae e ele funciona, nao eh? dah uma fucada se vc consegue remover isso do kernel quando recompila ele (claro, pode remover o suporte a usb ou suporte a FAT).
proximo passo eh tentar fazer o mesmo no embarcado, daih precisa de um toolchain com compilador especifico para o target e uma arvore separada (pelamodedeus, ve se nao joga kernel de arm no x86 e vice-versa! hehehe)
Bom, por exemplo que eu não queira usar nada que ta pronto, e vou de alguma forma aproveitar um DEVICE DRIVER de periferico do ATM91 o qual eu utilizei em outro projeto. Por exeplo a MCI que seja.
Eu vou ter que ter uma IDE, ou não sei bem.
isso vai do gosto do cliente. IDE na verdade eh muleta de quem nao manja digitar comando... o problema eh que nao tem IDE que faca magica, o embarcado nao tem IDE, quando der pau em tudo tem o shell lah e quando muito um vi... daih o cara vai dizer que fodeu? tipo fodeu o projeto pq o cara nao sabe o comando que seta o mac address e por isso a ethernet nao sobe?

a pior mesmo foi um cara que bateu um ifconfig e quase meteu um processo na operadora. ele viu algo assim:
- Código: Selecionar todos
$ /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0D:60:E1:E9:36
inet6 addr: fe80::20d:60ff:fef0:f955/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:355333871 errors:0 dropped:0 overruns:0 frame:0
TX packets:253205080 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1386873098 (1322.6 Mb) TX bytes:221888883 (211.6 Mb)
e reclamou que a licitacao era sobre a aquisicao de ipv6, mas que a operadora nao entregou e estava roteando tudo em cima de layer2... daih o cara da operadora falou "mas eu tou pingando o ip... ve ae, nao eh o fe80: algo?". o cara responde "a interface esta sem ip! esse eh o mac address!". daih o cara da operadora manda uma direta "cara, o ipv6 eh em hexa mesmo... o mac address tah ali em cima!"... soh silencio e choro do outro lado da linha.
tem que largar mao de interfacezinha grafica frutinha, aprender e entender como usa os comandos do negocio, senao vai ser sempre silencio e choros...
A qual vou incluir no bin este drive que eu criei, e mais tarde vou jogar num SDcard, o qual vai pegar este bin, e jogar na flash de 1GB que tem na placa.
faca antes no x86. passa um modulo qq de built-in para modulo. depois brinca de carregar e descarregar com insmod e rmmod... dependendo, nao tem como fazer, tipo, nao tem como fazer modulo do driver da flash por exemplo, pq senao o kernel boota e nao sabe como abrir a flash para puxar o modulo!

No proximo boot, o uP, vai pegar esta imagen que esta na flash onboard e jogar na ram, e apartir deste ponto ROAD in the RAM, etc etc etc.
olha uma dica do processo completo no blackfin:
http://www.voip-info.org/wiki/view/IP04 ... are+IP-PBXdesde o build ateh o flash final do linux.
Conseguiram entender quais são as duvidosas ?
Em casos como este, nomes e processos, não são tão interessantes de serem explicados, o que é necessario é conhecer o processo propriamente dito.
o problema eh que o negocio eh complicado mesmo. quer algo rapido? compra um bluetechnix com um bf537 e segue o tutorial. fechou, mas no final vc tem uma placa que vc nao sabe nem acessar!

melhor eh botar a mao na massa e aprender os detalhes ae, senao nao vale a pena... estou sendo duro com vc agora para que depois vc nao quebre as pernas lah na frente. tem que praticar um monte ae e entender a fundo os conceitos, senao vai ser mais um que formata a maquina para trocar o ip, ou que acha que o ipv6 eh o mac address ou que reinstala tudo ou desiste pq nao sabe o path do cross-compiler.
tem a historia do cara que tentava compilar o linux no windows, mas nem vou contar... eh facil imaginar o que aconteceu.
Abraços, e muito obrigado pela colaboração.
Fabim