Linux y los programas que albergan sus repositorios son una maravilla, no me canso de decirlo. En increíble lo que se puede hacer con todos ellos.

Esta semana me ha tocado trabajar con una imagen de sistema operativo GNU/Linux Raspbian que trabaja sobre arquitectura armv6 mientras que mi PC es x64, por lo tanto no podía virtualizar la imagen con máquinas como Virtualbox o VMWare. La solución ha sido usar Qemu, un virtualizador de código abierto que si soporta arquitecturas ARM además de MIPS… etc.

Instalar Quemu

sudo apt-get install qemu

Crear la carpeta de trabajo

Creamos una carpeta virtualización donde vamos a tener todos los archivos que vamos a necesitar y después nos situamos en ella.

mkdir ~/virtualizacion
cd ~/virtualizacion

Obtener el Kernel

Descargamos el kernel Linux:

wget http://xecdesign.com/downloads/linux-qemu/kernel-qemu

Obtener Raspbian

wget http://downloads.raspberrypi.org/raspbian_latest
unzip wheezy-raspbian.zip

Comprobamos que soporte Arm

Ejecutamos el siguiente comando:

qemu-system-arm -cpu

y si nos devuelve arm1176 significa que soporta Arm y en concreto la arquitectura que usa la Raspberry Pi. Entonces continuamos. SI no fuese así, debemos de tener una versión más actualizada de Qemu.

Primer arranque

Ejecutamos el siguiente comando, teniendo en cuenta que el nombre de la imagen puede variar, en mi caso es wheezy-raspbian.img:

qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" -hda wheezy-raspbian.img

Nada más que arranque, editaremos el fichero ld.so.preload:

nano /etc/ld.so.preload

y añadimos una almohadilla en la línea:

#/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so

guardamos, salimos y apagamos el sistema:

halt

todo este proceso sólo hay que hacerlo una vez.

Siguientes arranques

Ejecutamos el mismo comando anterior pero sin init=/bin/bash:

qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda 2013-09-25-wheezy-raspbian.img

y.. ¡Voila! Ya tendremos nuestra imagen de Raspberry pi bajo plataforma ARM ejecuandose en un sistema anfitrión x86 o x64.

qemu-raspberry-pi

Fuente