In this article I'm going to show you, how to share host OS internet with emulated raspberry Pi.
Note: I'm on Ubuntu 12.04
Pre-requisites:
Follow this article and brought your virtual RaspberryPI, it will have IP but you can't access Internet from RaspberryPI. Ok no worry, that's what this article about. Now shutdown the RaspberryPI, and do the following in your host OS:
Install brctl, tunctl & libvirt
brctl — ethernet bridge administration
sudo apt-get install bridge-utils
tunctl — create and manage persistent TUN/TAP interfaces
sudo apt-get install uml-utilities
libvirt — visualization management system. This will automatically setup a DHCP server and a bridge(virbr0).
sudo apt-get install qemu-kvm libvirt-bin
make sure, dns server & bridge automattically configured:
How to:
RaspberryPI interface set to DHCP:
Screenshot of Virtual-Raspberry-Pi:
Note: I'm on Ubuntu 12.04
Pre-requisites:
Follow this article and brought your virtual RaspberryPI, it will have IP but you can't access Internet from RaspberryPI. Ok no worry, that's what this article about. Now shutdown the RaspberryPI, and do the following in your host OS:
Install brctl, tunctl & libvirt
brctl — ethernet bridge administration
sudo apt-get install bridge-utils
tunctl — create and manage persistent TUN/TAP interfaces
sudo apt-get install uml-utilities
libvirt — visualization management system. This will automatically setup a DHCP server and a bridge(virbr0).
sudo apt-get install qemu-kvm libvirt-bin
make sure, dns server & bridge automattically configured:
root@unknown:~# ps -ef | grep dns 121 1377 1 0 Dec13 ? 00:00:00 /usr/sbin/dnsmasq -u libvirt-dnsmasq --strict-order --bind-interfaces --pid-file=/var/run/libvirt/network/default.pid --conf-file= --except-interface lo --listen-address 192.168.122.1 --dhcp-range 192.168.122.2,192.168.122.254 --dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases --dhcp-lease-max=253 --dhcp-no-override root@unknown:~# ifconfig virbr0 virbr0 Link encap:Ethernet HWaddr 62:80:41:0f:0b:56 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:619 errors:0 dropped:0 overruns:0 frame:0 TX packets:685 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:44276 (44.2 KB) TX bytes:51576 (51.5 KB) root@unknown:~# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes
- Bind eth0 to virbr0
- create a tap interface and make it up
- Bind tap0 to virbr0
- make sure it binded succesfully
- Brought up the Raspberry Pi with tap0
root@unknown:~# brctl addif virbr0 eth0 root@unknown:~# tunctl -t tap0 && ifconfig tap0 up Set 'tap0' persistent and owned by uid 0 root@unknown:~# brctl addif virbr0 tap0 root@unknown:~# ifconfig eth0 Link encap:Ethernet HWaddr 48:84:3c:c6:33:34 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:20070 errors:0 dropped:0 overruns:0 frame:0 TX packets:20070 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1697375 (1.6 MB) TX bytes:1697375 (1.6 MB) tap0 Link encap:Ethernet HWaddr 1a:98:19:c5:4b:a8 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) virbr0 Link encap:Ethernet HWaddr 78:84:3c:e6:38:98 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:619 errors:0 dropped:0 overruns:0 frame:0 TX packets:685 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:44276 (44.2 KB) TX bytes:51576 (51.5 KB) wlan0 Link encap:Ethernet HWaddr cd:af:76:c4:6d:99 inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: ff70::ceff:78dd:fdc1:6d95/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1338984 errors:0 dropped:0 overruns:0 frame:0 TX packets:997145 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1521507128 (1.5 GB) TX bytes:142971835 (142.9 MB) root@unknown:~# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.1a9819c54ba8 yes eth0 tap0 root@unknown:~# qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda 2014-09-09-wheezy-raspbian.img -net nic,macaddr=00:16:3e:00:00:01 -net tap,ifname=tap0,script=no,downscript=no
pi@vrpi:~$ cat /etc/network/interfaces auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp pi@vrpi:~$