Detection USB sur deux systèmes « apparemment » identiques

Bonjour,

J’ai fait deux installations différentes sur la même machine.
La première est une installation manuelle à l’aide de l’installation Debian, la seconde est une installation faite aussi avec l’installateur Debian, mais avec un preseed.

Résultat : les deux systèmes ont les mêmes paquets installés (liste récupérée avec la commande dpkg --get-selections), à l’exception de la version via le preseed qui a le paquet tftp en plus.
Je suis assez content de la précision de ma configuration automatique, mais, malgré ça, le système installé à la main détecte les périphériques USB alors que celui installé au preseed non (la commande lsusb ne retourne carrément rien).

Quelqu’un sait ce qu’il peut manquer pour que l’USB fonctionne ? Ce n’est quand même pas le paquet tftp qui pose problème ?

Y a-t-il des messages relatifs à l’USB dans les logs du noyau ?

Ah, oui, les logs du noyau.
dmesg | grep -i usb ne renvoie aucune ligne. Je ne sais pas tellement ce que je peux chercher de plus dans les logs.
Au passage, lsmod | grep -i usb ne renvoie rien non plus. Tout ceci devient très curieux.

Les modules pilotes de contrôleurs USB ne s’appellent pas *usb* ; recherche plutôt “hci” comme dans OHCI et UHCI (USB 1) EHCI (USB 2) et xHCI (USB 3). “ahci”, c’est du SATA.

Oui, donc, pour les modules (lsmod | grep -i hci | grep -v ahci) :

hci_uart               98304  0
btbcm                  16384  1 hci_uart
btqca                  16384  1 hci_uart
btintel                16384  1 hci_uart
bluetooth             552960  4 hci_uart,btintel,btqca,btbcm

Et pour les logs (dmesg | grep -i hci | grep -v ahci) :

[    2.920672] Bluetooth: HCI device and connection manager initialized
[    2.920674] Bluetooth: HCI socket layer initialized
[    2.924834] Bluetooth: HCI UART driver ver 2.3
[    2.924835] Bluetooth: HCI UART protocol H4 registered
[    2.924836] Bluetooth: HCI UART protocol BCSP registered
[    2.924837] Bluetooth: HCI UART protocol LL registered
[    2.924837] Bluetooth: HCI UART protocol ATH3K registered
[    2.924838] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    2.924863] Bluetooth: HCI UART protocol Intel registered
[    2.924884] Bluetooth: HCI UART protocol Broadcom registered
[    2.924884] Bluetooth: HCI UART protocol QCA registered
[    2.924885] Bluetooth: HCI UART protocol AG6XX registered
[    2.924886] Bluetooth: HCI UART protocol Marvell registered

Ouai, si tu vois ce que ça peut être…

UART désigne un port série asynchrone comme les ports RS232 pour les anciens modems. Apparemment c’est utilisé par le Bluetooth, mais rien à voir avec l’USB.

lspci -k liste bien les contrôleurs USB mais pas de module associé ?

Ah, si, j’ai ça :

00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)
        Subsystem: CLEVO/KAPOK Computer Sunrise Point-H USB 3.0 xHCI Controller
        Kernel modules: xhci_pci

Du coup, si je charge le module xhci_pci, ça devrait faire quelque chose, non ?
Et bien, effectivement, il a tenté de charger le firmware de la puce bluetooth et mon clavier USB est maintenant utilisable.

Oh, regarde, je viens de faire une petite recherche et je tombe sur le fichier /etc/modprobe.d/blacklist.local.conf qui contient ça :

# Local module settings
# Created by the Debian installer

blacklist xhci_hcd
blacklist xhci_pci

Alors, pourquoi est-ce que l’installateur Debian m’a fait ce coup ? Comment puis-je parer ça ?

Aucune idée. Je n’ai jamais utilisé de preseed.
Tu peux regarder dans le log d’installation qui doit être quelque part dans /var/log, et corréler avec la date de creation/modification du fichier blacklist.

J’ai corrigé ce problème en ajoutant cette ligne à mon preseed :

d-i preseed/late_command string in-target sh -c "rm /etc/modprobe.d/blacklist.local.conf"