La VM con RaspberryPi como un equipo más de la red
Hasta ahora, hemos estado lanzando Qemu como un servicio nateado desde el host. Cuando nos pongamos a instalarle los superpoderes, necesitará tener una IP de nuestra lan, para que podamos hacer pruebas reales, antes de tener físicamente el Raspberry. De esto va este post.En mi caso (ni idea de como se hace en windows) uso Debian para lanzar Qemu. Hay que tener un par de ideas claras:
- La IP de mi Debian (el host, el dom0, el servidor de Qemu ...) es 192.168.1.208, estática ¡¡recomendado!!.
- La IP que va a tener el Raspberry será la 192.168.1.223, estática ¡¡OBLIGATORIO!!
- La máscara de mi red es 255.255.255.0 y el gateway 192.168.1.1
Lo que vamos a hacer es crear un bridge en Debian (en el host) y vamos a dejar la configuración de red del Raspberry, lo más clara posible para que no tengamos que modificarla cuando nos llegue.
Para los más desentendidos en la materia (entre los que me incluyo) simplemente ejecutamos como root:
ifconfig eth0 down brctl addbr br0 ifconfig eth0 0.0.0.0 promisc up ifconfig tun0 0.0.0.0 promisc up ifconfig br0 192.168.1.208 netmask 255.255.255.0 broadcast 192.168.1.255 up brctl stp br0 off brctl setfd br0 1 brctl sethello br0 1 brctl addif br0 eth0 brctl addif br0 tun0 route add default gw 192.168.1.1
Somos amigos del copipaste, anímate!. Ahora editamos el archivo:
vim /etc/qemu-ifup
Y le ponemos este contenido:
#!/bin/sh echo "Executing /etc/qemu-ifup" echo "Bringing up $1 for bridged mode..." /sbin/ifconfig $1 0.0.0.0 promisc up echo "Adding $1 to br0..." /usr/sbin/brctl addif br0 $1 sleep 2
Recuerda: "copipaste es tu mejor amigo". Y ya está, no puede ser más fácil. Ahora para lanzar la maquina virtual:
qemu-system-arm -M versatilepb -cpu arm1176 -m 192 -hda debian6-19-04-2012.img -kernel zImage -append "root=/dev/sda2" -serial stdio -nographic -curses -net tap -net nic
¡¡OJO!! la ejecución tiene algunos cambios con respecto a lo que habíamos visto hasta ahora. Cuando termine de cargar la imagen del RaspberryPi, tendremos que configurarle su IP a mano:
vim /etc/network/interfaces
Y dejamos la parte del ETH0 de la siguiente forma:
auto eth0 iface eth0 inet static address 192.168.1.223 netmask 255.255.255.0 gateway 192.168.1.1
guardamos y antes de reiniciar, vamos a activar el servidor SSH, para comprobar que no nos hemos saltado ningún paso. Para ello:
sudo update-rc.d ssh defaults
Eso nos creará los enlaces para iniciar el servidor SSH en el arranque y parada del sistema. Ahora si, reiniciamos:
sudo reboot
Cuando haya terminado, desde otro equipo de la red o desde el propio servidor (el host, el dom0 ...) nos conectamos via SSH al Raspberry:
ssh pi@192.168.1.223
Nos pide la clave y ¡¡LISTO!!
Todo esto es para tener un IP distinta en el QEMU, de la IP del Ubuntu, ¿no?
ResponderEliminarQuiero decir, cuando tengas el Pi al router, todo esto ya no es valido, ¿no?
Esto es para que la maquina virtual que corre en Qemu tenga una IP de la lan. Evidentemente cuando tengas fisicamente el RaspberryPi, no tienes que hacer nada de esto.
Eliminar