Я использую Jessie Lite на RPi2. Когда я подключаю USB к последовательному устройству, он появляется, однако драйвер не назначен.
lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
|__ Port 3: Dev 13, If 0, Class=Vendor Specific Class, Driver=, 12M
Кажется, установлен драйвер CP210x от Silicon Labs:
lsmod
Module Size Used by
cp210x 9419 0
usbserial 29964 1 cp210x
Теперь я попытался связать вручную безуспешно:
echo -n "1-1.3:1.0" > /sys/bus/usb/drivers/cp210x/bind
write error: No such device
Поскольку я довольно новичок в Linux и мне нужно, чтобы эта штука работала, буду благодарен за предложения. Примечание: у меня есть небольшой скрипт Python, работающий на компьютере с Windows, который может нормально общаться с самим устройством ...
Устройство есть, я не могу понять, почему оно не было найдено:
tree /sys/bus/usb/devices/
├── 1-1.3 -> ../../../devices/platform/soc/20980000.usb/usb1/1-1/1-1.3
├── 1-1.3:1.0 -> ../../../devices/platform/soc/20980000.usb/usb1/1-1/1-1.3/1-1.3:1.0
Может ли дополнительная информация usb-devices
помочь найти проблему?
T: Bus=01 Lev=02 Prnt=02 Port=04 Cnt=02 Dev#= 6 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=18ef ProdID=e030 Rev=01.00
S: Manufacturer=Silicon Labs
S: Product=ALC 8500 Expert
S: SerialNumber=3ENAEFJAVJCO9AQQ
C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
/sys/bus/usb/drivers/cp210x
? Есть лиnew_id
файл?sudo echo...
это не сработает.Ответы:
Добавьте в udev правило, которое будет автоматически загружать драйвер для USB-устройства.
Информация, необходимая:
lsusb
выход. Не отображается в режиме дерева.lsusb -t
modprobe
Команда драйвера устройства ./sbin/modprobe usb-storage
Создать правило udev .
Добавьте свой собственный файл правил в
/etc/udev/rules.d
Когда вы добавляете правило для udev. Это позволит udev автоматически загружать драйвер после вставки USB для любого устройства с указанным pid / vid.
/sys
каталоге.ACTION=="add", ATTRS{idVendor}=="#VID#", ATTRS{idProduct}=="#PID#", RUN+="#DRIVER#" RUN+="/bin/sh -c 'echo #PID# #VID# > #SYS#'"
Перезапустите Удев
Подключите устройство и используйте
dmesg
для проверкиВот пример, который я использовал для пользовательского mp3-плеера.
Это работает на Debian 8 и Ubuntu 14.
Вы используете Debian Lite. Так что я не уверен на 100%, что это сработает для вас.
У меня есть встроенное устройство Freescale, mx23, которое использует
mdev
вместо,udev
и процедура немного отличается.источник
udev
хотя.sudo su
разрешение echo для bind или new_id.