summaryrefslogtreecommitdiffstats
path: root/scripts/runqemu-ifup
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/runqemu-ifup')
-rwxr-xr-xscripts/runqemu-ifup31
1 files changed, 19 insertions, 12 deletions
diff --git a/scripts/runqemu-ifup b/scripts/runqemu-ifup
index bb661740c5..5fdcddeeda 100755
--- a/scripts/runqemu-ifup
+++ b/scripts/runqemu-ifup
@@ -41,22 +41,29 @@ USERID="-u $1"
41GROUP="-g $2" 41GROUP="-g $2"
42STAGING_BINDIR_NATIVE=$3 42STAGING_BINDIR_NATIVE=$3
43 43
44TUNCTL=$STAGING_BINDIR_NATIVE/tunctl 44if taps=$(ip tuntap list 2>/dev/null); then
45if [ ! -x "$TUNCTL" ]; then 45 tap_no=$(( $(echo "$taps" |sort -r |sed 's/^tap//; s/:.*//; q') + 1 ))
46 echo "Error: Unable to find tunctl binary in '$STAGING_BINDIR_NATIVE', please bitbake qemu-helper-native" 46 ip tuntap add tap$tap_no mode tap group $2 && TAP=tap$tap_no
47 exit 1
48fi 47fi
49 48
50TAP=`$TUNCTL -b $GROUP 2>&1` 49if [ -z $TAP ]; then
51STATUS=$? 50 TUNCTL=$STAGING_BINDIR_NATIVE/tunctl
52if [ $STATUS -ne 0 ]; then 51 if [ ! -x "$TUNCTL" ]; then
53# If tunctl -g fails, try using tunctl -u, for older host kernels 52 echo "Error: Unable to find tunctl binary in '$STAGING_BINDIR_NATIVE', please bitbake qemu-helper-native"
54# which do not support the TUNSETGROUP ioctl 53 exit 1
55 TAP=`$TUNCTL -b $USERID 2>&1` 54 fi
55
56 TAP=`$TUNCTL -b $GROUP 2>&1`
56 STATUS=$? 57 STATUS=$?
57 if [ $STATUS -ne 0 ]; then 58 if [ $STATUS -ne 0 ]; then
58 echo "tunctl failed:" 59 # If tunctl -g fails, try using tunctl -u, for older host kernels
59 exit 1 60 # which do not support the TUNSETGROUP ioctl
61 TAP=`$TUNCTL -b $USERID 2>&1`
62 STATUS=$?
63 if [ $STATUS -ne 0 ]; then
64 echo "tunctl failed:"
65 exit 1
66 fi
60 fi 67 fi
61fi 68fi
62 69