From c791544bb02e852644c55401018bc17ec1b9b40e Mon Sep 17 00:00:00 2001 From: Jeff Dike Date: Wed, 21 Jul 2010 11:04:59 -0400 Subject: qemu: Use a TAP device instead of slirp for networking With this patch, a persistent TAP device is set up by poky-qemu-ifup, which is now run before qemu. The qemu command line now uses the device that was constructed (rather than the hard-coded tap0) and it is told not to run any networking scripts. When qemu shuts down, poky-qemu-ifdown removes the TAP device. sudo use - sudo is used to run poky-qemu-ifup. sudo is no longer used to run qemu, as qemu no longer needs privileges to set up networking. poky-qemu-ifdown is run without privileges, as you can remove a TAP device which you own. Signed-off-by: Jeff Dike --- scripts/poky-qemu-ifup | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'scripts/poky-qemu-ifup') diff --git a/scripts/poky-qemu-ifup b/scripts/poky-qemu-ifup index cb1891e27..e7f689d25 100755 --- a/scripts/poky-qemu-ifup +++ b/scripts/poky-qemu-ifup @@ -17,6 +17,12 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +USER=$1 + +TUNCTL=`which tunctl` +[ "$TUNCTL" = "" ] && TUNCTL=/usr/sbin/tunctl + +TAP=`$TUNCTL -b -u $USER` IFCONFIG=`which ifconfig` if [ "x$IFCONFIG" = "x" ]; then @@ -24,7 +30,7 @@ if [ "x$IFCONFIG" = "x" ]; then IFCONFIG=/sbin/ifconfig fi -$IFCONFIG tap0 192.168.7.1 +$IFCONFIG $TAP 192.168.7.1 # setup NAT for tap0 interface to have internet access in QEMU IPTABLES=`which iptables` @@ -35,3 +41,5 @@ fi $IPTABLES -A POSTROUTING -t nat -j MASQUERADE -s 192.168.7.0/24 echo 1 > /proc/sys/net/ipv4/ip_forward $IPTABLES -P FORWARD ACCEPT + +echo $TAP -- cgit v1.2.3