lunedì 4 giugno 2007

VirtualBox: come configurare le porte USB

Update del 10 Dicembre 2011:
dalla versione 4.x di VirtualBox per avere il supporto ai dispositivi USB 2.0 occorre installare il VirtualBox Extension Pack; è disponibile nella stessa pagina di download di VirtualBox.


E rieccoci, dopo un pò di tempo, a parlare nuovamente di VirtualBox.
Questa volta vi spiegherò come configurare le porte USB, un problema più comune di quanto si possa credere (colgo l'occasione per ringraziare Luciano che ha posto per tutti la domanda in questo commento).

E vediamo come fare.

La soluzione è valida per qualunque distribuzione Linux vogliate virtualizzare perché non è Linux a non vedere le porte USB, è nella configurazione hardware del PC virtuale che avete creato in VirtualBox che semplicemente non esistono, magari perché vi siete dimenticati di attivarle. Lo sottolineo ancora: Linux non riconoscerà mai e poi mai le porte USB se queste non sono già presenti e attive nella configurazione hardware del PC virtuale.

Non dimentichiamoci infatti una cosa basilare. VirtualBox è un programma che serve a creare un intero PC virtuale, con tutte le componenti hardware che costituiscono qualunque PC reale. Ci sarà pertanto un disco rigido, anche se solo virtuale, una scheda video, virtuale anch'essa, quella audio, e tra le altre cose, anche una o più porte USB; ma solo se le avremo esplicitamente previste mentre stavamo creando il PC virtuale, o in alternativa, le abbiamo comunque aggiunte successivamente. Perciò, prima attivate le porte USB nella macchina virtuale e solo poi potrete aspettarvi che Linux le riconosca.

Vediamo adesso come VirtualBox gestisce le porte USB reali per poi renderle disponibili nel PC virtuale. VirtualBox in realtà non riconosce le porte USB del vostro PC reale! Sorpresi? Ciò che riconosce invece sono i singoli dispositivi USB che inserite in esse, ad esempio la vostra chiavetta.

VirtualBox si accorge della sua esistenza solo quando la inserite nel PC reale e la rende disponibile nel PC virtuale, qualunque sia la porta USB reale fra quelle a disposizione a cui la collegate. Se la chiavetta la prossima volta la inserite su una porta diversa, si tratta sempre e comunque di quella chiavetta. Basta configurarla una e una sola volta in VirtualBox, la prima, e poi sarà sempre riconosciuta qualunque sia la porta in cui la inseriamo. E così l'eventuale vostro disco rigido esterno USB, la stampante USB, e così via, indifferentemente da quale porta sul PC reale state usando.

Scoperto l'arcano, non ci resta allora che avvisare VirtualBox dell'esistenza della nostra chiavetta USB. Come? Semplicemente inserendola nel vostro PC reale mentre VirtualBox non gira. Appena la chiavetta viene riconosciuta da Windows, avviate VirtualBox. Se non avete già una macchina virtuale pronta, createla seguendo le istruzioni del post "Virtualizzazione: creiamo un PC virtuale con VirtualBox 1.4 (parte 1)".

Ora sia che si tratti del PC virtuale appena creato, sia si tratti di quello con Linux già installato e da fargli riconoscere solo i dispositivi USB, passate a configurare la vostra chiavetta USB così come indicato nel post "Virtualizzazione: creiamo un PC virtuale con VirtualBox (parte 3a)".

Bene, ora chiudete VirtualBox e sfilate la chiavetta USB dal PC reale.

Ora, solo se si tratta della macchina virtuale appena creata, riavviate VirtualBox e procedete con l'installazione di Linux nella distribuzione da voi preferita. Quando è terminata e avete Linux perfettamente funzionante davanti a voi, spegnete Linux facendo lo Shut Down, poi chiudete VirtualBox.

Siamo pronti!

Riavviate VirtualBox e avviate in esso la macchina virtuale. Quando la partenza è terminata e siete davanti al desktop di Linux, infilate la vostra chiavetta USB nel PC reale: solo la prima volta, partirà l'installazione completamente automatica di un driver VirtualBox USB. E' questione di pochi secondi: appena terminata, dopo qualche secondo ancora, comparirà finalmente sul desktop la chiavetta USB.

Ora che tutto funziona, per essere sicuri che la chiavetta USB venga sempre rilevata al suo inserimento, seguite questa procedura:

  • prima avviate VirtualBox,
  • poi avviate il PC virtuale,
  • solo quando il sistema operativo installato al suo interno ha completato la partenza, inserite il dispositivo USB nella porta del PC reale.
Giusto per completezza, riporto sotto gli screenshot di come appare la mia chiavetta USB sotto Ubuntu 7.04 (fig. 1) e Suse 10.2 (fig. 2).

VirtualBox - USB - Ubuntu
fig. 1


VirtualBox - USB - Suse
fig. 2


E' tutto. Spero di avervi aiutato a dissipare ogni dubbio in merito alla configurazione di dispositivi USB in VirtualBox, e se avete problemi ancora problemi, non mancate di segnalarmeli.

@:\>


Aggiornamento di: domenica 10 giugno 2007

Volevo segnalarvi un post di Gianbi che spiega come ha risolto il problema del riconoscimento della chiavetta sotto Ubuntu Linux.

Grazie Gianbi. :)

17 commenti:

  1. Ciao, mi servirebbe una delucidazione sul riconoscimento di questi benedetti dispositivi USB.

    Allora la mia configurazione è:
    windows xp come sistema host
    virtualbox 1.5.2 come virtualizzatore
    ubuntu 7.10 come sistema guest

    Tutto è stato installato regolarmente, nessun problema incontrato, ma della mia chiavetta USB nessuna traccia.

    Eppure seguo passo passo la tua procedura, arrivo al punto in cui windows riconosce il VirtualboxUSB, ma poi su linux non ne trovo tracia

    Hai mica qualche altro suggerimento?

    Grazie in anticipo
    Alessandro

    RispondiElimina
  2. CHiedo scusa, è stato sufficiente, ripetere lo shutdown del sistema guest (ubuntu) e riavviare la macchina virtuuale e il mio pendrive è stato riconosciuto.

    Sperando che questo commento possa essere utile a qualcuno

    TI ringrazio e ti faccio i complimenti per il tuo ottimo blog!

    Ciao
    Alessandro

    RispondiElimina
  3. Ciao Alessandro. Sono contento tu abbia risolto subito e grazie per i complimenti. :-)

    @:\>

    RispondiElimina
  4. Faccio presente che nel caso usiate una tastiera ed un mouse wireless installati su una porta USB questa non deve essere acquisita in virtual box (altrimenti paradossalmente non funziona nel sistema guest).

    andrea

    RispondiElimina
  5. E' verissimo Andrea, hai fatto bene a sottolinearlo. :-)
    Ed è vero in generale per tutte le tastiere ed i mouse USB: questi, non solo non è necessario vengano acquisiti dal guest per funzionare con esso, ma è addirittura controproducente che ciò avvenga perché spesso smettono di funzionare correttamente e l'unico modo di riportare tutto alla normalità, è riavviare l'host.
    Se poi l'anomalia si manifesti ed in quale forma, ho la sensazione che vari da caso a caso. Sul mio sistema, un portatile Dell a cui ho collegato per comodità una tastiera ed un mouse USB, acquisendo entrambi in un guest Ubuntu 8.04, solo il mouse smette di funzionare sia con l'host che con il guest costringendomi ad usare il touchpad del portatile; la tastiera invece continua a funzionare con entrambi come se nulla fosse.
    Nel tuo caso invece come si comportano?

    @:\>

    RispondiElimina
  6. Ciao, avrei bisogno di un suggerimento:
    dopo aver disinstallato virtualbox la mia stampante mi sono accorto non essere più sulla sua vecchia vecchia porta usb ma su una virtual port usb.
    Come posso risolvere?
    Grazie
    maurizio

    RispondiElimina
  7. Ciao, uso ubuntu e ho installato windows XP su Virtualbox, ma mi sono accorto che le porte usb funzionano solo su ubuntu mentre su windows non vanno. Ho controllato le impostazioni di windows xp su virtualbox per vedere se l'usb era montato e, sorpresa: non compare l'icona usb nell'elenco dei dispositivi da montare. Quindi non posso montarlo. Come faccio a far funzionare le porte usb su windos virtualizzato?

    RispondiElimina
  8. Ciao Trovo le tue istruzioni veramente utili e precise, peccato che a me risulta un errore che non ho trovato e quindi te lo posto.
    Premesso che uso la versione 3.1.4 e che l'host è XP sp3 così come il guest (devo creare una macchina virtuale da condividere in rete) il mio problema è che comunque non rileva il card reader USB.
    Vado su Dispositivi USB e selezione card reader ma mi viene segnatalo il seguente errore:"USB device ... is bosy with a previous request. Please try later."
    Lho anche staccato e ricollegato ma il sistema host lo vede il guest no.
    Grazie per l'aiuto che vorrai darmi.

    RispondiElimina
  9. Ciao,
    io sto impazzendo perchè non riesco a risolvere un mio problema riguardo l'uso di una periferica via USB...
    allora il mio sistema operativo è Linux Ubuntu Karmic Koala 9.10, tramite vbox (v.3.1) ho virtualizzato Win XP e non ho riscontrato nessun problema nell'utilizzo delle porte USB anche in virtualizzazione finchè le periferiche che uso sono riconosciute in linux (ad esempio chiavette...). ora sorge il mio problema: io ho un blackberry 9520 (storm 2), collegandolo in linux tramite usb non ne vedo neanche l'ombra; ho poi scoperto che non era compatibile con linux e che dovrei cercare i pacchetti giusti, usare barry o opensync, file .drb da installare, moduli da compilare... ne ho provate di tutti i colori ma niente! linux non riconosce il telefono e di conseguenza in virtualizzazione non lo vedo... il procedimento da te spiegato lo ho provato ma erano gia attive le porte! non c'è un modo per creare un collegamento diretto tra vbox e le porte usb senza dover passare da linux? oppure sapresti dirmi quali app, file .deb o quello che serve per far vedere il telefono da linux?

    RispondiElimina
  10. Salve io ho un problema ho un hard disk esterno da 1 TB E volevo collegarlo alla macchina virtuale di Ubuntu, il problema è che io sopra questo hard disk ho il VDI si ubuntu e se provo a farlo partire mi si stacca ho seguito la procedura tranne che per staccarlo, ora come posso fare in modo che la macchina mi veda l'hard disk senza che lo espelli automaticamente

    RispondiElimina
  11. Ho win vista come e con vbox ho installato win98 ma nulla da fare per nessuna usb! qualcuno ha qualche idea che io non so piu dove cliccare??

    RispondiElimina
  12. Non ho più a disposizione nessuno dei due sistemi operativi, vado a memoria.

    Windows 98 è supportato poco o niente come sistema guest, già installarlo è un gran risultato. I problemi più grossi sono due:
    - le Guest Additions non sono disponibili;
    - è proprio Windows 98 che manca del supporto USB, va installato a parte.

    Le possibilità sono ancora 2:
    1) cercare sul sito del produttore del tuo dispositivo USB, ad esempio una penna USB, l'eventuale disponibilità del driver specifico per Windows 98 ed installarlo nel guest;
    2) installare sempre nel guest un driver "universale" che riconosca un po' tutti i dispositivi USB.

    Per questa seconda possibilità ti consiglio di leggere questo articolo:
    http://www.megalab.it/2679/driver-universale-per-memorie-usb-e-windows-98

    Troverai sia il driver da scaricare ed installare sul guest, sia la spiegazione su come farlo. Non è garantito al 100% che funzioni, ma almeno ora hai una possibilità. :)

    Ciao ciao.
    GdS

    RispondiElimina
  13. grazie!putroppo non e per me il pc e non so cosa verra attaccato alla porta usb e quindi ho gia installato un driver generico e di fatto se vado su sistema mi vengono mostrate le porte usb ma quando collego qualcosa questo non viene nemmeno rilevato da win98 a differenza di vista e vbox che me lo mostrano subito!

    RispondiElimina
  14. Purtroppo si tratta tentare e ritentare sperando che alla fine qualche driver funzioni.

    Se non l'hai già fatto, prova a disinstallare quello vecchio e installare quello che ti ho indicato, forse hai fortuna alla prima.

    Se invece ancora non funziona, trovane altri in rete e prova ancora. Un buon punto di inizio può essere qui (http://www.verbatim.com/support/downloads.cfm), lo installai un paio di anni fa e funzionò anche con altri dispositivi USB su un host Windows 98, con un po' di fortuna potrebbe funzionare anche nel guest.

    GdS

    RispondiElimina
  15. mah.. tornando ai primi post.. io ho pclinuxos e su virtualbox windows xp sp2.. per vedere le chiavette ho installato un pacchetto aggiuntivo con bottone di installazione dentro virtualbox stesso e in pratica ho condiviso la partizione d e una sd card come unita' di rete e vanno benissimo.. anche se le usb nel sistema di windows non ci sono.

    RispondiElimina
  16. Ciao, io sto provando Openwrt su virtualbox e non riesco a far funzionare i dispositivi usb pur seguendo la tua guida

    RispondiElimina
  17. Ciao AL. Qualche domanda:
    - quale host stai usando?
    - quale versione di VirtualBox stai usando?
    - hai installato l'Oracle VM VirtualBox Extension Pack?
    - i dispositivi USB di cui fai menzione vengono correttamente rilevati dall'host?
    - il guest (Openwrt) non gestisce correttamente il dispositivo USB, o non lo rileva affatto?
    - hai già verificato che il dispositivo USB sia fra quelli supportati da Openwrt?
    - quale versione di Openwrt stai usando?
    - di che dispositivo USB parliamo (nome, modello...)?

    RispondiElimina

L'autore del commento si assume la totale responsabilità del suo contenuto. Commenti ritenuti offensivi o non attinenti potranno essere cancellati.