Ubuntu 8.10 e Virtualbox: usare periferiche USB nelle macchine virtuali
22 ottobre 2008, scritto da Matteo
Virtualbox ha un sistema di gestione delle periferiche USB piuttosto comodo: le periferiche vengono riconosciute dalla coppia VendorID/ProductID indipendentemente dalla porta a cui sono collegate e possono essere utilizzate nelle macchine virtuali (guest) anche se non configurate/configurabili sull’host.
Il supporto USB, purtroppo, non è compreso nella versione OSE (Open-Source Edition) di Virtualbox. La versione closed è comunque gratuita per prova o uso personale.
Per utilizzare periferiche USB nelle macchine virtuali con host Ubuntu 8.10, è necessario fare qualche piccola modifica a un paio di file di configurazione.
Per prima cosa, bisogna ricavare l’ID del gruppo “vboxusers” dal file /etc/group:
matteo@mercury:~$ grep vbox /etc/group
vboxusers:x:125:matteo
A questo punto, aggiungiamo una riga in fondo a /etc/fstab, facendo attenzione a utilizzare l’ID appena ricavato:
## USB per Virtualbox
none /proc/bus/usb usbfs devgid=125,devmode=664 0 0
Per completare la configurazione, bisogna fare in modo che il filesystem appena indicato venga montato all’avvio del sistema. E’ sufficiente aggiungere un paio di righe al file /etc/init.d/mountkernfs.sh. Non in fondo al file, ma subito dopo questo blocco:
# Mount spufs, if Cell Broadband processor is detected
if [ -d /spu ] && grep -qs ‘^cpu.*Cell’ /proc/cpuinfo; then
domount spufs “” /spu spufs -ogid=spu
fi
Le righe da aggiungere sono queste, facendo sempre attenzione a utilizzare l’ID corretto:
## Mount the usbfs for use with VirtualBox
domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev,devgid=125,devmode=664
A questo punto, dopo aver riavviato il sistema, sarà possibile aggiungere le periferiche USB direttamente alla configurazione delle macchine virtuali, come si può vedere nell’immagine.

Ti è piaciuto l'articolo, eh? OFFRIMI UNA BIRRA! (è sufficiente essere iscritti a Paypal o avere una carta di credito, anche Postepay)
Articoli consigliati...
- Ubuntu e VirtualBox: configurare un bridge a cui collegare le macchine virtuali
- Samsung CLX-2160 su Ubuntu Linux 8.04 Hardy Heron: configurare stampante e scanner
- Ubuntu e rete wifi su Fujitsu-Siemens Amilo Li2735
- Iniziamo a sfoltire la todo-list per il 2007
- Putty e Ubuntu: come collegarsi in SSH da Windows a Linux e visualizzare i caratteri corretti














Newsletter
RSS articoli
RSS commenti





sai mica darmi qualche dritta per fedora? il file /etc/init.d/mountkernfs.sh non esiste su questa distro
@Peter:
Non ho mai usato Fedora, mi dispiace.
no problem thx
ciao! ho eseguito alla lettera la tua guida!!! ma non so perche non va!!!
mi permette di inserire le periferiche ma non funzionano…….
a macchina virtuale avviata se provo ad aggiungere una periferica mi da la lista ma sono oscurate!
ciao aspetto una tua risposta……..
@lbe:
Le periferiche vanno associate alla VM a macchina (virtuale) spenta, nelle impostazioni della VM stessa.
si lo fatto ma non vanno comunque!
avevo provato a d usare la guida per 8.04 ma non va azz!!! mi serviva per collegare il palmare!!!
grazie comunque!!!!!
Sei un grande!!
)
Per me tutto ok. Grazie!
Non manca uno spazio fra do e mount in questa riga?
domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev,devgid=125,devmode=664
Ciao e grazie.
Ragazzi, io ho risolto solamente aggiungendo la seguente riga a /etc/fstab:
none /proc/bus/usb usbfs devgid=46,devmode=666 0 0
Ciao.
humm…a me non va
premetto che con 8.04 tutto ok, ma da quando ho installato 8.10 non mi carica le porte USB
ho provato la tua guida, ma non ho avuto nessun risultato…
ti posto i vari file, così se trovi qualche errore mi correggi…
…/etc/fstab:
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
# /dev/sda1
UUID=c413754d-4c40-485f-bca8-83230e4febac / ext3 relatime,errors=remount-ro 0 1
# /dev/sda5
UUID=6ef02ace-89de-477a-b921-a5403317395a none swap sw 0 0
/dev/scd1 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
## USB per Virtualbox
none /proc/bus/usb usbfs devgid=126,devmode=666 0 0
…/etc/init.d/mountkernfs.sh:
#! /bin/sh
### BEGIN INIT INFO
# Provides: mountkernfs
# Required-Start:
# Required-Stop:
# Should-Start: glibc
# Default-Start: S
# Default-Stop:
# Short-Description: Mount kernel virtual file systems.
# Description: Mount initial set of virtual filesystems the kernel
# provides and that are required by everything.
### END INIT INFO
PATH=/lib/init:/sbin:/bin
. /lib/init/vars.sh
. /lib/lsb/init-functions
. /lib/init/mount-functions.sh
[ -f /etc/default/tmpfs ] && . /etc/default/tmpfs
do_start () {
#
# Get some writable area available before the root is checked
# and remounted.
#
RW_OPT=
[ "${RW_SIZE:=$TMPFS_SIZE}" ] && RW_OPT=”,size=$RW_SIZE”
domount tmpfs “” /lib/init/rw tmpfs -omode=0755,nosuid$RW_OPT
touch /lib/init/rw/.ramfs
# Make pidfile omit directory for sendsigs
mkdir /lib/init/rw/sendsigs.omit.d/
#
# Mount proc filesystem on /proc
#
domount proc “” /proc proc -onodev,noexec,nosuid
#
# Mount sysfs on /sys
#
# Only mount sysfs if it is supported (kernel >= 2.6)
if grep -E -qs “sysfs\$” /proc/filesystems
then
domount sysfs “” /sys sysfs -onodev,noexec,nosuid
fi
# Mount /var/run and /var/lock as tmpfs if enabled
if [ yes = "$RAMRUN" ] ; then
RUN_OPT=
[ "${RUN_SIZE:=$TMPFS_SIZE}" ] && RUN_OPT=”,size=$RUN_SIZE”
domount tmpfs “” /var/run varrun -omode=0755,nosuid$RUN_OPT
touch /var/run/.ramfs
fi
if [ yes = "$RAMLOCK" ] ; then
LOCK_OPT=
[ "${LOCK_SIZE:=$TMPFS_SIZE}" ] && LOCK_OPT=”,size=$LOCK_SIZE”
domount tmpfs “” /var/lock varlock -omode=1777,nodev,noexec,nosuid$LOCK_OPT
touch /var/lock/.ramfs
fi
# Mount spufs, if Cell Broadband processor is detected
if [ -d /spu ] && grep -qs ‘^cpu.*Cell’ /proc/cpuinfo; then
domount spufs “” /spu spufs -ogid=spu
fi
## Mount the usbfs for use with VirtualBox
domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev,devgid=126,devmode=664
# Propagate files from the initramfs to our new /var/run.
for file in /dev/.initramfs/varrun/*; do
[ -e "$file" ] || continue
cp -a “$file” “/var/run/${x#/dev/.initramfs/varrun/}”
done
}
case “$1″ in
“”)
echo “Warning: mountkernfs 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: mountkernfs [start|stop]” >&2
exit 3
;;
esac
scusa se ti ho allungato il post, ma e questione di vita o di morte…
by a presto
provato con 2.0.6 e kubuntu 8.10.
problemi con devmode=664 0 0
se metto devmode=666 0 0 come dice Vincenzo tutto a posto.
grazie a tutti!
Ciao,
bella guida, ha funzionato tutto alla grande, per correttezza ti ho linkato nel mio forum di help ai clienti, se a te va bene lascio cosi’, altrimenti la riscrivo ma la tua è già ben fatta cosi’.
http://omnitech.homelinux.com/phpBB3/viewtopic.php?f=7&t=23
Ciao
Mattia
@Mattia:
Non vedo perché non dovrebbe andarmi bene, grazie
Scusa, ma non si è capito bene. La tua modifica serve per truccare la OSE per usare usb? Perché di solito la PUEL funziona già di suo…
@Lazza:
La seconda che hai detto, perchè non sempre la PUEL funziona di suo.
quando vado a dare il comando
none /proc/bus/usb usbfs devgid=125,devmode=664 0 0
mi dice
bash: none: command not found
come posso rimediare?
@Francesco:
Aggiungendolo in fondo al file /etc/fstab (come specificato nel post) anzichè lanciarlo come comando…
Perfetto anche sulla 9.04!
@maddog:
E’ vero, mi sono dimenticato di aggiornare il post dopo il passaggio a Jaunty