LINUX.ORG.RU

Как указать драйвер для USB-устройства?


0

2

Имеется устройство, подключаемое через USB, идентификаторы производителя и устройства известны. Я знаю, что с ним нужно работать через модуль ftdi_sio, однако при подключении устройства этот драйвер автоматом не подгружается, нужно поднимать его руками. Я так понимаю, ядро не знает, какой драйвер нужно для этого устройства грузить. Подскажите, где это можно прописать?

Пока я обошелся тем, что прописал этот модуль в /etc/modules, чтобы он автоматически грузился при старте системы. Но это как-то некрасиво - модуль висит в памяти, даже если он не нужен.

Ответ на: комментарий от guilder

Вообще-то, я пробовал через udev, но ничего не получилось. И, вроде бы, udev, срабатывает только после того, как ядро определило устройство. Или я не так понял?

homa_broot ()

Все, разобрался сам. Действительно, все можно сделать через udev.

Если кому интересно. Дано USB-устройство, идентификатор производителя 1111, идентификатор продукта 2222, использует драйвер ftdi_sio. Создаем в /etc/udev/rules.d файлик с именем типа 93-my-usb.rules и добавляем в него правило:

ACTION==«add», SUBSYSTEM==«usb», ATTR{idVendor}==«1111», ATTR{idProduct}==«2222» RUN+=«/sbin/modprobe ftdi_sio vendor=0x1111 product=0x2222»

Замечания:

1. Параметры модуля vendor и product указывать обязательно, иначе драйвер грузится, но устройство не определяется.

2. Идентификаторы производителя и продукта в параметрах модуля указываются с префиксами «0x», а в правиле - без, иначе правило не применяется, а модуль не грузится.

homa_broot ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.