Вопрос Модуль ядра загружается автоматически


Когда я делаю rmmod usb_storage а потом dmesg я могу видеть, что вы сказали, что usb_storage снят с регистрации. Но когда я подключаю флешку, а затем dmesg , говорится

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.

Я не понимаю, как он автоматически загружается?


2
2018-03-28 04:42


происхождения




ответы:


В ядре Linux загрузчик модуля проснулся, когда новое устройство обнаружено. Он прошел мимо "modalias", которая идентифицирует устройство и для USB-устройств выглядит примерно так:

usb:v058Fp6387d0103dc00dsc00dp00ic08isc06ip50in00

Вы можете найти свое устройство modalias используя следующую команду:

udevadm info --export-db

Это раздел, связанный с моим 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

Эта строка содержит класс устройства (usb) и информацию, относящуюся к классу (поставщик / продукт / серийный номер, класс устройства и т. д.). Каждый драйвер ядра содержит строку, такую ​​как:

MODULE_ALIAS("usb:...")

Который должен соответствовать usbalias (подстановочные знаки используются для соответствия нескольким устройства). Если модальности соответствуют тому, который поддерживает драйвер, этот драйвер загружается (или уведомляется о новом устройстве, если оно уже есть).

Вы можете видеть поддерживаемые устройства (по modalias) и связанные с ними модули с помощью

more /lib/modules/`uname -r`/modules.alias

Если вы используете grep для драйвера USB-накопителя, вы увидите, что у него есть некоторые которые поддерживаются поставщиком и идентификатором устройства, а также попытаются для поддержки любого устройства с правом (хранилищем) класса, независимо от того, поставщик / устройство.

Источник


2
2018-03-28 13:40



так что, если я хочу отключить модуль? и включить его вручную, когда захочу? Как мне это сделать? - akshay
Добро пожаловать в Ask Ubuntu. Создайте новый вопрос, чтобы охватить эту тему. Когда я ответил на ваш первоначальный запрос, проголосуйте и примите мой ответ (см. askubuntu.com/help/someone-answers). благодаря - Sylvain Pineau
Я отредактировал que. Пожалуйста, помогите мне здесь? - akshay
Извините, но вы не должны расширять сферу своего исходного вопроса. Пожалуйста, откройте второй (со ссылкой на него). Вы всегда найдете людей, желающих ответить на Ask Ubuntu. - Sylvain Pineau
С вашим уровнем репутации вы также можете проголосовать за мой ответ, просто нажмите на знак (^) выше 0, пожалуйста - Sylvain Pineau