summaryrefslogtreecommitdiffstats
path: root/scripts/runqemu-ifup
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/runqemu-ifup')
-rwxr-xr-xscripts/runqemu-ifup20
1 files changed, 13 insertions, 7 deletions
diff --git a/scripts/runqemu-ifup b/scripts/runqemu-ifup
index f80538f53c..e4c3dafeef 100755
--- a/scripts/runqemu-ifup
+++ b/scripts/runqemu-ifup
@@ -34,7 +34,7 @@
34# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 34# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
35 35
36usage() { 36usage() {
37 echo "sudo $(basename $0) <gid> <native-sysroot-basedir>" 37 echo "sudo $(basename $0) <uid> <gid> <native-sysroot-basedir>"
38} 38}
39 39
40if [ $EUID -ne 0 ]; then 40if [ $EUID -ne 0 ]; then
@@ -42,13 +42,14 @@ if [ $EUID -ne 0 ]; then
42 exit 1 42 exit 1
43fi 43fi
44 44
45if [ $# -ne 2 ]; then 45if [ $# -ne 3 ]; then
46 usage 46 usage
47 exit 1 47 exit 1
48fi 48fi
49 49
50GROUP="-g $1" 50USERID="-u $1"
51NATIVE_SYSROOT_DIR=$2 51GROUP="-g $2"
52NATIVE_SYSROOT_DIR=$3
52 53
53TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl 54TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl
54if [ ! -x "$TUNCTL" ]; then 55if [ ! -x "$TUNCTL" ]; then
@@ -59,9 +60,14 @@ fi
59TAP=`$TUNCTL -b $GROUP 2>&1` 60TAP=`$TUNCTL -b $GROUP 2>&1`
60STATUS=$? 61STATUS=$?
61if [ $STATUS -ne 0 ]; then 62if [ $STATUS -ne 0 ]; then
62 echo "tunctl failed:" 63# If tunctl -g fails, try using tunctl -u, for older host kernels
63 echo $TAP 64# which do not support the TUNSETGROUP ioctl
64 exit 1 65 TAP=`$TUNCTL -b $USERID 2>&1`
66 STATUS=$?
67 if [ $STATUS -ne 0 ]; then
68 echo "tunctl failed:"
69 exit 1
70 fi
65fi 71fi
66 72
67IFCONFIG=`which ifconfig 2> /dev/null` 73IFCONFIG=`which ifconfig 2> /dev/null`