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

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

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

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 NO_NETWORK=1 por NO_NETWORK=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


Más publicaciones como esta

OpenWrt: Raspberry Pi como servidor DHCP

2020-04-20 | #adguard #raspberry #router

De un tiempo a esta parte decidí cambiar DNS-Proxy en mi router por Adguard Home para el cifrado de las peticiones DNS y filtrado de publicidad. En un principio instaló Adguard Home en un USB conectado al router pero no era del todo estable, a los dos o tres días el router se reiniciaba, por lo que decidí utilizar la Raspberry Pi para la utilización de Adguard Home. Tenia dos opciones, la más sencilla era simplemente decirle al router que el servidor de DNS fuese la Raspberry Pi, pero entonces perdía el filtrado de los clientes conectados, ya que todas las peticiones llegarían con una única direccion IP, la del router, y la segunda opción, era deshabilitar el servidor DHCP en el router y utilizar el propio servidor de DHCP que viene con Adguard Home en la Raspberry Pi y poder realizar un filtrado de los clientes conectados.

Continuar leyendo 


Docker: TICK (Telegraf+InfluxDB+Chronograf+Kapacitor)

2020-03-12 | #docker #raspberry

Hace tiempo que escribí un articulo sobre como desplegar TIG (Telegraf + Influxdb + Grafana), ahora utilizo TICK (Telegraf + Influxdb + Chronograf + Kapacitor), en vez de Grafana, utilizo Chronograf y para la gestión de avisos Kapacitor. En este articulo voy a explicar como hacer el despliegue de TICK mediante docker-compose. Que es TICK Por si no leíste el anterior articulo te vuelvo a explicar que hace cada elemento del stack

Continuar leyendo 