USB-Nutzung mit der Virtualbox in Hardy und Intrepid

hillux am 29. Oktober 2007 – 15:52

Im Zusammenhang mit der Nutzung der Virtualbox unter Ubuntu mit einem Gastsystem (wie Windows-XP) gibt es einen Fehler. Bei Einrichten des USB-Systems des Gastsystems bekommt man folgende Fehlermeldung:
“Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might be not installed on the host computer.”
Eigentlich handelt es sich nicht wirklich um einen Fehler. Vielmehr sind im Script /etc/init.d/mountdevsubfs.sh Optionen standardmäßig deaktiviert. Es gibt unterschiedliche Lösungen bis Hardy und ab Intrepid.

Hardy:

- Im Terminal sudo nano /etc/init.d/mountdevsubfs.sh öffnen.

- Nach folgenden Zeilen suchen:

#mkdir -p /dev/bus/usb/.usbfs
#domount usbfs “” /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
#ln -s .usbfs/devices /dev/bus/usb/devices
#mount –rbind /dev/bus/usb /proc/bus/usb

und wie folgt ändern (# entfernen):

mkdir -p /dev/bus/usb/.usbfs
domount usbfs “” /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount –rbind /dev/bus/usb /proc/bus/usb

speichern, Neustart oder

sudo mount -a

Intrepid:

Bei Intrepid fehlen die o.g. Angaben in der Datei mountdevsubfs.sh und müssen ergänzt werden. Außerdem muss in der fstab ein Eintrag ergänzt werden.

1.) Anpassung der mountdevsubfs.sh:

sudo gedit /etc/init.d/mountdevsubfs.sh

Den FETT formatierten Teil im Beispiel ab Magic to make... einfügen und die Datei speichern.

Beispiel:

#! /bin/sh
### BEGIN INIT INFO
# Provides: mountdevsubfs
# Required-Start: mountkernfs
# Required-Stop:
# Should-Start: udev
# Default-Start: S
# Default-Stop:
# Short-Description: Mount special file systems under /dev.
# Description: Mount the virtual filesystems the kernel provides
# that ordinarily live under the /dev filesystem.
### END INIT INFO
#
# This script gets called multiple times during boot
#

PATH=/lib/init:/sbin:/bin
TTYGRP=5
TTYMODE=620
[ -f /etc/default/devpts ] && . /etc/default/devpts

TMPFS_SIZE=
[ -f /etc/default/tmpfs ] && . /etc/default/tmpfs

KERNEL="$(uname -s)"

. /lib/lsb/init-functions
. /lib/init/mount-functions.sh

do_start () {
#
# Mount a tmpfs on /dev/shm
#
SHM_OPT=
[ "${SHM_SIZE:=$TMPFS_SIZE}" ] && SHM_OPT=",size=$SHM_SIZE"
domount tmpfs shmfs /dev/shm tmpfs -onosuid,nodev$SHM_OPT

#
# Mount /dev/pts. Master ptmx node is already created by udev.
#
domount devpts "" /dev/pts devpts -onoexec,nosuid,gid=$TTYGRP,mode=$TTYMODE

# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb

}

case "$1" in
"")
echo "Warning: mountdevsubfs should be called with the 'start' argument." >&2
do_start
;;
start)
do_start
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
# No-op
;;
*)
echo "Usage: mountdevsubfs [start|stop]" >&2
exit 3
;;
esac

2.) fstab anpassen

sudo gedit /etc/fstab

Folgende Zeile ergänzen:

#usbfs
none /proc/bus/usb usbfs devgid=46,devmode=664 0 0

Der Parameter devgid bezeichnet die User-ID des erwünschten Virtualbox-Benutzers, die man unter System, Systemverwaltung, Benutzer und Gruppen finden kann.

Danach das System neu starten!

Eine aktuelle Beschreibung ist hier zu finden:

http://ubuntuforums.org/showthread.php?t=946268

  1. 8 Kommentare zu “USB-Nutzung mit der Virtualbox in Hardy und Intrepid”

  2. Wollte einfach mal nett danke sagen – der Tipp hat funtioniert.

    geschrieben von Elli am 03. Apr, 2008

  3. Ich habe auch zu danken!
    PS: den Neustart kann man sich auch sparen, einfach
    sudo /etc/init.d/mountdevsubfs.sh start
    eingeben.

    geschrieben von hannes am 17. Apr, 2008

  4. Ganz großes Tennis! Danke!

    geschrieben von Moe am 25. Mai, 2008

  5. Ich möchte mich auch ganz herzlich bedanken.Hat mir sehr geholfen,da ich aus beruflichen Gründen nicht ganz auf Windows verzichten kann.

    Frohe Weihnacht und ein gesundes neues Jahr

    geschrieben von Wolfgang am 22. Dez, 2008

  6. Hallo Wolfgang, danke für Dein nettes Feedback. Ich wünsche Dir ebenso viel Gutes zur Weihnacht und für das kommende Jahr. Kannst Du noch etwas dazu schreiben, welche Ubuntu-Version Du wofür benutzt?
    Christian

    geschrieben von hillux am 23. Dez, 2008

  7. Danke für die gelungene Anleitung! :-)

    Als kleine Ergänzung: die devgid lässt sich auch direkt aus der Shell heraus ermitteln:

    echo $(grep vboxusers /etc/group | sed "s/vboxusers:x:\(.*\):.*/\1/")

    Viele Grüße und ein frohes Fest,
    Alex

    geschrieben von Alex am 23. Dez, 2008

  8. Tolles Howto (auf den Punkt). Hat mir einiges an Zet erspart :)

    Eine Anmerkung: erwartet “devgid” nicht einen Gruppen-ID der Gruppe “vboxusers”? (meine: Gruppe statt User).

    geschrieben von Dirk am 04. Mai, 2009

  1. 3 Trackback(s)

  2. Jul 12, 2008: VirtualBox mit Windows XP unter Ubuntu Linux (mit USB für Microcontrollerprogrammierung) « Tobijohn’s Weblog

Kommentar schreiben