1

I'm running Jessie Lite on a RPi2. When I connect my USB to Serial device it does show up, however the driver is not assigned.

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

The CP210x driver from Silicon Labs seems to be installed:

lsmod

Module                  Size  Used by
cp210x                  9419  0 
usbserial              29964  1 cp210x

Now I did try manual binding without success:

echo -n "1-1.3:1.0" > /sys/bus/usb/drivers/cp210x/bind

write error: No such device

Since I'm fairly new to Linux and I need that thing running, I'd be grateful for suggestions. Side note: I have a little Python script running on a Windows machine that is able to talk to the very device just fine...

The device is there, I can't figure out why it's not been found:

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

Might the additional information from usb-devices help finding the problem?

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)
  • What is the directory listing under /sys/bus/usb/drivers/cp210x ? Is there a new_id file? – jc__ Aug 1 '16 at 18:24
  • There's just bind, module, uevent and unbind. The same goes for usbserial. – Matthias Frei Aug 2 '16 at 19:48
  • Double check the id for your device and try to rebind. (1-1:1.3). – jc__ Aug 2 '16 at 20:39
  • Just passing through today... Here is a help page in my notes: (lwn.net/Articles/143397) – jc__ Aug 2 '16 at 20:44
  • Are you working from a root shell? Remember that sudo echo... will not work. – jc__ Aug 3 '16 at 18:34
1

Add a rule to udev that will automatically load a driver for an USB device.

Information needed:

  • USB device PID / VID numbers. lsusb output. Does not show in tree mode. lsusb -t
  • Device driver modprobe command. /sbin/modprobe usb-storage

Create a udev rule.

Add your own rule file under /etc/udev/rules.d

sudo vi /etc/udev/rules.d/80-serialToUsb_PID-VID.rules

When you add the rule for udev. This will allow udev to automatically load the driver, upon USB insertion, for any device with the pid/vid listed.

  • Replace #PID# with the PID of your device.
  • Replace #VID# with the VID of your device.
  • Replace #DRIVER# with the command to load the module.
  • Replace #SYS# with the location of the driver under the /sys directory.

ACTION=="add", ATTRS{idVendor}=="#VID#", ATTRS{idProduct}=="#PID#", RUN+="#DRIVER#" RUN+="/bin/sh -c 'echo #PID# #VID# > #SYS#'"

Restart udev

sudo /etc/init.d/udev restart

Attach the device and use dmesg to verify


Here is an example I used for a custom mp3 player.

ACTION=="add", ATTRS{idVendor}=="a000", ATTRS{idProduct}=="a000", RUN+="/sbin/modprobe usb-storage" RUN+="/bin/sh -c 'echo a000 a000 > /sys/bus/usb/drivers/usb-storage/new_id'"

This works on Debian 8, and Ubuntu 14.

You are using Debian lite. So, I'm am not 100% sure this will work for you.

I have a Freescale embedded device, mx23, that uses mdev instead of udev and the procedure is a bit different.

  • For most drivers I have the subdir new_id (like for usb-storage or smc95xx). Also I'm not permitted to make it, nor will it be created automatically when I write the rule like you described?! The PI uses udev though. – Matthias Frei Aug 2 '16 at 20:25
  • new_id is supplied by the driver, not you. Also you may need to sudo su to have permission to echo to bind or new_id. – jc__ Aug 2 '16 at 20:41
  • Replace the ...new_id line with the ...bind command you use. – jc__ Aug 2 '16 at 20:45
  • I tried all of the above - still nothing. Does the added output from the edited question help verify the problem? – Matthias Frei Aug 2 '16 at 21:55
  • Is this supposed to show up as a ttyUSB or other tty? – jc__ Aug 3 '16 at 18:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.