LINUX.ORG.RU

Если два драйвера обслуживают одно устройство

 


0

1

Привет, ЛОР! Есть одна тян одно USB-устройство. Оно может обслуживаться двумя драйверами. Для разных целей. Я поясню. Устройство косплеит uart. То есть tty-порт. Но, разумеется, это только интерфейс к внутренней начинке. И соответственно, оно может обслуживаться 2-мя драйверами. Общим, для tty-портов. И специальным драйвером, который уже знает приёмчики команды.

По умолчанию, общий драйвер цепляет устройство первым. Чтобы переключить на второй драйвер, нужно определить usb-path и сделать unbind по найденному пути. Соответственно потом исполнить bind для второго драйвера, но он и сам может найти при загрузке модуля. Просто если уже подцеплено первым драйвером, то он не может его сам перехватить.

В связи с этим вопрос, есть ли в линукс стандартный способ привязки устройств к драйверам и наоборот? Окромя как руками байнд-анбайнд. Блэклист модуля – не выход, так как модуль нужен для других устройств.

★★★★★

Дружище, твой аватар называется udev и такие истории похожи на работу с usb-модемом, который по дефолтю превращаяется в эмулируемый cd-rom

anonymous
()

Пропиши alias на конкретный VID PID usb устройства к конкретному драйверу:

alias usb:v<ID>p<ID>*dc*dsc*dp*ic*isc*ip* драйвер

В /etc/modprobe.d/my-usb-force.conf

kostik87 ★★★★★
()

через alias не работает? Типа

alias usb:v3574p6211d*dc*dsc*dp*ic*isc*ip*in* mt7921u

Еще можно загружать драйвер перед загрузкой драйвера man modprobe.conf /install

vel ★★★★★
()
Ответ на: комментарий от kostik87

Спасибо, я попробую. А нет ли возможности, чтобы даже если модуля нет, не подкинут, то общий драйвер все-равно бы не грузился?

hibou ★★★★★
() автор топика
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария