summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/virtualbox-bin/files/virtualbox-bin-wrapper')
-rw-r--r--app-emulation/virtualbox-bin/files/virtualbox-bin-wrapper119
1 files changed, 119 insertions, 0 deletions
diff --git a/app-emulation/virtualbox-bin/files/virtualbox-bin-wrapper b/app-emulation/virtualbox-bin/files/virtualbox-bin-wrapper
new file mode 100644
index 0000000..147edc4
--- /dev/null
+++ b/app-emulation/virtualbox-bin/files/virtualbox-bin-wrapper
@@ -0,0 +1,119 @@
+#!/bin/sh
+#
+# innotek VirtualBox
+#
+# Copyright (C) 2006-2007 innotek GmbH
+#
+# This file is part of VirtualBox Open Source Edition (OSE), as
+# available from http://www.virtualbox.org. This file is free software;
+# you can redistribute it and/or modify it under the terms of the GNU
+# General Public License as published by the Free Software Foundation,
+# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
+# distribution. VirtualBox OSE is distributed in the hope that it will
+# be useful, but WITHOUT ANY WARRANTY of any kind.
+
+PATH="/usr/bin:/bin:/usr/sbin:/sbin"
+CONFIG="/etc/vbox/vbox.cfg"
+
+if [ ! -r "$CONFIG" ]; then
+ echo "Could not find VirtualBox installation. Please reinstall."
+ exit 1
+fi
+
+. "$CONFIG"
+
+# Note: This script must not fail if the module was not successfully installed
+# because the user might not want to run a VM but only change VM params!
+
+if [ "$1" = "shutdown" ]; then
+ SHUTDOWN="true"
+elif [ ! -e /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
+ cat << EOF
+WARNING: There is no module available for the current kernel (`uname -r`).
+ Please recompile the kernel module and install it by:
+
+ sudo emerge -1 app-emulation/virtualbox-modules
+
+ You will not be able to start VMs until this problem is fixed.
+EOF
+elif ! lsmod|grep -q vboxdrv; then
+ cat << EOF
+WARNING: The vboxdrv kernel module is not loaded.
+ Please load the kernel module by:
+
+ sudo modprobe vboxdrv
+
+ You will not be able to start VMs until this problem is fixed.
+EOF
+elif [ ! -c /dev/vboxdrv ]; then
+ cat << EOF
+WARNING: The character device /dev/vboxdrv does not exist.
+ Please try to reload the kernel module by:
+
+ sudo rmmod vboxdrv; sleep 2; sudo modprobe vboxdrv
+
+ and if that is not successful, try to re-install the package by:
+
+ sudo emerge -1 app-emulation/virtualbox-modules
+
+ You will not be able to start VMs until this problem is fixed.
+EOF
+elif [ ! -w /dev/vboxdrv ]; then
+ if [ "`id | grep vboxusers`" = "" ]; then
+ cat << EOF
+WARNING: You are not a member of the "vboxusers" group.
+ Please add yourself to this group before starting VirtualBox.
+
+ You will not be able to start VMs until this problem is fixed.
+EOF
+ else
+ cat << EOF
+WARNING: /dev/vboxdrv not writable for some reason.
+ If you recently added the current user to the "vboxusers" group
+ then you have to logout and re-login to take the change effect.
+
+ You will not be able to start VMs until this problem is fixed.
+EOF
+ fi
+fi
+
+export LD_LIBRARY_PATH="$INSTALL_DIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
+
+SERVER_PID=`ps -U \`whoami\` | grep VBoxSVC | awk '{ print $1 }'`
+if [ -z "$SERVER_PID" ]; then
+ # Server not running yet/anymore, cleanup socket path.
+ # See IPC_GetDefaultSocketPath()!
+ if [ -n "$LOGNAME" ]; then
+ rm -rf /tmp/.vbox-$LOGNAME-ipc > /dev/null 2>&1
+ else
+ rm -rf /tmp/.vbox-$USER-ipc > /dev/null 2>&1
+ fi
+fi
+
+if [ "$SHUTDOWN" = "true" ]; then
+ if [ -n "$SERVER_PID" ]; then
+ kill -TERM $SERVER_PID
+ sleep 2
+ fi
+ exit 0
+fi
+
+APP=`which $0`
+APP=${APP##/*/}
+case "$APP" in
+ VirtualBox)
+ exec "$INSTALL_DIR/VirtualBox" "$@"
+ ;;
+ VBoxManage)
+ exec "$INSTALL_DIR/VBoxManage" "$@"
+ ;;
+ VBoxSDL)
+ exec "$INSTALL_DIR/VBoxSDL" "$@"
+ ;;
+ VBoxVRDP)
+ exec "$INSTALL_DIR/VBoxVRDP" "$@"
+ ;;
+ *)
+ echo "Unknown application - $APP"
+ ;;
+esac