summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/runqemu-ifup20
-rwxr-xr-xscripts/runqemu-internal5
2 files changed, 16 insertions, 9 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`
diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal
index 1831a098c6..fb0d80660f 100755
--- a/scripts/runqemu-internal
+++ b/scripts/runqemu-internal
@@ -173,13 +173,14 @@ if [ "$TAP" = "" ]; then
173 fi 173 fi
174 174
175 GROUPID=`id -g` 175 GROUPID=`id -g`
176 USERID=`id -u`
176 echo "Setting up tap interface under sudo" 177 echo "Setting up tap interface under sudo"
177 # Redirect stderr since we could see a LD_PRELOAD warning here if pseudo is loaded 178 # Redirect stderr since we could see a LD_PRELOAD warning here if pseudo is loaded
178 # but inactive. This looks scary but is harmless 179 # but inactive. This looks scary but is harmless
179 tap=`sudo $QEMUIFUP $GROUPID $OECORE_NATIVE_SYSROOT 2> /dev/null` 180 tap=`sudo $QEMUIFUP $USERID $GROUPID $OECORE_NATIVE_SYSROOT 2> /dev/null`
180 if [ $? -ne 0 ]; then 181 if [ $? -ne 0 ]; then
181 # Re-run standalone to see verbose errors 182 # Re-run standalone to see verbose errors
182 sudo $QEMUIFUP $GROUPID $OECORE_NATIVE_SYSROOT 183 sudo $QEMUIFUP $USERID $GROUPID $OECORE_NATIVE_SYSROOT
183 return 184 return
184 fi 185 fi
185 LOCKFILE="$LOCKDIR/$tap" 186 LOCKFILE="$LOCKDIR/$tap"