Sì, questo è completamente possibile. Tuttavia, in realtà è un po 'diverso da come stai pensando.
Preambolo
La scheda SD contiene un'immagine del sistema operativo. E funziona gonfiando questa immagine quando il dispositivo è acceso.
Come mi aspettavo già sapete, si esegue il flashing di questa immagine sulla scheda SD per creare un sistema funzionante. Tuttavia, ciò che puoi fare prima di mostrare l'immagine è giocarci su usando QEMU , che è un emulatore del processore e ci consente di emulare il set di istruzioni ARM.
In questo modo, tutte le modifiche apportate all'immagine (installazione, compilazione, ecc.) Rimarranno comunque disponibili dopo averlo trasferito sulla scheda SD.
Ora ti spiegherò come utilizzare QEMU per caricare l'immagine. Dimostrerò con l'immagine Arch Linux, ma il processo dovrebbe essere lo stesso a prescindere.
Utilizzando QEMU
Prerequesites
Dovrai acquisire QEMU per il tuo sistema. QEMU dovrebbe avere un solo requisito, affinché i dispositivi di input funzionino, è necessario disporre del pacchetto di sviluppo SDL installato, che dovrebbe essere disponibile dal gestore dei pacchetti.
Ti consiglio di scaricare il pacchetto usando il tuo normale gestore pacchetti:
Arco :
sudo pacman -S sdl qemu
Ubuntu :
Le versioni più recenti (dal 14.04) hanno un pacchetto per esso:
sudo apt-get install qemu-system-arm
Per le versioni precedenti:
sudo apt-get install libsdl-dev
sudo add-apt-repository ppa:linaro-maintainers/tools
sudo apt-get update
sudo apt-get install qemu-system
Costruisci QEMU da solo
In alternativa, puoi creare QEMU da solo. Questo è fantastico se vuoi provare una nuova versione, ma può essere lento ed essere preparato per molti errori durante la compilazione! Si noti che se si crea QEMU dal proprio sito Web, è necessario compilarlo per il supporto ARM. Quindi controlla prima i tuoi repository distro. Questo può essere fatto in questo modo;
mkdir rpi-emu && cd rpi-emu
wget http://wiki.qemu.org/download/qemu-1.1.0-1.tar.bz2
tar xvjf qemu-1.1.0-1.tar.bz2
cd qemu-1.1.0-1
./configure –target-list=arm-softmmu,arm-linux-user
make
sudo make install
Verifica di disporre del supporto ARM con:
qemu-system-arm --version
QEMU emulator version 1.0,1, Copyright (c) 2003-2008 Fabrice Bellard
Ottenere l'immagine
Stiamo lavorando con Arch Linux, quindi utilizzeremo l'immagine Arch Arm. Ma sostituiscilo con qualunque cosa tu voglia lavorare, o forse hai già un'immagine. In tal caso, saltare questo passaggio.
wget http://anorien.csc.warwick.ac.uk/mirrors/raspberrypi.org/images/archlinuxarm/archlinuxarm-29-04-2012/archlinuxarm-29-04-2012.zip
unzip archlinuxarm-29-04-2012.zip
Per far funzionare QEMU abbiamo anche bisogno dell'immagine del kernel (che sarebbe all'interno del file .img).
Nota: non penso che questo passaggio sia necessario per Debian. Qualcuno per favore conferma.
Fortunatamente ci sono immagini precompilate disponibili e puoi usare quella da qui ( download diretto ).
TODO: Dimostrare come compilare un'immagine del kernel qui?
Avvio della VM
Ora dovresti avere:
- Un file img che puoi verificare usando lo sha1 in dotazione (consigliato).
- Un'immagine del kernel (zImage).
- QEMU per ARM.
La macchina virtuale può ora essere avviata utilizzando il seguente comando a rotazione lunga:
qemu-system-arm -kernel zImage -cpu arm1176 -M versatilepb -serial stdio -append "root=/dev/sda2" -hda archlinuxarm-29-04-2012.img -clock dynticks
Nota che avrai solo diverse centinaia di megabyte di spazio di archiviazione usando questo metodo (qualunque cosa sia di riserva sull'immagine). È possibile creare un disco rigido virtuale seguendo la guida per l'utente di QEMU .