VBoxCreateUSBNode.sh revision 5f709c846bb234a0319a5c1f17e5a994d88d7352
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#! /bin/sh
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# $Id$ */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync## @file
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# VirtualBox USB Proxy Service, Linux Specialization.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# udev helper for creating and removing device nodes for VirtualBox USB devices
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# Copyright (C) 2010 Oracle Corporation
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# Oracle Corporation confidential
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# All rights reserved
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdo_remove=0
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynccase "$1" in "--remove")
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync do_remove=1; shift;;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncesac
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncbus=`expr "$2" '/' 128 + 1`
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdevice=`expr "$2" '%' 128 + 1`
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncclass="$3"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncif test "$class" -eq 9; then
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync exit 0
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfi
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdevdir="`printf "/dev/vboxusb/%.3d" $bus`"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdevpath="`printf "/dev/vboxusb/%.3d/%.3d" $bus $device`"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncif test "$do_remove" -eq 0; then
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync mkdir /dev/vboxusb -m 0750 2>/dev/null
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync chown root:vboxusers /dev/vboxusb 2>/dev/null
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync mkdir "$devdir" -m 0750 2>/dev/null
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync chown root:vboxusers "$devdir" 2>/dev/null
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync mknod "$devpath" c $1 $2 -m 0660 2>/dev/null
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync chown root:vboxusers "$devpath" 2>/dev/null
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncelse
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync rm -f "$devpath"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfi
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync