Linux: как назначить драйвер USB устройству [закрыто]
этот вопрос является двукратным:
1 - как вручную отсоединить драйвер от USB-устройства и подключить другое? Например, у меня есть устройство, которое при подключении автоматически использует драйвер usb-накопителя.
// usbview выход
Vendor Id: xxxx
Product Id: xxxx
...
Number of Interfaces: 2
Interface Number: 0
Name: usb-storage
Number of Endpoints: 2
...
Interface Number: 1
Name: (none)
Number of Endpoints: 2
...
Я не хочу использовать драйвер usb-storage, поэтому у меня есть приложение, работающее на хосте, в котором я использую библиотеку libusb для отсоединения драйвера usb-storage, а затем я заявляю об интерфейсе. Я тогда могу отправляйте данные В и из приложений, запущенных на моем USB-устройстве и в моей хост-системе Linux.
Как вы отсоединяете драйвер вручную вне приложения?
2-Как автоматически назначить драйвер для подключения плагина устройства. В настоящее время у меня есть настройка правила udev для автоматической установки разрешений устройства.
SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", MODE="0666"
могу ли я использовать правила udev для назначения драйверов определенным интерфейсам на USB-устройстве? Например, если бы я хотел, чтобы модуль usbnet использоваться автоматически на интерфейсе 0 вместо usb-накопителя, возможно ли это в udev?
спасибо,
(Я немного смущен тем, как StackExchange работает с разными сайтами или если они все одинаковы. Это вопрос Linux, поэтому он также был опубликован в Unix и Linux. Простите, если он не должен быть размещен здесь, но StackOverflow также обрабатывает Linux, поэтому...)
1 ответов
этот вопрос звучит очень похоже на USB-устройство, содержащее небольшой флэш-диск, который содержит драйвер Windows, но на самом деле это своего рода устройство доступа к сети (модем UMTS приходит мне на ум). Если это так, попробуйте использовать USB_ModeSwitch, который содержит базу данных устройств USB и команды и данные, которые должны использоваться для перемещения устройства из режима "хранение" в режим "доступ к сети". Если устройство не настроено в базе данных, УСБ снифер для Окна может использоваться в Windows для отслеживания трафика USB и извлечения необходимой команды / данных.
автоматизация usb_modeswitch, так что он выполняет это магия, когда вы подключите устройство может быть сделано с помощью правил udev. Если вы используете дистрибутив Fedora или Ubuntu, это обрабатывается для вас при установке пакетов, предоставляющих usb_modeswitch (извините, у меня нет информации о SUSE, но я думаю, что это похоже).В Fedora это пакет use_modeswitch_data, который представляет собой оболочку для usb_modeswitch cmd и необходимые файлы правил.
если вы действительно хотите привязать / отменить привязку USB-устройств к драйверам, см. эта статья LWN. Как корень,echo $usbid > /sys/bus/usb/drivers/usb-storage/unbind
будет развязать USB-устройство с $usbid
из драйвера" usb-storage". Используя ту же команду, но используя bind
вместо unbind
, попытается связать устройство с драйвером. Но имейте в виду, что нет смысла (и не будет работать) связывать устройство, которое действует как запоминающее устройство, с драйвер usbnet.