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)

Condividi :
  • Facebook
  • Twitter
  • FriendFeed
  • OKNotizie
  • Fai.Info
  • Diggita
  • ZicZac
  • Upnews
  • NotizieFlash
  • Wikio IT
  • del.icio.us
  • StumbleUpon
  • Technorati
  • Netvibes
Ti è piaciuto l'articolo? Vota Ok oppure No. Grazie Mille!

Puoi votare l'articolo anche qui, gli articoli precedenti qui.

Articoli consigliati...

30 commenti per questo articolo

  1. 27/10/2008, 21:25Peter (permalink)

    sai mica darmi qualche dritta per fedora? il file /etc/init.d/mountkernfs.sh non esiste su questa distro

  2. 27/10/2008, 21:32Matteo (permalink)

    @Peter:
    Non ho mai usato Fedora, mi dispiace. :-P

  3. 27/10/2008, 22:11Peter (permalink)

    no problem thx

  4. 31/10/2008, 19:19@lbe (permalink)

    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……..

  5. 31/10/2008, 19:27Matteo (permalink)

    @lbe:
    Le periferiche vanno associate alla VM a macchina (virtuale) spenta, nelle impostazioni della VM stessa.

  6. 31/10/2008, 19:36@lbe (permalink)

    si lo fatto ma non vanno comunque!

  7. 31/10/2008, 19:38@lbe (permalink)

    avevo provato a d usare la guida per 8.04 ma non va azz!!! mi serviva per collegare il palmare!!!

  8. 31/10/2008, 19:39@lbe (permalink)

    grazie comunque!!!!!

  9. 01/11/2008, 03:01maddog (permalink)

    Sei un grande!! :-) )
    Per me tutto ok. Grazie!

  10. 01/11/2008, 21:03Vincenzo (permalink)

    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.

  11. 01/11/2008, 23:47Vincenzo (permalink)

    Ragazzi, io ho risolto solamente aggiungendo la seguente riga a /etc/fstab:

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

    Ciao.

  12. 15/11/2008, 14:55valerix (permalink)

    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

  13. 10/12/2008, 15:24rodolfo (permalink)

    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!

  14. 11/12/2008, 16:27Mattia (permalink)

    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

  15. 11/12/2008, 16:47Matteo (permalink)

    @Mattia:
    Non vedo perché non dovrebbe andarmi bene, grazie :)

  16. 11/12/2008, 19:02Lazza (permalink)

    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…

  17. 11/12/2008, 19:25Matteo (permalink)

    @Lazza:
    La seconda che hai detto, perchè non sempre la PUEL funziona di suo.

  18. 09/02/2009, 14:07Francecso (permalink)

    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?

  19. 09/02/2009, 14:09Matteo (permalink)

    @Francesco:
    Aggiungendolo in fondo al file /etc/fstab (come specificato nel post) anzichè lanciarlo come comando… ;)

  20. 26/04/2009, 22:15maddog (permalink)

    Perfetto anche sulla 9.04!

  21. 27/04/2009, 10:35Matteo (permalink)

    @maddog:
    E’ vero, mi sono dimenticato di aggiornare il post dopo il passaggio a Jaunty :)

  22. 17/10/2009, 16:51Felix (permalink)

    Invece con la 9.10 (ho installato la beta release del 15 Ottobre) non va più.
    Tra l’altro ho trovato il file /etc/init.d/mountkernfs.sh completamente vuoto.
    Che dire?

  23. 17/10/2009, 16:52Lazza (permalink)

    Io ho aggiornato dalla 9.04 (a cui avevo precedentemente applicato il mio metodo) alla 9.10 e continua a funzionare. :)

  24. 18/10/2009, 10:58Felix (permalink)

    Io invece ho dovuto formattare per problemi legati alle partizioni ed avendo testato in VB la 9.10 l’ho ritenuta abbastanza matura per utilizzarla.
    Ripeto, il problema base è che:
    - il file “/etc/fstab” è diverso dalla 9.04 ;
    - il file “/etc/init.d/mountkernfs.sh” invece è completamente VUOTO
    Quindi suppongo che, a meno di un clamoroso ed improbabile bug della 9.10, il metodo non sia più applicabile… che fare?
    Prendere i suddetti files dalla 9.04 e reinserirli nella 9.10 ? Mah…

  25. 18/10/2009, 12:28Lazza (permalink)

    http://andrealazzarotto.com/2009/01/03/configurazione-dellusb-in-virtualbox-puel-la-via-rapida-e-system-wide/
    Prova a lasciar perdere quel file e limitarti al resto… Al limite annulli le modifiche.

  26. 18/10/2009, 16:45Felix (permalink)

    grazie ancora per le indicazioni ma… nada de nada.
    il file /etc/init.d/mountdevsubfs.sh è anch’esso VUOTO!!!
    Ho letto anche la tua guida (ti rispondo da qui per non far perdere il filo) ma se i files di sistema sono vuoti c’è poco da fare.
    Ho anche provato ad inserire gli scripts, ma niente da fare.

  27. 18/10/2009, 16:57Lazza (permalink)

    Scusami ma quale parte di “Prova a lasciar perdere quel file e limitarti al resto” ti è sfuggita? :) Nemmeno io ho quel file e funziona tutto perfettamente.

  28. 18/10/2009, 17:20Felix (permalink)

    Davvero, sono io che chiedo scusa a te… sinceramente.
    Probabilmente non ci ho capito nulla… ti elenco cosa ho fatto:
    - ho inserito nel file (originariamente vuoto) “/etc/init.d/mountdevsubfs.sh” le righe che hai indicato (compreso le tabulazioni) ed ho salvato il file:
    - ho dato il comando da shell che indichi successivamante ed ho rimontato.
    Ho riavviato la VB e, come sempre, vede i dispositivi ma rimangono sempre grigi e non attivabili.
    Se ho capito bene le tue indicazioni.
    Grazie

  29. 18/10/2009, 17:59Lazza (permalink)

    Togli le righe dal file… Anzi togli proprio il file, tanto non c’era prima per cui non dev’esserci neanche adesso. :)
    Elimina la riga che inizia per “none /proc/bus/usb usbfs” dall’/etc/fstab. A questo punto rifai tutto dall’inizio (tralasciando il file che non c’è, per cui salta via proprio quel passaggio) e ricordati bene quello che forse non si vede moltissimo ma l’ho scritto: “Controllate per prima cosa che il vostro utente appartenga al gruppo vboxusers.”. ;) Se il tuo utente non c’è, ti devi aggiungere e poi, dopo aver finito la guida, riavviare prima che funzioni.

  30. 18/10/2009, 23:53Felix (permalink)

    ti rispondo sul tuo blog perchè mi sembra più corretto
    Grazie

Indirizzo per il trackback | Segui i commenti a questo articolo

Partecipa alla discussione:

Feed RSS Commenti Segui la discussione via RSS! Non sai cos'è un feed RSS? GUARDA QUA!

C'è qualcuno che parla di questo articolo?

  1. 22/10/2008, 10:37diggita.it (permalink)

Indirizzo per il trackback | Segui i commenti a questo articolo



Additional comments powered by BackType