Bonjour à vous, je me suis rendu compte il y a quelques temps qu'il m'est impossible d'utiliser un périphérique USB dans mes machines virtuelles, clefs, SSD externes, imprimante...
J'ai fais le tour sur les modules Yast sans y trouver de solution. Je n'ai rien trouvé non plus sur l'Internet qui m'apporte une solution.
Mon message d'erreur est toujours le même quelle que soit la distribution installée en MV ou le protocole USB2 ou USB3 ainsi que le périphérique USB) est :
Quelqu'un aurait-il aurait-elle une solution ?
Merci par avance.
@Jules-Marie Bonjour
Si tu lis bien, tu as un problème de permission :
Depuis quand tu n'as plus les droits ? (depuis quand ? c'est a dire, après mise à jour, après changement de distro etc etc)
Tu es sur quel distro ? TW, Leap, Scrowoll, etc etc
Si vous êtes sur Virtualbox, il faut aller (sur votre distribution) dans Yast->Sécurité et utilisateurs-> Gestion des groupes et utilisateurs->votre login. Cliquez en bas sur modifier puis "details" et dans la colonne de droite sur "vboxusers".Ceci fait, il faut redémarrer et quand vous lancerez votre machine virutelle vous verrez apparaître dans "Périphériques" la liste des périphériques attachés.
@sobkowiak bonsoir
Il est sur kvm qemu, qui utilise "spice" on le voit dans le message :
Chaque hyperviseur a son
propre protocole
Donc il n'est pas sur Virtualbox.
Bonjour à tout le monde.
Merci à vous qui m'avez répondu.
@Yoman : Oui, je pense aussi que c'est un problème de droits, pour ça justement je n'ai hélas pas de «point de départ» précis à donner, je ne me suis rendu compte que récemment de ce problème, n'ayant bêtement pas pensé à tester l'USB après l'installation des machines virtuelles.
Mais je pense que ce souci date de l'installation de mon système, il me semble mi-septembre.
Je suis sur SlowRoll.
Pour les machines virtuelles, installées dans Virtual Machine Manager, j'ai Fedora, Solus, Mint, Ubuntu et Windows 11.
L'USB 2 ou 3, ne fonctionne pas quelle que soient les distributions en MV.
@sobkowiak : comme l'a précisé Yoman, je n'utilise pas Virtual Box, mais Virtual Machine Manager que j'utilisais déjà dans la Alma Linux installée avant cette SlowRoll.
Je n'avais rien eu à faire pour avoir l'USB dans les machines virtuelles, une fois dans ma machine virtuelle je n'avais qu'à brancher une clef USB ou un SSD externe pour qu'il soit automatiquement monté dans la VM en cours.
C'est ce qui fait que je n'ai pas testé immédiatement l'USB en MV.
J'ai donc été voir dans les modules Yast, mais je n'ai pas su trouver comment et où corriger ce souci.
Merci par avance pour votre aide.
Bonjour
@Jules-Marie,
Dans la console de ta VM, ajoute ta clé USB en tant que périphérique, et non en tant que redirection USB.
Ce que je te dis, je l'ai testé personnellement sur ma Tumbleweed, et ça a fonctionné.
Si ta clé USB est reconnue par Slowroll, qui est l'hôte, elle sera reconnue par le guest, qui est l'invité : ta VM.
Mais peut-être que Slowroll a d'autres limitations... Cependant, étant une Tumbleweed de base, ça devrait fonctionner.
Sinon, au pire, vérifie si tu es dans le groupe kvm :
groups $USER
Bonjour
@Yoman .
La reconnaissance des périphériques USB depuis ma session se fait parfaitement, dès que j'introduit une clef USB ou autre, j'ai le son caractéristique de Gnome qui m'indique l'action et la reconnaissance du périphérique.
Si je suis dans une machine virtuelle c'est à ce moment là que j'ai le message d'erreur, preuve donc que le périphérique est bien vu par la MV. Je n'ai aucun souci avec mon clavier et ma souris qui sont en USB.
J'ai été dans les modules Yast, dans la gestion des utilisateurs et des groupes.
Dans l'onglet «groupe» j'ai deux utilisateurs qui apparaissent.
En premier :
moi - id du groupe 1000 - membres du groupe : moi.
En deuxième :
users - id du groupe 100 - membres du groupe : c'est videJ'ai fait un double clic sur moi, ce qui a ouvert une lista de groupes, tous son décochés.
Sauf erreur de ma part c'est bien KVM qui gère les machines virtuelles, c'est en tout cas ce que j'ai sélectionné dans «logiciels» au moment de l'installation.
J'ai cherché dans la liste de groupe une groupe «kvm», je n'ai rien trouvé, ni d’ailleurs dans la liste de groupes pour users.
J'ai cherché dans la liste des groupes pour users si «moi» apparaissait dans la liste afin de l'ajouter au groupe. Je l'ai effectivement trouvé, j'ai donc coché la case «moi» et validé mon choix.
Instantanément j'ai obtenu l'erreur suivante :
L'ID de groupe sélectionné n'est pas autorisé.
Sélectionnez un nombre entier valide compris entre 1000 et 60000.
Question : users a une id de groupe de 100, est-ce cela qui entraîne cette erreur ? Mais dans ce cas pourquoi la configuration à l'installation est-elle définie à 100 ?
Je loupe donc quelque chose...
J'espère que tu pourras éclairer ma lanterne.
Merci par avance.
@Jules-Marie Il faut y aller par étapes, car on risque de faire des changements inutiles, ou pas nécessaires
Le vrai problème n'est pas le groupe 1000, mais l'absence d'appartenance au groupe kvm.
C'est pour cela qu'il faut précisément répondre à mes questions :
groups $USER
Ne pas faire la commande en
sudoFait moi un copier/coller du retour de ton terminal
Pour Infos
Conséquences :
Avec un UID ≥ 1000 → tu ne peux qu'appartenir à des groupes ayant des GID ≥ 1000
UID = IDENTIFICATION UNIQUE UTILISATEUR
GID = GROUPE UNIQUE DE L'UTILISATEUR
Message d'erreur : "
tu n'es pas pas autorisé"
C'est pour cela que je te dis faisons le diagnostique
étape par étapeRemets dans Yast les UID d'origine que tu as changé
Pour ne pas avoir d'autres problèmes ultérieurs, et tu ne te souviendras pas que tu avais fait ce changement qui n'avait pas fonctionné.
Merci pour ta réponse
@Yoman.
Je m'étais effectivement trompé de manip.
Après démarrage d'une MV, dans la console j'ai cliqué sur le bouton «Afficher les détail du matériel...»
Dans la fenêtre en bas à gauche j'ai cliqué sur «Ajouter un matériel», dans la liste j'ai cliqué sur «Périphérique hôte USB», après sélection de la clef USB j'ai cliqué sur «Terminer».
Et là effectivement j'ai pu utiliser la clef USB dans la machine virtuelle (Fedora 43).
En effet ta solution fonctionne.
Cependant, alors que j'ai démonté proprement la clef USB dans la Fedora en l'éjectant, il s'avère qu'au redémarrage de la même MV, clef absente du port USB j'ai le message d'erreur suivant :
Erreur lors du démarrage du domaine: erreur interne : N'a pas trouvé le périphérique USB 0781:5581
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 67, in cb_wrapper
callback(asyncjob, *args, **kwargs)
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 101, in tmpcb
callback(*args, **kwargs)
~~~~~~~~^^^^^^^^^^^^^^^^^
File "/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 57, in newfn
ret = fn(self, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/object/domain.py", line 1467, in startup
self._backend.create()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib64/python3.13/site-packages/libvirt.py", line 1390, in create
raise libvirtError('virDomainCreate() failed')
libvirt.libvirtError: erreur interne : N'a pas trouvé le périphérique USB 0781:5581
Il faut maintenant que la clef soit présente pour que je puisse utiliser cette VM.
S'il faut aller fouiller à nouveau dans la console pour enlever ce périphérique, le moins que l'on puisse en dire c'est que ça complique sérieusement l'utilisation des MV !
Je comprends ceci d'autant moins qu'avec la Alma Linux que j’utilisais précédemment, de même qu'avec la Fedora 43 installée sur mon ordinateur portable, je n'ai qu'à brancher un périphérique USB quand je suis sur une MV, celui-ci est monté automatiquement, se démonte de même et ne bloque pas la MV quand le port USB est vide. Et je n'ai jamais eu à configurer quoi que ce soit pour ça, d'où mon incompréhension face à ce problème.
Quelle autre manip faut-il faire pour que ça fonctionne simplement, automatiquement et correctement ? Est-ce possible avec Open Suse ?
Pour la commande demandée :
eric@localhost:~> groups $USER
eric : eric
eric@localhost:~>
Il semble donc que je fais bien partie du groupe user.
Merci pour les précisions sur les UID et les GID. Je vais aller étidier ça plus sereinement dès que je le pourrai, il ne faut jamais perdre une occasion de s'instruire. 😉
Je n'ai pas changé les valeurs, quand j'ai vu les erreurs, j'ai cliqué sur «annuler» afin de rien casser.
Bonne soirée Yoman.
@Jules-Marie On a trouvé le problème important :
Tu n'as que ton groupe personnel eric, et aucun groupe de :
libvirt; kvm; qemu; wheel
Ajoutes :
sudo usermod -a -G libvirt,kvm $USER
Cela va te permettre d'ajouter et d'utiliser des périphériques USB dans virt-manager.
Après je te conseille de supprimer tous les ajouts précédents de clés USB dans la console de ta VM.
Ensuite reboot.
Ensuite lance ta virt-manager normalement, et ajoute ta clé USB en tant que périphérique...
En tous les cas, c'était un vrai problème. Si ça ne fonctionne pas, tu ne supprimes pas la commande que tu as faite.
On verra d'autres configurations.
Bonjour @Yoma, merci pour ta réponse.
J'ai donc supprimé le périphérique USB créé précédemment, ce qui a permis de pourvoir démarrer correctement la machine virtuelle (Fedora).
J'ai ensuite rentré la commande que tu m'as donnée :
localhost:~ # usermod -a -G libvirt,kvm $USER
- Question au sujet de cette ligne : dans ton message tu énumère les groupes libvirt; kvm; qemu; wheel, cependant dans ta commande seuls les deux premiers sont inclus. Est-ce normal, dans ce cas pourquoi ? Ou est-ce un simple oubli ?
De toute façon, après introduction de la commande et un retour au prompt SANS erreur, j'ai donc rebooté le bestiau.
Dans la gestion des groupes avec Yast, rien n'est changé, seul mon user apparaît :
eric@localhost:~> groups $USER
eric : eric
eric@localhost:~>
Est-ce normal ? Je parie que non, car même si effectivement il s'agit d'un oubli pour les deux derniers groupes dont tu parle, il devrait normalement y avoir les deux premiers dans ce retour de commande, vrai ou faux ?
Désolé que les choses ne se passent pas comme prévu.
Je veux préciser deux choses :
1 - La commande pour l'ajout des groupes je l'ai faite en root, je n'ai pas de sudo puisque j'ai activé le compte root à l'installation.
2 - Comme précisé dans mon premier post, j'ai fait l'installation de la virtualisation (KVM) lors de l'installation du système en ajoutant le module depuis l'installeur (Logiciels ==> sélection de KVM pour la virtualisation.
Ceci serait-il à l'origine du souci ? Perso je ne pense pas, mais je peux me tromper. Dans ce cas, si c'est l'origine du problème, c'est un sacré bug !!!
J'attends ton retour, merci.
@Jules-Marie Bonjour
Bien on avance...
Lancer sa session en
root, ce n'est pas du tout conseillé, mais tu dois avoir de bonnes raisons.
Sinon le problème : tu as lancé la commande alors que tu étais en session
root, donc $USER valait "
root", pas "
eric".
Si tu veux rester connecté en
root, tu dois utiliser :
usermod -a -G libvirt,kvm eric
Après cette commande, redémarre et refais :
groups $USER
Tu devrais voir :
Sinon :
qemu : c'était pour kvm en ligne de commade (au cas oû)
et wheel : c'était pour les droits admin/sudo ,mais opensuse le fait directement dans le fichier sudoers (au cas oû aussi)
Je ne les aies pas mis dans la commande , car à ce stade c'était inutile.
Non, je n'ai pas lancé ma cession en root, c'est juste dans le terminal que je me logue en root quand c'est nécessaire. En l'occurrence pour rentrer les commandes nécessitant les privilèges de root.
Tu as raison de rappeler ce principe, je connais des personnes qui s'obstinent, malgré mes avertissements, à le faire...
Mais bien sûr, je suis passé à coté de ça... Merci pour la correction Yoman.
Merci pour ces précisions et explications Yoman.
Donc, après avoir rentré :
usermod -a -G libvirt,kvm eric
et redémarré l'ordi, j'obtiens bien :
eric@localhost:~> groups $USER
eric : eric libvirt kvm
eric@localhost:~>
Du coup il ne me reste plus qu'à tester le résultat avec les machines virtuelles.
Je ferai ça plus tard dans la journée, là je dois partir, mais je tenais à te répondre au plus vite.
Je te fais donc très vite un compte rendu.
Encore merci Yoman.
@Yoman Voilà, j'ai testé le résultat sur les machines virtuelles.
Et j'ai retrouvé le fonctionnement de celles-ci avec les périphériques USB, tels que je l'avais avec la Alma Linux et tel que je l'ai avec la Fedora sur mon portable.
En fait je n'ai rien eu à faire d'autre que de démarrer une machine (la Fedora puisque c'est sur celle-ci que j'avais découvert le problème), puis ensuite connecter une clef USB, celle-ci a été capturée par la MV instantanément, j'ai pu naviguer dans ses dossiers, ouvrir les fichiers, l'éjecter et après retrait de la clef redémarrer la MV sans blocage.
De plus, j'ai également le copier/coller qui fonctionne, ce qui n'était pas le cas mais que j'avais omis afin de ne pas faire un post de plus pour cette chose de moindre importance.
Je vais passer ce sujet en résolu.
Avant cela juste une question si tu permets : Vu que dans ma bourde j'ai ajouté le root aux groupes libvirt et kvm, faut-il faire la manœuvre inverse ? Si oui, comment STP, si non, laisser en l'état ne risque-t-il pas de faire une faille de sécurité ?
Un grand merci à toi Yoman pour ton aide précieuse et tes explications.
@Jules-Marie Bonsoir
Bien heureux que ça fonctionne.
Mais Slowroll est bizarre 🤔...
en matière de sécurité. (pas de group, pas de droits) et ça fonctionne crème pour libvirtd. Tu n'as aucune authentification... et ta clé USB est reconnue
Tu dois certainement lancer virt-manager en "sudo" ?
Tu comprends ma démarche , "
PAS à PAS"
Pour valider le bon fonctionnement sans droit et group, on va supprimer les commandes que je t'ai donné a effectuer
Retrouver eric dans aucun groupe commme auparavantsudo usermod -r -G libvirt,kvm eric
Nettoyer root que tu as faissudo usermod -r -G libvirt,kvm root
pour vérifiergroups eric RESULTAT # → eric : eric
groups root RESULTAT # → root : root
Tu m'as donné du travail 😀, mais c'était très
intéressant, ça fera certainement l'objet d'un article pour mon blog.
N'hésites pas a poster si tu as un souci sur KVM, je l'utilise depuis des années.
Bonjour
@Yoman,
Et moi donc ! 😉
Avant les modifs que tu m'as conseillées, il m'était demandé le mote de passe administrateur (je te rappelle que je n'ai pas de sudo).
Depuis les modifications l'ouverture est directe sans demande de mot de passe.
J'ai annulé ma modification sur root :
usermod -r -G libvirt,kvm root
L'USB fonctionne bien sûr toujours dans les MV, le gestionnaire de MV s'ouvre toujours sans demande de mot de passe administrateur
Par curiosité j'ai fait de même pour le comte utilisateur, là le mot de passe root m'est à nouveau demandé pour l'ouverture de KVM, et sans surprise, les périphériques USB ne fonctionnent plus.
J'ai donc rétabli les groupes pour le compte utilisateur uniquement et ça fonctionne parfaitement, ce qui est le but recherché.
Pour résumer donc, le fonctionnement de l'USB dans KVM peut se faire sans que root fasse partie des groupes libvirt et kvm, par contre il reste bien obligatoire que le compte utilisateur lui en fasse toujours partie.
Oui, et je te remercie encore pour ton temps et ton savoir. Content que tout ceci puisse te donner matière à nourrir ton blog.
Je pense que ceci devrait rendre service à plus d'un, car ça me semble un peu, pour ne pas dire beaucoup, dommage que ce genre de chose ne soit pas configuré dès l'installation, ce qui se fait de plus dans d'autres distributions.
Si OpenSuse Linux veut vraiment être plus adopté, alors il faut passer par une plus grande simplicité d'installation.
Mais ça n'est que mon avis.
Encore merci Yoman.