From: hawk Date: Fri, 16 May 2008 13:20:19 +0000 (+0000) Subject: - init script for loading vboxadd module on guest system using static /dev X-Git-Tag: auto/th/VirtualBox-1_6_0-4 X-Git-Url: http://git.pld-linux.org/gitweb.cgi?p=packages%2FVirtualBox-bin.git;a=commitdiff_plain;h=903d1acdd61a58c9fe558c963ec132709b0e9b27 - init script for loading vboxadd module on guest system using static /dev Changed files: VirtualBox-vboxadd.init -> 1.1 --- diff --git a/VirtualBox-vboxadd.init b/VirtualBox-vboxadd.init new file mode 100644 index 0000000..2c59284 --- /dev/null +++ b/VirtualBox-vboxadd.init @@ -0,0 +1,93 @@ +#!/bin/sh +# +# virtualbox VirtualBox virtualizer for x86 hardware +# +# chkconfig: 345 84 25 +# +# description: InnoTek VirtualBox is a general-purpose full virtualizer for x86 +# hardware. Targeted at server, desktop and embedded use. +# +# $Id$ + +# Source function library +. /etc/rc.d/init.d/functions + +VBOX_DEVICE="/dev/vboxadd" +VBOX_MODULE="vboxadd" + +# Get service config - may override defaults +[ -f /etc/sysconfig/virtualbox ] && . /etc/sysconfig/virtualbox + +start() { + if [ ! -f /var/lock/subsys/virtualbox ]; then + modprobe -s $VBOX_MODULE + # set proper /dev/vboxdrv for systems with static dev + if ! [ -d /dev/.udev/ ]; then + show "Setting $VBOX_DEVICE entry" + busy + rm -f $VBOX_DEVICE + VBOX_MAJOR=$(awk '$2 == "vboxdrv" {print $1}' /proc/devices) + if [ -n "$VBOX_MAJOR" ]; then + VBOX_MINOR=0 + else + VBOX_MINOR=$(awk '$2 == "vboxdrv" {print $1}' /proc/misc) + if [ -n "$VBOX_MINOR" ]; then + VBOX_MAJOR=$(awk '$2 == "misc" {print $1}' /proc/devices) + fi + fi + if [ -z "$VBOX_MAJOR" ]; then + /sbin/rmmod $VBOX_MODULE + fail + elif ! mknod -m 0660 $VBOX_DEVICE c $VBOX_MAJOR $VBOX_MINOR; then + rmmod $VBOX_MODNAME + fail + elif ! chown root:vbox $VBOX_DEVICE; then + fail + else + ok + fi + fi + + touch /var/lock/subsys/virtualbox + fi +} + +stop() { + # NOTE: rmmod will wait if device is in use, so automatic rmmod probably not the best idea + /sbin/rmmod $VBOX_MODULE + rm -f /var/lock/subsys/virtualbox +} + +RETVAL=0 +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + status) + if ! is_module $VBOX_MODULE; then + echo "$VBOX_MODULE module is loaded" + else + echo "$VBOX_MODULE module is not loaded" + RETVAL=3 + fi + if [ ! -c $VBOX_DEVICE ]; then + echo "$VBOX_DEVICE does not exist" + RETVAL=3 + else + echo "$VBOX_DEVICE exists with major/minor $(ls -l $VBOX_DEVICE | awk '{print $5 $6}')" + fi + ;; + *) + msg_usage "$0 {start|stop|restart|status}" + exit 3 +esac + +exit $RETVAL