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

21 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 :)

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




Video & Audio Comments are proudly powered by Riffly