Sí, esto es completamente posible. Sin embargo, en realidad es un poco diferente a cómo estás pensando.
Preámbulo
La tarjeta SD contiene una imagen del sistema operativo. Y funciona al inflar esta imagen cuando el dispositivo está encendido.
Como espero que ya sepas, flasheas esta imagen en la tarjeta SD para crear un sistema de trabajo. Sin embargo, lo que puede hacer antes de flashear la imagen es jugar con ella usando QEMU , que es un emulador de procesador , y nos permite emular el conjunto de instrucciones ARM.
De esta manera, cualquier cambio que realice en la imagen (instalación, compilación, etc.) seguirá estando allí después de que lo actualice a la tarjeta SD.
Ahora le explicaré cómo usar QEMU para cargar la imagen. Voy a demostrar con la imagen de Arch Linux, pero el proceso debería ser el mismo independientemente.
Usando QEMU
Requisitos previos
Necesitará adquirir QEMU para su sistema. QEMU solo debe tener un requisito, para que los dispositivos de entrada funcionen, debe tener instalado el paquete de desarrollo SDL, que debe estar disponible desde su administrador de paquetes.
Recomiendo descargar el paquete usando su administrador de paquetes regular:
Arco :
sudo pacman -S sdl qemu
Ubuntu :
Las versiones más recientes (desde 14.04) tienen un paquete para ello:
sudo apt-get install qemu-system-arm
Para versiones anteriores:
sudo apt-get install libsdl-dev
sudo add-apt-repository ppa:linaro-maintainers/tools
sudo apt-get update
sudo apt-get install qemu-system
Construyendo QEMU usted mismo
Alternativamente, puede construir QEMU usted mismo. ¡Esto es genial si quieres probar una nueva versión, pero puede ser lenta y estar preparada para muchos errores durante la compilación! Tenga en cuenta que si construye QEMU desde su sitio web, debe compilarse para soporte ARM. Así que primero revisa tus repositorios de distribución. Esto se puede hacer así;
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
Verifique que tiene soporte ARM con:
qemu-system-arm --version
QEMU emulator version 1.0,1, Copyright (c) 2003-2008 Fabrice Bellard
Obteniendo la imagen
Estamos trabajando con Arch Linux, por lo que utilizaremos la imagen de Arch Arm. Pero reemplace esto con lo que desee para trabajar, o tal vez ya tenga una imagen. En cuyo caso, omita este paso.
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
Para que QEMU funcione, también necesitamos la imagen del núcleo (que estaría dentro del archivo .img).
Nota: No creo que este paso sea necesario para Debian. Alguien por favor confirme.
Afortunadamente, hay imágenes precompiladas disponibles, y puede usar la que está aquí ( descarga directa ).
TODO: ¿Demuestra cómo compilar una imagen del núcleo aquí?
Iniciando la VM
Ahora deberías tener:
- Un archivo img que puede verificar utilizando el sha1 suministrado (recomendado).
- Una imagen del núcleo (zImage).
- QEMU para ARM.
La máquina virtual ahora se puede iniciar utilizando el siguiente comando de largo aliento:
qemu-system-arm -kernel zImage -cpu arm1176 -M versatilepb -serial stdio -append "root=/dev/sda2" -hda archlinuxarm-29-04-2012.img -clock dynticks
Tenga en cuenta que solo tendrá varios cientos de megabytes de almacenamiento utilizando este método (lo que sea que quede en la imagen). Se puede crear un disco duro virtual siguiendo la guía del usuario de QEMU .