Chargement...
 
Skip to main content

2 - Les distributions et les noyaux


USB 2 et temps réel

France
Bonjour,

J'utilise Fedora 26 avec un noyau temps réel.
Depuis pas mal de temps, j'ai des soucis avec ma carte son.
Quand je la branche sur un port USB 2, j'ai des XRUNS en pagaille et quand je la branche sur le port USB 3, ça passe nickel.
J'ai lu qu'il était possible que le driver USB 3 qui gère aussi l'USB2 pose soucis en temps réel et qu'il fallait le blacklister pour que tous les ports soient gérés par le driver USB2.
Est-ce que quelqu'un a rencontré le problème ?
Est- ce qu'il y aurait des solutions à ce problème (je n'ai pas réussi à blacklister le driver USB3. Je crois qu'il n'est pas compilé sous la forme d'un module sous Fedora). ?

Bonne journée,

Yann
France
(je n'ai pas réussi à blacklister le driver USB3. Je crois qu'il n'est pas compilé sous la forme d'un module sous Fedora). ?


De mémoire (à vérifier), les modules pour la gestion de l'USB sont les *hci.

Si tu fais un
Copy to clipboard
lsmod|grep hci
ça te donne quoi ?
France
Ca donne ça:


$ lsmod | grep pci
sdhci_pci 32768 0
sdhci 49152 1 sdhci_pci
mmc_core 159744 2 sdhci,sdhci_pci


La carte son n'est pas branchée.
France
Arf, pas de bol, tu sembles avoir raison.

Il me semble (à vérifier) que les modules de gestion de l'usb sont :
  • xhci_hcd : usb 3.0
  • ehci_hcd : usb 2.0
  • ohci_hcd : usb 1.1
  • uhci_hcd : module usb universel (probablement un module de base nécessaire aux 3 autres, ou un truc du genre)

tu peux avoir des infos les concernant avec la commande
Copy to clipboard
modinfo *hci_hcd
(en remplaçant le * par la lettre adéquate)

Du coup, si Fedora ne les compile pas en tant que module, mais en dur dans le noyau, peut être t'est-il possible de recompiler un noyau en les mettant en module ? ou bien en désactivant l'usb 3.0 complètement ?

Peut être que tu peux vérifier leurs présences dans le noyau ainsi que vérifier s'ils y sont compilés en dur ou en module en regardant dans le fichier de "config" de ton noyau. Je ne sais pas où il se trouve sur une Fedora (et donc, il faut probablement adapter le nom et le chemin), sur LibraZiK-2, je peux faire ça pour voir ces infos :
Copy to clipboard
cat /boot/config-4.9.0-5-lzk-bl-amd64 |grep HCI


En espérant que ça aide.
France
Le cat sur /boot/config:

Copy to clipboard
CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_PCI=y CONFIG_USB_XHCI_PLATFORM=m CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_PCI=y # CONFIG_USB_EHCI_HCD_PLATFORM is not set CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PCI=y # CONFIG_USB_OHCI_HCD_PLATFORM is not set CONFIG_USB_UHCI_HCD=y # CONFIG_USB_WHCI_HCD is not set



A quoi correspond sdhci et sdhci_pci:

Copy to clipboard
filename: /lib/modules/4.14.14-200.fc26.x86_64/kernel/drivers/mmc/host/sdhci.ko.xz license: GPL description: Secure Digital Host Controller Interface core driver description: Secure Digital Host Controller Interface PCI driver author: Pierre Ossman



Donc, ça n'a pas grand chose à voir avec l'USB.

Je fais un grep hcd dans dmesg:

Copy to clipboard
$ dmesg | grep hcd [ 1.795262] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 1.806081] usb usb1: Manufacturer: Linux 4.14.14-200.fc26.x86_64 ehci_hcd [ 1.817078] usb usb2: Manufacturer: Linux 4.14.14-200.fc26.x86_64 ehci_hcd [ 1.817322] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 1.817335] uhci_hcd: USB Universal Host Controller Interface driver [ 1.817498] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 1.817543] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 3 [ 1.818647] xhci_hcd 0000:00:14.0: hcc params 0x20007181 hci version 0x100 quirks 0x0000b930 [ 1.818653] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported [ 1.818761] usb usb3: Manufacturer: Linux 4.14.14-200.fc26.x86_64 xhci-hcd [ 1.819264] xhci_hcd 0000:00:14.0: xHCI Host Controller [ 1.819308] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 4 [ 1.819354] usb usb4: Manufacturer: Linux 4.14.14-200.fc26.x86_64 xhci-hcd [ 2.138100] usb 3-1: new full-speed USB device number 2 using xhci_hcd



Je sens effectivement qu'il va falloir que je compile un noyau ...
France
Ça y ressemble.

Par exemple, sur une librazik-2 où les *hci sont compilés en module, j'ai ça :
Copy to clipboard
CONFIG_USB_EHCI_HCD=m CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_PCI=m


Les "m" signifiant "module" en opposition avec les "y" chez toi signifiant "en dur".

Bonne compil' !
France
Pourtant, le truc qui me gène, c'est que les drivers xhci ou ehci n'apparaissent pas dans lsmod.
J'ai pourtant des trucs de connecté sur les ports USB.
Et on voit bien des messages xhci et ehci dans le log du kernel.
France
ycollet écrit:
Pourtant, le truc qui me gène, c'est que les drivers xhci ou ehci n'apparaissent pas dans lsmod.


Ba oui, c'est logique. lsmod indique quels modules sont chargés dans le noyau, mais toi (à priori), les composants xchi/ehci ne sont pas compilés en tant que modules, mais directement en dur dans le noyau.
France
OK, c'est donc pour ça que le blacklistage ne fonctionne pas.
Merci.
J'ai été un peu long à la détente, mais je comprends mieux maintenant.
France
Tiens nous au jus pour la suite.