diff options
| -rwxr-xr-x | scripts/runqemu-ifup | 20 | ||||
| -rwxr-xr-x | scripts/runqemu-internal | 5 |
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 | ||
| 36 | usage() { | 36 | usage() { |
| 37 | echo "sudo $(basename $0) <gid> <native-sysroot-basedir>" | 37 | echo "sudo $(basename $0) <uid> <gid> <native-sysroot-basedir>" |
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | if [ $EUID -ne 0 ]; then | 40 | if [ $EUID -ne 0 ]; then |
| @@ -42,13 +42,14 @@ if [ $EUID -ne 0 ]; then | |||
| 42 | exit 1 | 42 | exit 1 |
| 43 | fi | 43 | fi |
| 44 | 44 | ||
| 45 | if [ $# -ne 2 ]; then | 45 | if [ $# -ne 3 ]; then |
| 46 | usage | 46 | usage |
| 47 | exit 1 | 47 | exit 1 |
| 48 | fi | 48 | fi |
| 49 | 49 | ||
| 50 | GROUP="-g $1" | 50 | USERID="-u $1" |
| 51 | NATIVE_SYSROOT_DIR=$2 | 51 | GROUP="-g $2" |
| 52 | NATIVE_SYSROOT_DIR=$3 | ||
| 52 | 53 | ||
| 53 | TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl | 54 | TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl |
| 54 | if [ ! -x "$TUNCTL" ]; then | 55 | if [ ! -x "$TUNCTL" ]; then |
| @@ -59,9 +60,14 @@ fi | |||
| 59 | TAP=`$TUNCTL -b $GROUP 2>&1` | 60 | TAP=`$TUNCTL -b $GROUP 2>&1` |
| 60 | STATUS=$? | 61 | STATUS=$? |
| 61 | if [ $STATUS -ne 0 ]; then | 62 | if [ $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 | ||
| 65 | fi | 71 | fi |
| 66 | 72 | ||
| 67 | IFCONFIG=`which ifconfig 2> /dev/null` | 73 | IFCONFIG=`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" |
