diff options
-rwxr-xr-x | scripts/poky-qemu-internal | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/scripts/poky-qemu-internal b/scripts/poky-qemu-internal index acb6ff50ff..3d718391f7 100755 --- a/scripts/poky-qemu-internal +++ b/scripts/poky-qemu-internal | |||
@@ -54,9 +54,28 @@ fi | |||
54 | QEMUIFUP=`which poky-qemu-ifup` | 54 | QEMUIFUP=`which poky-qemu-ifup` |
55 | QEMUIFDOWN=`which poky-qemu-ifdown` | 55 | QEMUIFDOWN=`which poky-qemu-ifdown` |
56 | 56 | ||
57 | USER=`id -u` | 57 | LOCKDIR="/tmp/qemu-tap-locks" |
58 | echo 'Setting up tap interface under sudo' | 58 | [ ! -d "$LOCKDIR" ] && mkdir $LOCKDIR |
59 | TAP=`sudo $QEMUIFUP $USER` | 59 | |
60 | POSSIBLE=`ifconfig -a | grep '^tap' | awk '{print $1}'` | ||
61 | TAP="" | ||
62 | LOCKFILE="" | ||
63 | for tap in $POSSIBLE; do | ||
64 | LOCKFILE="$LOCKDIR/$tap" | ||
65 | if lockfile $LOCKFILE; then | ||
66 | TAP=$tap | ||
67 | break; | ||
68 | fi | ||
69 | done | ||
70 | |||
71 | if [ "$TAP" = "" ]; then | ||
72 | USER=`id -u` | ||
73 | echo 'Setting up tap interface under sudo' | ||
74 | TAP=`sudo $QEMUIFUP $USER` | ||
75 | LOCKFILE="" | ||
76 | else | ||
77 | echo "Using preconfigured tap device '$TAP'" | ||
78 | fi | ||
60 | 79 | ||
61 | KERNEL_NETWORK_CMD="ip=192.168.7.2::192.168.7.1:255.255.255.0" | 80 | KERNEL_NETWORK_CMD="ip=192.168.7.2::192.168.7.1:255.255.255.0" |
62 | QEMU_TAP_CMD="-net tap,vlan=0,ifname=$TAP,script=no,downscript=no" | 81 | QEMU_TAP_CMD="-net tap,vlan=0,ifname=$TAP,script=no,downscript=no" |
@@ -313,7 +332,12 @@ echo "Running $QEMU..." | |||
313 | echo $QEMUBIN -kernel $ZIMAGE $QEMUOPTIONS $SERIALOPTS $* --append "$KERNCMDLINE" | 332 | echo $QEMUBIN -kernel $ZIMAGE $QEMUOPTIONS $SERIALOPTS $* --append "$KERNCMDLINE" |
314 | $QEMUBIN -kernel $ZIMAGE $QEMUOPTIONS $SERIALOPTS $* --append "$KERNCMDLINE" || /bin/true | 333 | $QEMUBIN -kernel $ZIMAGE $QEMUOPTIONS $SERIALOPTS $* --append "$KERNCMDLINE" || /bin/true |
315 | 334 | ||
316 | $QEMUIFDOWN $TAP | 335 | if [ "$LOCKFILE" = "" ]; then |
336 | $QEMUIFDOWN $TAP | ||
337 | else | ||
338 | echo "Releasing preconfigured tap device '$TAP'" | ||
339 | rm -f $LOCKFILE | ||
340 | fi | ||
317 | 341 | ||
318 | trap - INT TERM QUIT | 342 | trap - INT TERM QUIT |
319 | return | 343 | return |