Accéder au contenu principal

VirtualBox et USB

Je me suis longtemps battu pour que mes machines virtuelles Windows sous VirtualBox bénéficient d'un support correctement exploitable de l'USB. Bien que je faisais tout ce qu'il fallait faire, impossible de brancher le moindre périphérique USB sur une machine VirtualBox ayant Windows (toutes versions confondues). Je m'étais même tourné vers VMware Player pour avoir une machine virtuelle Windows pleinement exploitable pour mes (rares) besoins Windows de travail !

Bizarrement, ces difficultés n'existent pas avec une quelconque distribution GNU/Linux virtualisée (sauf cas technique bien spécifique à la distribution).

Notez que tous mes essais partent depuis une distribution GNU/Linux (Debian 8 Jessie, Mageia 5, Fedora 25, Manjaro). Pour l'anecdote, naviguant plus ou moins entre ces distributions, j'utilisais la version officielle de VirtualBox sous Mageia tandis que c'était la version fournie par le gestionnaire de paquet pour les autres. Il est donc possible que certaines difficultés n'existent pas en utilisant VirtualBox sous Windows natif (petits chanceux).

Je me suis aussi rendu compte que la version de VirtualBox fournie par le gestionnaire de paquetages de Manjaro ne pose aucunement ces problèmes. Manjaro (ces mainteneurs) utilisent directement le binaire officiel VirtualBox sans le trafiquer.

1 - Avec Windows virtualisé

En utilisant une quelconque distribution GNU/Linux, si vous avez installé VirtualBox avec le gestionnaire de paquetages de ladite distribution, même en installant les Additions Invitées dans la machine virtualisée, la gestion de l'USB est bridée. Ou plutôt impossible de fait ! La seule version alors supportée est la version USB 1.0 qui rend de fait inutilisable tout périphérique USB car, de plus, impossible d'avoir le bon pilote USB pour Windows.

Vous devrez désinstaller VirtualBox version "Votre_Distribution" pour pouvoir installer la version officielle. Voir  chapitre 4 plus bas pour savoir comment installer le binaire officiel.

Voici donc la procédure que j'ai expérimenté à force de tests et de recherches :
  1. Installer les Additions Invitées. En cas de difficultés, si c'est une machine déjà utilisable, mettez à jour éventuellement ces Additions Invitées.
  2. Éteindre la machine virtuelle.
  3. Installer plusieurs filtres génériques ("Nouveau filtre NN") soit le premier en bleu de la liste disponible. Si on installe un filtre précis, le second de la liste avec une croix verte, il y a possibilité de bloquer le démarrage de la machine si le périphérique en question est physiquement absent. Soyez vigilant avec les filtres bien ciblés (à la croix verte).
  4. Cocher Contrôleur USB 2.0 ou 3.0. Ici, avec VirtualBox en version "Votre_Distribution", vous ne pouvez cocher que le Contrôleur USB 1.0 puisque vous aurez un message d'erreur avec les version 2.0 et 3.0 (ce qui prouve bien un bridage des versions non officielles VirtualBox !) tandis que la machine virtuelle ne pourra démarrer. D'autre part, sous Windows, impossible de lire une quelconque clef USB avec un connecteur USB 1.0.
  5. Démarrer la machine virtuelle.
  6. Connecter le périphérique USB sur la machine virtuelle.
  7. Utilisez votre périphérique USB.

2 -  Avec une distribution GNU/Linux virtualisée

En règle générale, si les Additions Invitées ont préalablement été correctement installées, même si elles sont en version 4.3.28 et que VirtualBox soit en version 5.1.18, vous pourrez voir et gérer correctement vos périphériques USB.

Notez toutefois qu'après avoir installé les Additions Invitées, il faut impérativement redémarrer la machine virtuelle avant de connecter vos USB. Comme avec Windows virtualisé.

D'après mes tests, pour les distributions qui vont suivre, peu importe que VirtualBox soit en version officielle (par l'équipe VirtualBox) ou en version empaquetée par l'équipe de votre distribution. Dans ce cas pas de difficultés (bizarrement). Elles ont juste besoin des Additions Invitées mais pas de l'ajout de filtres USB. Le nom des gagnantes (dans l'ordre alphabétique des plus "traditionnelles")  : Mageia, Manjaro, openSUSE, Ubuntu, PCLinuxOS.

Pour Debian, je n'ai pas pu/su monter correctement ma clef USB, malgré les Additions Invitées, avec ou sans filtres génériques, et l'activation du contrôleur USB 2.0. Toutefois, je n'ai pas réellement insisté. A noter que je n'ai pas testé Debian Testing (Sid) puisque la machine a systématiquement planté (irrécupérable) si on installe les Additions Invitées.

Concernant Fedora, j'ai enfin pu obtenir la pleine gestion de ma clef USB après avoir installé la version officielle de VirtualBox. Et pourtant, alors que VirtualBox est en version 5.1.18, la version des Additions Invitées installée dans Fedora était encore en la 4.3.28 (une "vieille" machine virtuelle que je fais continuellement "monter" en version). Les paramétrages USB de Fedora virtualisée sont uniquement l'activation du contrôleur USB 2.0 et aucun filtre.

3 - Rappel sur la connexion / déconnexion des périphériques USB sous VirtualBox

Le périphérique USB ne peut être connecté simultanément dans la machine virtuelle et le système hôte.

Pour connecter sur la machine virtuelle, passez par le menu VirtualBox "Périphérique" puis "USB" et cochez enfin le périphérique désiré.

Pour déconnecter le périphérique USB de la machine virtuelle, procédez comme sur n'importe quel système afin de ne pas l’abîmer, surtout si c'est un support de stockage. Ensuite, vous pouvez décocher ce périphérique via le menu VirtualBox.

4 - Installer VirtualBox depuis les sources officielles

Pour installer VirtualBox depuis les sources officielles, vous devez préalablement, et impérativement, désinstaller la version installée par votre gestionnaire de paquetages. La procédure diffère selon les distributions. Voici la méthode terminal / console pour les plus usuelles :

  • ArchLinux : # pacman -Rs virtualbox
  • Debian: # apt-get remove virtualbox
  • Fedora : # dnf remove VirtualBox
  • Frugalware : # pacman-g2 -Rc virtualbox
  • Mageia : # urpme virtualbox
  • Manjaro : $ sudo pacman -Rs virtualbox
  • openSUSE : # zypper remove virtualbox
  • OpenMandriva : # urpmi virtualbox
  • Ubuntu : $ sudo apt-get remove virtualbox

Choisissez selon l’architecture de votre machine : de l'amd64 pour du 64 bits et du x86 pour du 32 bits.

J'ai opté définitivement pour le binaire générique (VirtualBox-version-architecture.run). VirtualBox fournit officiellement les versions empaquetées prêtes à l'emploi pour certaines distributions (Debian, Fedora, openSUSE, Ubuntu et OracleLinux) que vous pourrez tester mais je ne sais pas s'il existe de réelles différences avec les paquets officiels de ces mêmes distributions (quid du bridage ?). Je reste donc sur le paquet binaire passe-partout.

Vous devez avoir préalablement installer gcc, make et les sources du noyau.

Voici la procédure sous GNU/Linux :
  1. Téléchargez VirtualBox-version-architecture.run 
  2. Pour éviter les ennuis, je vous recommande de le placer dans un dossier ayant un nom sans espace ni caractère spécial tel que le dossier Bureau.
  3. Rendez exécutable le binaire : $ chmod +x 
  4. Prenez les droits root selon la distribution : $ su 
  5. Installez :
    1. # sh VirtualBox-version-architecture.run
    2. ou selon la distribution
    3. $ sudo sh VirtualBox-version-architecture.run
  6. L'installation se fait dans /opt/VirtualBox et le binaire de l'application à appeler est VirtualBox.
  7. Notez que le fait d'installer la version N écrasera automatiquement la version N-1.
  8. Ajoutez les utilisateurs au groupe vboxusers (si non déjà fait) :
    1. # usermod -G vboxusers -a toto
    2. ou selon la distribution
    3. $ sudo usermod -G vboxusers -a toto
  9. Installez ou mettez à jour les Extensions VirtualBox. Ici, deux possibilités :.
    1. Soit vous lancez VirtualBox qui va détecter une vieille version puis vous demandera de télécharger les Extensions pour les mettre à jour.
    2. Soit vous téléchargez préalablement les Extensions (dans la même version strictement identique) depuis le site source VirtualBox. Ce sera un fichier nommé Oracle_VM_VirtualBox_Extension_Pack-version.vbox-extpack. Ouvrez alors ce nouveau fichier avec VirtualBox afin de pouvoir disposer des Extensions et pouvoir installer les Additions dans toutes les machines virtuelles.
  10. Utilisez VirtualBox.

5 - Désinstaller le binaire officiel

Pour désinstaller le binaire officiel :
  • # /opt/VirtualBox/uninstall.sh
  • ou selon la distribution
  • $ sudo /opt/VirtualBox/uninstall.sh

6 - Résumé

Depuis une quelconque distribution GNU/Linux, pour avoir une machine virtuelle pleinement fonctionnelle, non bridée :
  • Pour une machine Windows virtuelle, préférez le binaire VirtualBox officiel.
  • Pour une machine GNU/Linux virtuelle, hors Manjaro, peu importe l'origine de VirtualBox.
  • Mention spéciale pour Manjaro où vous pouvez utiliser le paquetage fourni par pacman (le gestionnaire d'application) quelle que soit la machine à virtualiser.

7 - Compléments

Commentaires

Posts les plus consultés de ce blog

Tablette Samsung Galaxy tab 2 10.1 - Episode 2

Je tente toujours de recycler ma vieille tablette. Il y a quelques jours, j'avais tenté d'installer LineageOS vainement . Je retente encore. Plutôt que de passer par une machine virtuelle (et risquer les possibles barrages), je suis passé par un véritable système Windows. 1- Le root J'ai suivi ce tutoriel pour rooter ma tablette.  L'opération s'est terminé correctement. A l'issue de cette manipulation, après un redémarrage de la machine, j'ai installé Root Checker Basic (plusieurs versions existent venant de divers programmeurs) qui, après vérification, me dit que l'appareil .... n'est pas rooté ! Encore ?! J'installe donc SuperSU pour installer le root et redémarre. Après ce nouveau redémarrage, je valide l'autorisation demandée par SuperSU puis relance une vérification avec Root Checker qui m'informe que ..... l'appareil est rooté. Ah ! Enfin ! 2 - Sauvegarder Depuis le Store, j'ai installé TWRP pour faire les s

Recyclage de matéreil Android

Ma vieille tablette Samsung Galaxy Tab 2 10.1 acquise en 2012 était devenue poussive. Depuis longtemps d'ailleurs ! Ayant reçu la nouvelle tablette, j'ai voulu recycler l'ancienne. Au départ, je pensais remplacer Android par Lineage OS. Cette vieille tablette est référencée compatible avec Lineage OS tandis que quelques tutoriaux trainent ici et là. Passer sur Lineage OS : facile ou pas dans mon cas ? ... Pas encore gagné ! Une tablette... Je me sers essentiellement de la tablette pour regarder 4 conneries "trucs" divers sur le Web et, surtout, lire. De la lecture de romans (polars, SF, romans à base historique, action, techno-trillers ...) et autres études variées (sur l'Histoire, la géopolitique ...). Mais aussi des BD via un abonnement chez Izneo et des achats chez comiXology . Il est évidemment possible de lire des BD aux formats CBZ ou CBR (qui ne sont que des archives ZIP ou RAR dont on aura modifié l'extension) grâce à diverses applications

Mageia 8 - Retour

Mageia 8 vient très récemment de sortir. L'occasion de mettre à niveau mes machines. Je dispose d'un PC fixe avec 2 installations Mageia (dont une de "production" et l'autre à des fins de test) ainsi qu'un PC portable MSI.  1- PC fixe Sur ma tour faite sur mesure et datant de 2012, la mise à niveau de Mageia 7 vers 8 s'est mal passée. Mageia 7 était préalablement bien à jour. J'avais suivi le wiki pour faire une mise à niveau en ligne avec urpmi. Je précise que : Je n'ai aucune application compilée sur mesure (que du RPM). Je n'ai aucune application en 32 bits. Je n'ai utilisé qu'un minimum de modules externes pour personnaliser Plasma. J'ai un boot legacy. Mon erreur a été très probablement de ne pas simuler préalablement l'installation (donc aussi de mieux lire attentivement les notes de version !) ce qui m'aurait permis de constater à temps que certains paquets ne pouvaient être installés et mis à niv