summaryrefslogtreecommitdiffstats
path: root/scripts/poky-qemu-internal
diff options
context:
space:
mode:
authorJeff Dike <jdike@x86_64.user-mode-linux.org>2010-07-21 11:04:59 -0400
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-20 16:20:09 +0100
commitc791544bb02e852644c55401018bc17ec1b9b40e (patch)
tree33d510d91af137a96b1782b9fe8d901867d604f4 /scripts/poky-qemu-internal
parentb5b3825ce6df45b16e1f3e15001da213bc8b0a55 (diff)
downloadopenembedded-core-contrib-c791544bb02e852644c55401018bc17ec1b9b40e.tar.gz
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 <jdike@linux.intel.com>
Diffstat (limited to 'scripts/poky-qemu-internal')
-rwxr-xr-xscripts/poky-qemu-internal15
1 files changed, 12 insertions, 3 deletions
diff --git a/scripts/poky-qemu-internal b/scripts/poky-qemu-internal
index 62c64727c0..8ff3add511 100755
--- a/scripts/poky-qemu-internal
+++ b/scripts/poky-qemu-internal
@@ -53,8 +53,13 @@ fi
QEMUIFUP=`which poky-qemu-ifup`
QEMUIFDOWN=`which poky-qemu-ifdown`
+
+USER=`id -u`
+echo 'Setting up tap interface under sudo'
+TAP=`sudo $QEMUIFUP $USER`
+
KERNEL_NETWORK_CMD="ip=192.168.7.2::192.168.7.1:255.255.255.0"
-QEMU_TAP_CMD="-net tap,vlan=0,ifname=tap0,script=$QEMUIFUP,downscript=$QEMUIFDOWN"
+QEMU_TAP_CMD="-net tap,vlan=0,ifname=$TAP,script=no,downscript=no"
QEMU_NETWORK_CMD="-net nic,vlan=0 $QEMU_TAP_CMD"
KERNCMDLINE="mem=$QEMU_MEMORY"
QEMU_UI_OPTIONS="-show-cursor -usb -usbdevice wacom-tablet"
@@ -298,9 +303,13 @@ else
echo "Warning: distccd not present, no distcc support loaded."
fi
-echo "Running $QEMU using sudo..."
+
+
+echo "Running $QEMU..."
echo $QEMUBIN -kernel $ZIMAGE $QEMUOPTIONS $SERIALOPTS $* --append "$KERNCMDLINE"
-sudo $QEMUBIN -kernel $ZIMAGE $QEMUOPTIONS $SERIALOPTS $* --append "$KERNCMDLINE" || /bin/true
+$QEMUBIN -kernel $ZIMAGE $QEMUOPTIONS $SERIALOPTS $* --append "$KERNCMDLINE" || /bin/true
+
+$QEMUIFDOWN $TAP
trap - INT TERM QUIT
return