Bagaimana cara mengaktifkan jaringan dengan raspberry pi yang ditiru pada qemu?

9

Saya mencoba untuk meniru raspberry pi di ubuntu 13.04 saya. Saya menginstal qemu dan berfungsi dengan baik kecuali untuk jaringan.

Saya mengikuti prosedur ini . Di mesin virtual, file /etc/network/interfaceterlihat seperti ini

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

Saya meluncurkan qemu seperti ini 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.

Di ubuntu, ketika saya melakukan ifconfig, saya mendapatkan hasil ini:

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)

pada mesin virtual, ping 192.168.20.106berfungsi karena ini adalah alamat lokal tetapi ping 192.168.20.1tidak berfungsi. Saya juga mencoba mengatur alamat yang berbeda untuk mesin nyata dan virtual.

Apa yang bisa saya lakukan?

Dougui
sumber
Mendokumentasikan cara membuat karya ini di suatu tempat akan sangat cemerlang. Saya mencoba untuk mendapatkan hal yang sama bekerja dengan QEMU dan distro Raspbian yang lebih baru, tanpa sukacita sejauh ini. Sayangnya, tautan di atas sudah mati (dan bukan di mesin wayback) dan versi QEMU yang lebih baru telah meninggalkan -rediropsi.
Tom

Jawaban:

5

Akan menyenangkan untuk melihat output ifconfigpada mesin virtual Anda juga.

Menurut http://en.wikibooks.org/wiki/QEMU/Networking dengan opsi yang telah Anda tentukan, Anda harus mendapatkan NAT dengan server DHCP virtual, tidak langsung menjembatani ke jaringan IP lokal Anda, sehingga alamat IP hard-coded Anda mungkin tidak akan berhasil. Mencoba:

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

reboot atau gunakan ifdown/ ifupuntuk mengkonfigurasi ulang eth0dan melihat apakah ia menemukan server DHCP virtual. ifconfigdan route -nakan memberi tahu Anda jika berhasil - Anda akan memiliki IP lokal dan rute gateway.

Dengan asumsi itu berhasil, Anda harus dapat sshdari host Anda ke VM Anda menggunakan:

ssh -p 5022 localhost

karena port itu diatur oleh -redirklausa di baris perintah Anda.

Greg
sumber