Comment activer le réseau avec un Raspberry Pi émulé sur Qemu?

9

J'essaie d'émuler un Raspberry Pi sur mon Ubuntu 13.04. J'ai installé qemu et cela fonctionne bien sauf pour le réseau.

J'ai suivi cette procédure . Sur la machine virtuelle, le fichier /etc/network/interfaceressemble à ceci

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static

address 192.168.20.106  # your IP  
gateway 192.168.20.1     # IP of the Router
netmask 255.255.255.0   # Network mask

Je lance qemu comme ça sudo qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -append "root=/dev/sda2" -hda 2013-09-25-wheezy-raspbian.img -kernel kernel-qemu -redir tcp:5022::22.

Sur ubuntu, quand je fais un ifconfig, j'ai ce résultat:

br0   Link encap:Ethernet  HWaddr 8e:0f:b1:ad:1c:18  
      inet adr:10.10.10.2  Bcast:10.255.255.255  Masque:255.0.0.0
      adr inet6: fe80::8c0f:b1ff:fead:1c18/64 Scope:Lien
      UP BROADCAST MULTICAST  MTU:1500  Metric:1
      Packets reçus:8 erreurs:0 :8 overruns:0 frame:0
      TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 lg file transmission:0 
      Octets reçus:792 (792.0 B) Octets transmis:5092 (5.0 KB)

eth0  Link encap:Ethernet  HWaddr 90:2b:34:39:b4:1d  
      UP BROADCAST MULTICAST  MTU:1500  Metric:1
      Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 lg file transmission:1000 
      Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)

lo    Link encap:Boucle locale  
      inet adr:127.0.0.1  Masque:255.0.0.0
      adr inet6: ::1/128 Scope:Hôte
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
      Packets reçus:12770 erreurs:0 :0 overruns:0 frame:0
      TX packets:12770 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 lg file transmission:0 
      Octets reçus:2121321 (2.1 MB) Octets transmis:2121321 (2.1 MB)

wlan1 Link encap:Ethernet  HWaddr ac:f1:df:79:01:80  
      inet adr:192.168.20.106  Bcast:192.168.20.255  Masque:255.255.255.0
      adr inet6: fe80::aef1:dfff:fe79:180/64 Scope:Lien
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      Packets reçus:5283 erreurs:0 :48 overruns:0 frame:0
      TX packets:5252 errors:0 dropped:5 overruns:0 carrier:0
      collisions:0 lg file transmission:1000 
      Octets reçus:2806386 (2.8 MB) Octets transmis:1461531 (1.4 MB)

sur la machine virtuelle, ping 192.168.20.106fonctionne car il s'agit de l'adresse locale mais ping 192.168.20.1ne fonctionne pas. J'ai également essayé de définir une adresse différente pour la machine réelle et virtuelle.

Que puis-je faire?

Dougui
la source
Il serait génial de documenter comment faire fonctionner quelque part. J'essaie de faire fonctionner la même chose avec une distribution QEMU et Raspbian plus récente, sans joie jusqu'à présent. Malheureusement, le lien ci-dessus est mort (et non dans la machine de retour) et les nouvelles versions de QEMU ont déconseillé l' -rediroption.
Tom

Réponses:

5

Ce serait bien de voir la sortie de ifconfigsur votre machine virtuelle aussi.

Selon http://en.wikibooks.org/wiki/QEMU/Networking avec les options que vous avez spécifiées, vous devriez obtenir NAT avec un serveur DHCP virtuel, pas un pontage direct sur votre réseau IP local, donc vos adresses IP codées en dur ne fonctionnerait probablement pas. Essayer:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

redémarrez ou utilisez ifdown/ ifuppour reconfigurer eth0et voir s'il trouve le serveur DHCP virtuel. ifconfiget route -ndevrait vous dire si cela a fonctionné - vous aurez une adresse IP locale et une route de passerelle.

En supposant que cela fonctionne, vous devriez pouvoir passer sshde votre hôte à votre machine virtuelle en utilisant:

ssh -p 5022 localhost

car ce port est configuré par la -redirclause de votre ligne de commande.

Greg
la source