Quand je fais rmmod usb_storage
puis dmesg
je peux voir la sortie indiquant que usb_storage est désenregistré. Mais quand je joins un lecteur flash, puis dmesg
, il est dit
Initializing USB Mass Storage driver...
[16565.129239] scsi41 : usb-storage 1-1:1.0
[16565.130134] usbcore: registered new interface driver usb-storage
[16565.130172] USB Mass Storage support registered.
Je ne comprends pas comment ça se charge automatiquement?
Dans le noyau Linux, le chargeur de modules est réveillé lorsqu'un nouveau périphérique est détecté. Il est passé une chaîne " modalias ", qui identifie le périphérique et ressemble à ceci pour les périphériques USB:
usb:v058Fp6387d0103dc00dsc00dp00ic08isc06ip50in00
Vous pouvez trouver votre appareil modalias à l'aide de la commande suivante:
udevadm info --export-db
Voici la section relative à mon lecteur USB:
P: /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0
E: DEVTYPE=usb_interface
E: DRIVER=usb-storage
E: ID_MODEL_FROM_DATABASE=Flash Drive
E: ID_VENDOR_FROM_DATABASE=Alcor Micro Corp.
E: INTERFACE=8/6/80
E: MODALIAS=usb:v058Fp6387d0103dc00dsc00dp00ic08isc06ip50in00
E: PRODUCT=58f/6387/103
E: SUBSYSTEM=usb
E: TYPE=0/0/0
E: USEC_INITIALIZED=530904794
Cette chaîne contient la classe de périphérique (usb) et des informations spécifiques à la classe (fournisseur/produit/numéro de série, classe de périphérique, etc.). Chaque pilote du noyau contient une ligne telle que:
MODULE_ALIAS("usb:...")
Lesquels doivent correspondre aux usbalias (les caractères génériques sont utilisés pour faire correspondre plusieurs appareils). Si les modalias correspondent à ceux pris en charge par le pilote, ce dernier est chargé (ou averti du nouveau périphérique, s'il existe déjà).
Vous pouvez voir les appareils supportés (par modalias) et leurs modules associés avec
more /lib/modules/`uname -r`/modules.alias
Si vous recherchez le pilote de périphérique de stockage usb, vous verrez qu'il contient certains périphériques qu'il prend en charge par fournisseur et par ID de périphérique, et qu'il tentera également de prendre en charge tout périphérique avec la bonne classe (stockage), quel que soit le fournisseur ou le périphérique. .