From 6ea1ed5f7b51b7c04e8aca29319c970846ddf1b8 Mon Sep 17 00:00:00 2001 From: Jeff Dike Date: Thu, 5 Aug 2010 12:31:01 -0400 Subject: poky-qemu-[ifup|ifdown]: Use native tunctl poky-qemu-ifup can run standalone by root in order to configure a bank of tap devices for later qemu use. These devices will, if possible, be owned by a specified group to which qemu users must belong. If the kernel is too old to support TUNSETGROUP, then it falls back to setting the tap device to be owned by a particular user, and that user will be the only one allowed to use it. Also overall usability improvements to the scripts, usage() help, etc. Signed-off-by: Jeff Dike Signed-off-by: Scott Garman --- scripts/poky-qemu-ifdown | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'scripts/poky-qemu-ifdown') diff --git a/scripts/poky-qemu-ifdown b/scripts/poky-qemu-ifdown index d9e9e95861..93a87559af 100755 --- a/scripts/poky-qemu-ifdown +++ b/scripts/poky-qemu-ifdown @@ -1,8 +1,8 @@ -#!/bin/sh - -# QEMU network interface configuration script +#!/bin/bash +# +# QEMU network interface configuration script. # -# Copyright (C) 2006-2007 OpenedHand Ltd. +# Copyright (c) 2006-2010 Intel Corp. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as @@ -10,16 +10,36 @@ # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +usage() { + echo "$0 " +} + +if [ $# -ne 2 ]; then + usage + exit 1 +fi + TAP=$1 +NATIVE_SYSROOT_DIR=$2 + +TUNCTL=$NATIVE_SYSROOT_DIR/usr/bin/tunctl +if [ ! -e "$TUNCTL" ]; then + echo "Error: Unable to find tunctl binary in '$NATIVE_SYSROOT_DIR/usr/bin'" + + if [[ "$NATIVE_SYSROOT_DIR" =~ ^\/opt\/poky ]]; then + echo "This shouldn't happen - something is wrong with your toolchain installation" + else + echo "Have you run 'bitbake qemu-helper-native'?" + fi -TUNCTL=`which tunctl` -[ "$TUNCTL" = "" ] && TUNCTL=/usr/sbin/tunctl + exit 1 +fi $TUNCTL -d $TAP -- cgit v1.2.3