Emular Raspberry Pi en linux con qemu

2018-03-08

Si no tienes una Raspberry Pi y quieres emular el funcionamiento de una distribución para Raspberry como Raspbian o Nextcloudpi, o si por el contrario si dispones de una pero no quieres estar grabando tarjetas cada vez que quieras probar diferentes distribuciones puedes usar QEMU para emular una Raspberry.

Investigando por Duckduckgo vi varios enlaces donde explican la forma de hacerlo, pero sin duda la forma mas fácil es usando un script que han preparado en Nextcloudpi que además proporciona conectividad de red.

Lo primero que debemos de hacer es instalar qemu y los paquetes necesarios, en distribuciones basadas en arch

sudo pacman -S git qemu qemu-arch-extra bridge-utils

y en distribuciones basadas en Debian

sudo apt-get install git kvm qemu bridge-utils

Clonamos el repositorio de qemu-raspbian-network

git clone https://github.com/nachoparker/qemu-raspbian-network.git
cd qemu-raspbian-network

Descargamos una imagen de Raspbian

wget https://downloads.raspberrypi.org/raspbian_lite_latest -O raspbian_lite_latest.zip

Descomprimimos la imagen zip

unzip rasbian_lite_latest.zip

Y ejecutamos el script qemu-pi.sh con privilegios de root

sudo ./qemu-pi.sh 2017-11-29-raspbian-stretch-lite.img # Pon el nombre de la imagen que corresponda

Si todo ha ido bien, aparecerá una nueva ventana con la imagen de raspbian ejecutándose

img

Pulsamos <CTRL><ALT>g para recuperar el control del raton de QEMU.

Tambión podemos usar otra imagen como por ejemplo la de NexcloudPi

img

Os dejo la información que proporcionan en la propia pagina de NexcloudPi sobre el funcionamiento del script aunque yo no he conseguido hacer funcionar la tarjeta de red en modo bridge

Si queremos que la imagen se configure como una red bridge, editamos el fichero qemu-pi.sh y cambiamos NONETWORK=1 por NONETWORK=0

Para que QEMU tenga acceso a la configuración de la tarjeta de red bridge, es necesario editar el fichero /etc/sudoers

sudo visudo

y añadir:

Cmnd_Alias      QEMU=/usr/bin/ip,/usr/bin/modprobe,/usr/bin/brctl
%kvm     ALL=NOPASSWD: QEMU

Si necesitamos mas espacio para el disco

qemu-img resize 2017-01-11-raspbian-jessie-lite.img +2G

Despuós de modificar y probar la imagen, podemos grabar la imagen en una tarjeta SD y arrancar la raspberry con esta imagen, manteniendo los programas instalados y cambios realizados.

Espero que te haya gustado, pasa un buen día. 🐧


Ingrese la dirección de su instancia