Bonjour
Pour une démonstration, je dois mettre en place plusieurs XPs virtualisés sur un seul ordinateur. L'utilisateur dois pouvoir se connecter en selectionnant sur quel XP virtualisé il veut travailler. Un fois connecté seul le XP sur la machine virtuelle sélectionnée démarre en mode plein écran. Lorsque que l'on ferme le XP virtualisé, on revient au login de l'hôte.
Les applications et OS utilisés sont:
Ubuntu Karmic Koala comme hôte
VirtualBox 3.1.2 comme machine virtuel (Pas la version OSE)
XP SP3 comme invités
Je n'entrerai pas dans les détails de la configuration de ma démonstration, mais si quelqu'un a des questions, ca me feras plaisir de l'aider.
Le tout fonctionne à merveille sauf un petit problème, je dois me connecter en administrateur pour administrer toute nouvelle clé USB pour qu'elle soit reconnue dans les XPs invités. Une fois reconnue, cette clé peut être utilisé par tous les utilisateurs sur les XPs virtualisés sans problème. J'aimerais que les nouvelles clés USB soit automatiquement reconnues dans les XPs virtualisés quand celles-ci sont branchées. J'ai trouvé un début de solution sur le net que je vais vous expliquer.
Premièrement je dois ajouter une règle udev qui permet d'éxecuter un script a chaque clé USB inserrée.
Ensuite je dois créer ce script qui seras éxecuté a chaque nouvelle clé USB insérée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DRIVERS=="usb-storage", IMPORT{program}="/lib/udev/usb_id --num-info --export %p", RUN+="/etc/udev/vboxusb.sh"
Ce script fonctionne à merveille sauf à la ligne avec VBoxManage. VBoxManage me retourne l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 #!/bin/sh attach_storage() { set `/usr/sbin/lsusb -d ${ID_VENDOR}:${ID_MODEL}| sed 's/:.*//g'` while [ ! -z "$1" ]; do case $1 in [Bb]us) shift; BUSID=$1; shift;; [Dd]evice) shift; DEVICEID=$1; shift;; *) shift;; esac done ADDRESS=/proc/bus/usb/$BUSID/$DEVICEID set `ps ax -f | grep VBoxSDL | grep -v grep` NAME=$1 while [ ! -z "$1" ]; do case $1 in --startvm) shift;VM=$1;; *) shift;; esac done if [ ! -z "$ADDRESS" ]; then su - $NAME -c "VBoxManage controlvm $VM usbattach $ADDRESS" > /etc/udev/test.txt 2> /etc/udev/error.txt fi } case $DEVNAME in /dev/sd[a-z][1-9]) attach_storage; ;; /dev/sd[a-z]) attach_storage; ;; esac
Si quelqu'un a une solution pour règler ce problème, ca serais le bienvenue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 VirtualBox Command Line Management Interface Version 3.1.2 (C) 2005-2009 Sun Microsystems, Inc. All rights reserved. ERROR: Could not find a USB device with address '/proc/bus/usb/001/005' Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component Host, interface IHost, callee nsISupports Context: "FindUSBDeviceByAddress(Bstr(a->argv [2]), dev.asOutParam())" at line 553 of file VBoxManageControlVM.cpp
J'ai trouvé un autre problème en écrivant ces lignes, mais je crois que c'est plus un problème de udev, je le posterai dans le forum approprié si c'est le cas. Lors du démarrage de l'hôte, udev ne charge pas ma règle, je dois donc redémarrer udev. Mais si je redémarre udev, lorsque je me déconnecte d'un XP en machine virtuel, je perd le controle du clavier et de la souris (il sont tous les 2 en USB). je suis bon alors pour un redémarrage de l'hôte.
Merci
Partager