Installazione Debian (ARM) su QEMU

Linux completo per i Sistemi Embedded
In molti casi, i sistemi embedded sono fabbricati su misura per uno specifico ambiente applicativo. Si installano solamente i componenti software necessari a causa del budget limitato per memoria e capacità informatiche. Di solito un Linux completo non è necessario sia per consumatori che per sviluppatori.

Linux embedded è un processo complicato per progettisti e sviluppatori. Il metodo di sviluppo convenzionale è partire da zero (LFS). Essi devono raccogliere, costruire ed installare tutti gli strumenti di sviluppo necessari su un PC con corrette patch e librerie. Questi strumenti includono compilatore cross, assemblatore, librerie, kernels, bootloader e molti componenti di supporto per Linux o Cygwin. Alla fine, devono programmare il kernel e l’initrd nelle flash memory di onboard e configurare correttamente il bootloader per avviare l’intero sistema. L’ intero processo è così complicato, che ho ancora molti argomenti di cui discutere.

D'altra parte Linux embedded è un sistema chiuso open source per il consumatore ordinario. Perché lo definisco open source sebbene sia un sistema chiuso? Linux è sistema open source, come tutti sanno. Comunque la specifica release per una piattaforma è sistema chiuso in ogni modo. Per esempio, il cellulare Motorola A1200 è un telefono Linux , ma puoi modificare il codice sorgente del tuo telefono come consumatore? No, non puoi trovare il SO alternativo per sostituire quello preinstallato.

Come rapido sviluppo e convergenza di uno scopo generale di informatica mobile, possiamo vedere molti prodotti nuovi. Questi prodotti hanno microprocessori potenti e dispositivi di memoria di massa di solito convenienti. Per esempio, uno smart phone ha una CPU ARM da 200MHz ed una scheda da 2GB che può attivare una piena distribuzione Linux. ARM rilascia anche SMP e microprocessori ad alta velocità per il mercato di Netbook. Apparentemente, ARM ed Intel stanno competendo sul mercato di informatica mobile.

Di conseguenza, sarà moda ed una pratica preziosa per avviare una distribuzione di Linux completa per dispositivi ARM. Consumatori e sviluppatori, possono trarre profitto da ciò. I consumatori possono scegliere sistemi operativi diversi per le loro apparecchiature. Gli ingegneri possono realizzare progetti con un compilatore nativo, piuttosto che con il compilatore cross. Siccome la maggior parte dei progetti non sono pensati per il cross-compiling, girare questi progetti sulle piattaforme embedded non è un lavoro semplice all’inizio. Il native compiling può evitare tale dipendenza e problemi di strumenti.

Quindi ho passato qualche giorno a tentare di installare la distribuzione Debian per ARM. Quando si installa un embedded Linux su veri dispositivi hardware, è meglio provarlo prima con un emulatore per evitare il bricking dei dispositivi. Mi riferisco ad una pagina web scritta da un maintainer Debian per installare il Debian su un emulatore, QEMU.

Installare QEMU
Scarica ed installa QEMU sul tuo PC Linux. In Ubuntu 8.04, si può installare QEMU da:
$ sudo apt-get install qemu

Preparazione
Prima di scaricare tutti i file temporanei, creare una cartella in cui tenerli tutti e poi, creare un'immagine del disco rigido emulato, da:
$ cd qemu (o qualunque cartella)
$ qemu-img create -f qcow hda.img 10G

Poi si può scaricare un kernel, initrd e l’installer Debian. Digitare le seguenti istruzioni per scaricarli singolarmente.
$ wget http://people.debian.org/~aurel32/arm-versatile/vmlinuz-2.6.18-6-versatile
$ wget http://people.debian.org/~aurel32/arm-versatile/initrd.img-2.6.18-6-versatile
$ wget http://ftp.de.debian.org/debian/dists/etch/main/installer-arm/current/images/rpc/netboot/initrd.gz

Installare Debian Etch e Riavviare
Digitare il seguente comando per avviare la procedura di installazione:
$ qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.18-6-versatile -initrd initrd.gz -hda hda.img -append "root=/dev/ram"

L'installazione inizierà dopo un po'. Seguire le istruzioni passo passo, come sul proprio desktop. Si possono ignorare i messaggi di avvertimento su nessun kernel e bootloader, e poi si vedrà la schermata finale di riavvio. Durante l’installazione, è molto importante scegliere una connessione internet veloce ed affidabile per l’archivio sorgente Debian selezionato. Se l'installazione va a vuoto a causa della connessione, si può chiudere l'installer e riavviare l'installazione. Alternativamente, si può ricreare il file hda.img e ricominciare l'installazione.

Usare l’Embedded Debian

Debian Reboot

Quando vedi la schermata di riavvio, chiudi la finestra di QEMU, e digita il comando seguente per fare il boot del Debian Linux:
$ qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.18-6-versatile -initrd initrd.img-2.6.18-6-versatile -hda hda.img -append "root=/dev/sda1"

Quando Debian si riavvia, puoi esaminarlo nella modalità command line o nella modalità a 256 colori di X-Window. Ora puoi idivertirti. Io ho provato a misurare la prestazione del sistema emulato da:
$ cat proc/cpuinfo

cpuinfo

Questo comando riporta i maggiori parametri della macchina emulata. Il bogoMIPS del mio ARM926EJ emulato è 273, mentre il mio Linux PC madre (Pentium Mega 1.4GHz) è 2793, 10 volte la macchina emulata. Una scheda utente beagle riporta il suo OMAP3530 (600MHz) ha l’indice bogoMIPS di 499. Il sistema emulato può funzionare più velocemente del dispositivo reale se lo si lancia su un PC ad alta velocità.

Si può digitare dmesg per avere ulteriori informazioni di dettaglio sul tuo sistema ARM emulato. Controlla il report di dmesg.

dmesg report

Installare Pacchetti Software

gcc info

Ho controllato due pacchetti software: gcc [Fig. 4] ed mplayer [Fig. 5]. In Debian, puoi installare gcc col comando seguente:
$ apt-get install gcc

Puoi digitare il seguente comando per controllare la macchina target supportata:
$ gcc -dumpmachine

La risposta è "arm-linux-gnu". Ciò indica un ARM compiler madre. Puoi tentare di compilare qualunque software applicativo di Linux con questo compilatore madre. Chiaramente, un compilatore madre che corre su QEMU è lento, ma si può installare la versione tool distribuita di distcc per realizzare un grande progetto su diversi ARM Linux emulati.

mplayer

Installo anche il pacchetto mplayer, ma non mi aspetto che abbia una identica prestazione come la sua versione desktop. Il pacchetto mplayer usa molti decoder commerciali (come Real video decoder) nella forma di Windows DLL che non possono essere usati direttamente nella porta ARM.
$ apt-get install mplayer

Conclusione

L’intero processo di installazione è piuttosto semplice se si imposta correttamente la connessione. Gli sviluppatori che lavorano su sistemi embedded dovrebbero verificare le capacità di questo metodo. Può aiutare a risolvere inconvenienti tecnici nel tuo progetto.

Se si vuole installare Debian (ARM) su un reale computer hardware, si hanno diverse scelte: PDA Sharp , alcuni palmari, Openmoko, scheda beagle, e la tavola grafica NOKIA. Se si vuole sviluppare un progetto, il NAS su base Marvell è la scelta migliore. L’ARM SoC in un NAS funziona di solito sui 500MHz , e si può usare l’ HDD su NAS.

Se sei interessato a questo argomento, visita il progetto mojo. Puoi trovare molte informazioni utili su ARM con base distribuzioni Linux di piattaforme diverse. Ricorda, anche qui i chip hanno un nome in comune, ARM. Differiscono ancora in istruzione di impostazioni , periferiche e coprocessori.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend