- État Fermée
- Pourcentage achevé
- Type Anomalie
- Catégorie Services locaux → VM
- Assignée à Personne
- Système d'exploitation Tous
- Sévérité Basse
- Priorité Très Basse
- Basée sur la version 4.8.9
- Due pour la version Non décidée
-
Échéance
Non décidée
- Votes
- Privée
Concerne le projet: Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)
Ouverte par dan_73 - 15/05/2024
Dernière modification par mmakassikis - 10/06/2024
Ouverte par dan_73 - 15/05/2024
Dernière modification par mmakassikis - 10/06/2024
FS#39465 - VMs et USB
Bonjour
J’utilise les VMs sur le serveur Delta et je viens de constater que l’on peut pas utiliser simultanément les 2 ports USB (A ou C) sur 2 VMs distinctes et démarrées.
Pour chaque VM on peut associer le ou les ports USB qui seront utilisés : aucun, a, c ou a + c.
Or si je crée 2 VMs en espérant utiliser l’USB A sur la première et l’USB C sur la seconde, je viens de découvrir qu’on ne peut pas démarrer les deux en même temps. Un message d’erreur indique que l’USB est déjà utilisé.
A quoi bon avoir le choix si la sélection n’est pas séparée pour chaque VM ?
C’est bien dommage ça oblige à arrêter l’une ou l’autre alors que les ports sont disponibles et surtout inutilisés.
Y-a-t-il moyen de contourner ou d’y remédier ?
Merci
Chargement...
Activer les raccourcis clavier
- Alt + ⇧ Shift + l Se connecter/Se déconnecter
- Alt + ⇧ Shift + a Ouvrir une tâche
- Alt + ⇧ Shift + m Mes recherches
- Alt + ⇧ Shift + t Rechercher par ID de tâche
Liste des tâches
- o Ouvrir la tâche sélectionnée
- j Déplacer le curseur vers le bas
- k Déplacer le curseur vers le haut
Détails de la tâche
- n Tâche suivante
- p Tâche précédente
- Alt + ⇧ Shift + e ↵ Enter Modifier cette tâche
- Alt + ⇧ Shift + w Surveiller
- Alt + ⇧ Shift + y Fermer cette tâche
Édition de la tâche
- Alt + ⇧ Shift + s Enregistrer la tâche
Bonjour
Alors sincèrement, vu le nombre de tickets d'évolutions (fondées) qui traînent sur ce forum sans aucune réponse de FREE, malheureusement je doute que FREE vous réponde ou commente / argumente votre demande. Je trouve ça malheureux
C'est pourquoi je vais essayer de le faire de la manière la plus pertinente possible afin que tout ceux qui se posent cette questions ait une réponse.
Aussi, je ne travail pas pour Free ou le groupe Iliad Telecom, les informations présentes ici proviennent de mon analyse personnelle et n'engagent que moi.
En effet, vous avez raison.
Quand on essaye de démarrer 2 VM chacune avec un port USB différent, ça ne fonctionne pas et la box retourne :
Alors j'ai regardé la doc développeur présente dans FreeboxOS en cliquant sur le logo Free qui ouvre le menu puis en allant dans la section 'développer'.
Dans la section :
API List > Virtual Machines > VM API
en cherchant le code d'erreur "usb_in_use" on ne trouve pas grand chose, alors j'ai fais une recherche sur l'instruction de l'API qui permet d'assigner les ports USB à telle ou telle VM : "bind_usb_ports"
Et là, la doc est claire, je cite :
bind_usb_ports[] array of enum
List of ports that should be bound to this VM. Only one VM can use USB at given time, whether is uses only one or all USB ports. The list of system USB ports is available in VmSystemInfo. For example: “usb-external-type-a”, “usb-external-type-c”.
Ce n'est clairement pas prévu, et c'est documenté…
Afin de comprendre pourquoi, je vous invite à regarder cette vidéo sur youtube :
https://www.youtube.com/watch?v=t0GSFu0ESD8
À la minute 21'22 vous constaterez que le contrôleur USB3 de la delta est un chipset Texas Instrument de type 'HUB' unique TUSB8020B et gérant les 2 ports USB3, le typeA et le typeC (cf datasheet de Texas Instrument ici : https://www.ti.com/document-viewer/tusb8020b/datasheet
Réaliser du passthru sur ce contrôleur depuis une VM impose d'obtenir "l'accès exclusif" au chipset comme vous pouvez le voir sur le schéma de la partie 1 (Features) de la datasheet ou seul 1 canal existe pour communiquer entre l'ordinateur et le chipset (ici, l'ordinateur représente soit la BOX au quotidien, soit une VM dans le cas ou on passe le contrôleur TUSB8020B à une VM)
Par contre, dommage que la box n'ait pas plus de ports USB car le hub du chipset peut gérer 8 connecteurs USB comme le montre
fait sur le hub dans une VM :
Au niveau du bus PCI Express de la VM, Le périphérique USB QEMU monté sur le bus PCIE à l'intérieur de la VM est en réalité un binding sur les ports USB physiques, et quand on dump le hub comme ci-dessus, on retrouve bien les capabilities présentes sur la datasheet du chipset TUSB8020B. En temps qu'hyperviseur de type 2, QEMU "emule le device" bien qu'en réalité QEMU bind le chipset TUSB8020B au niveau hardware ce qui impose l'accès exclusif à ce chipset depuis le kernel de la VM.
Le point "8.2 Functional Block Diagram" de la datasheet montre que le HUB USB3 est unique et n'a qu'un seul canal de contrôle ce qui rend compliqué voir impossible de pouvoir adresser les 2 ports séparément depuis 2 bus PCIE différents (lire depuis 2 VM)
Donc en terme d'évolutions, il semble compliqué (lire impossible) au niveau firmware de de donner l'accès en passthru à 2 instances différentes (2 VM) sur le même contrôleur et particulièrement sur le chipset Texas Instrument TUSB8020B.
Pour faire ce que vous demandez, je pense qu'il faudrait ajouter un second contrôleur TUSB8020B sur la motherboard de la Freebox Delta afin de pouvoir passer ce second contrôleur à une seconde VM.
PS : Le contrôleur HD3220 de Texas Instrument également présent sur la carte mère de la freebox Delta juste derrière le port USB-typeC ne gère que l'aspect "typeC" et la norme USB-typeC pour le port USB-C (genre des truc spécifiques comme les 15 watts en 'USB Power Delivery', le sens du câble, etc…)
Cordialement
nbanba
Bonjour Nbanba et un grand merci d'avoir pris le temps de me répondre avec autant de détails.
Je vais donc oublier la possibilité d'utiliser ces ports USB en simultané.
Au vu de votre réponse et ne pensant pas en avoir d'autres, je vais fermer cette demande.
Cordialement
Bonjour,
L'analyse de nbanba est correcte