Renseignez votre adresse e-mail pour obtenir un lien de téléchargement rapide et installer l'application sur votre ordinateur !
Les utilisateurs de VirtualBox de tous niveaux (du débutant au développeur) ont de nombreux scénarios dans lesquels ils ont besoin d'accéder à un périphérique USB à partir de VirtualBox vms via un relais USB. Plus précisément, accéder aux périphériques USB connectés à un ordinateur hôte.
Comment les utilisateurs de vbox effectuent-ils avec succès le relais USB VirtualBox dans les machines virtuelles pour accéder à leurs périphériques matériels USB via Ethernet (ou d'autres connexions réseau)?
Nous y répondrons ci-dessous...
Cet article fournit des instructions étape par étape pour montrer aux utilisateurs de vbox comment activer l'accès au matériel de la carte SD à partir d'une machine invitée Ubuntu Linux VirtualBox sur une machine hôte exécutant les systèmes d'exploitation Windows sur Ethernet (ou toute autre connexion réseau.)
Avant de suivre l'une des étapes ci-dessous, assurez-vous que tous les pilotes sont mis à jour sur toutes les machines participant au relais USB.
Indépendamment de la plate-forme, de l'outil ou du système d'exploitation (VboxManage, Ubuntu, XP, packs d'extension VirtualBox, etc.), les développeurs et les nouveaux utilisateurs de vbox ont besoin que leurs pilotes soient à jour (ou compatibles avec la version du pack d'extension VirtualBox utilisé) pour maximiser le succès passthrough usb.
Étape 1-1: Ouvrez l'invite de commande (ou Windows PowerShell sur les systèmes d'exploitation Windows comme XP Pro) en tant qu'administrateur (par exemple : touche "Windows" + "x". Sélectionnez ensuite "Invite de commande (admin)")
Étape 1-2: Utilisez la commande wmic (ou la commande lsusb sous Linux) pour répertorier les lecteurs de disque. Cela doit être fait avant d'insérer la carte SD dans le PC.
wmic diskdrive list brief
La sortie doit se lire comme suit :
Légende | ID de l'appareil | Modèle | Cloisons | Taille |
SAMSUNG MZFLV256HCHP-000MV | \\.\PHYSICALDRIVE0 | SAMSUNG MZFLV256HCHP-000MV | 3 | 256052966400 |
Étape 1-3: Insérez la carte SD dans la machine et exécutez la même commande qu'auparavant (sur un système d'exploitation Linux, ce serait la commande lsusb pour répertorier les informations concernant les détails spécifiques sur les bus USB, etc.)
Les utilisateurs devraient voir une ligne supplémentaire indiquant l'ID de périphérique de la carte SD. Dans l'exemple suivant, l'ID se lit comme suit: “\\.\PHYSICALDRIVE1“.
Légende | ID de l'appareil | Modèle | Cloisons | Taille |
Generic- USB3.0 CRW -SD USB Device | \\.\PHYSICALDRIVE1 | Generic- USB3.0 CRW -SD USB Device | 2 | 31914086400 |
SAMSUNG MZFLV256HCHP-000MV | \\.\PHYSICALDRIVE0 | SAMSUNG MZFLV256HCHP-000MV | 3 | 256052966400 |
Les développeurs et les utilisateurs de vbox doivent noter: les utilisateurs doivent savoir s'ils utilisent un périphérique USB 3.0 ou un USB 2.0 (EHCI). "EHCI" signifie: “Enhanced Host Controller Interface”.
Étape 2-1: Transférez le dossier dans le dossier d'installation de VirtualBox. Dans l'exemple suivant, ce sera: “C:\Program Files\Oracle\VirtualBox\”.
cd "C:\Program Files\Oracle\VirtualBox\"
Étape 2-2: À l'aide de "VBoxManage.exe", créez le fichier VMDK de la carte SD. Le dernier argument concerne les cartes SD DeviceID (revoyez les étapes 1-1 à 1-3)
.\VBoxManage.exe internalcommands createrawvmdk -filename C:\sdcard.vmdk -rawdisk
\\.\PHYSICALDRIVE1
Si tout va bien, la sortie lira "sdcard.vmdk", puis sera créée dans le dossier racine du lecteur C.
RAW host disk access VMDK file C:\sdcard.vmdk created successfully.
Étape 3-1: en tant qu'administrateur, lancez l'interface graphique de VirtualBox
Étape 3-2: Dans l'interface graphique de VirtualBox, naviguez comme suit : "Paramètres > Stockage"
Étape 3-3: Cliquez sur "Contrôleur : SATA"
Étape 3-4: Cochez la case à côté de "Utiliser le cache d'E/S de l'hôte"
Étape 3-5: Cliquez maintenant sur l'icône "Ajoute un disque dur" (affichée dans l'aide visuelle ci-dessous)
Étape 3-6: Sélectionnez "Choisir un disque existant"
Étape 3-7: Accédez au lecteur C et choisissez le fichier "sdcard.vmdk" (le fichier que nous avons créé à l'étape 2)
Lancez la machine virtuelle et commencez la vérification. Dans cet exemple, cela ressemble à : "/dev/sdb" (image du système d'exploitation Raspbian sur une carte SD de 32 Go).
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 29.8 GiB, 32010928128 bytes, 62521344 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb1d773dc
Dispositif | Démarrage de démarrage | Finir | Secteurs | Taille | Identifiant | Taper |
/dev/sdb1 | 8192 | 96453 | 88262 | 43.1M | c | W95 FAT32 (LBA) |
/dev/sdb2 | 98304 | 31116287 | 31017984 | 14.8G | 83 | Linux |
Malheureusement, lors de la tentative d'utilisation de la carte SD, de nombreuses erreurs se sont produites. Vous trouverez ci-dessous quelques options de dépannage pour le passthrough de la carte SD VirtualBox.
Dépannage Option 1:
L'erreur: "Le cache d'E/S a rencontré une erreur lors de la mise à jour des données sur le support "ahci-0-1" (rc=VERR_ACCESS_DENIED)"
Pour les utilisateurs qui rencontrent l'erreur ci-dessus, revenez à l'étape 2 et assurez-vous que la case "Utiliser le cache d'E/S hôte" est cochée.
Dépannage Option 2
L'erreur: "L'UUID du support ne correspond pas à la valeur stockée dans le registre des supports.
Depuis le dossier d'installation de VirtualBox, exécutez la commande suivante:
.\VBoxManage.exe list hdds
Les utilisateurs auront alors la possibilité de localiser l'UUID dans les détails de l'erreur
UUID: 5b951504-358d-4a6e-bb8f-61be3ec32367
Parent UUID: base
State: inaccessible
Type: normal (base)
Location: C:\Users\max\Desktop\sdcard.vmdk
Storage format: VMDK
Capacity: 0 MBytes
Encryption: disabled
Utilisez la commande ci-dessous (en spécifiant l'UUID) pour supprimer le disque:
.\VBoxManage.exe closemedium disk 5b951504-358d-4a6e-bb8f-61be3ec32367