Recently I've tried to connect an USB to RS232 adapter. In Ubuntu Edgy
6.10 and in Windows XP the cable worked flawlessly. However, in Ubuntu
Feisty 7.04 and in Ubuntu Gutsy 7.10 the system was automatically
removing the device, rendering /dev/ttyUSB0 inaccessible. In the end I
narrowed it down to brltty package, and specifically one line in
/etc/udev/rules.d/85-brltty.rules - details follow.


A quick look in the system log:

$ sudo tail -f /var/log/messages
Sep 14 18:16:51 fine-2 kernel: [ 1409.164000] usb 2-1: new full speed USB 
device using ohci_hcd and address 3
Sep 14 18:16:51 fine-2 kernel: [ 1409.392000] usb 2-1: configuration #1 chosen 
from 1 choice
Sep 14 18:16:51 fine-2 kernel: [ 1409.396000] ftdi_sio 2-1:1.0: FTDI USB Serial 
Device converter detected
Sep 14 18:16:51 fine-2 kernel: [ 1409.396000] drivers/usb/serial/ftdi_sio.c: 
Detected FT232BM
Sep 14 18:16:51 fine-2 kernel: [ 1409.396000] usb 2-1: FTDI USB Serial Device 
converter now attached to ttyUSB0
Sep 14 18:16:51 fine-2 kernel: [ 1409.600000] usb 2-1: usbfs: interface 0 
claimed by ftdi_sio while 'brltty' sets config #1
Sep 14 18:16:51 fine-2 kernel: [ 1409.604000] ftdi_sio ttyUSB0: FTDI USB Serial 
Device converter now disconnected from ttyUSB0
Sep 14 18:16:51 fine-2 kernel: [ 1409.604000] ftdi_sio 2-1:1.0: device 
disconnected
Sep 14 18:18:52 fine-2 kernel: [ 1529.388000] usb 2-1: USB disconnect, address 3

$ lsusb
Bus 003 Device 001: ID 0000:0000  
Bus 004 Device 001: ID 0000:0000  
Bus 002 Device 006: ID 0403:6001 Future Technology Devices International, Ltd 
8-bit FIFO
Bus 002 Device 001: ID 0000:0000  
Bus 001 Device 001: ID 0000:0000  

The line mentioning 'brltty' looked suspicious, so I did a little search
with the exact error message:

Google: "usbfs: interface 0 claimed by ftdi_sio while 'brltty' sets config #1"
* 
http://www.google.pl/search?hl=pl&q=usbfs%3A+interface+0+claimed+by+ftdi_sio+while+%27brltty%27+sets+config+%231


Interesting results - from what I could tell, all the answers suggested the 
removal of brltty package.

However, I started noticing something interesting with regard to USB
VendorID+ProductId combinations, namely 0403:6001. Device that I posess
had exactly the same characteristics. Here are the places describing the
same problem:

* http://www.mail-archive.com/linux-usb-
[EMAIL PROTECTED]/msg56580.html

FTDI UM245R
Vendor Id: 0403
Product Id: 6001

* http://dub.net.nz/hal

FT232BM
/org/freedesktop/Hal/devices/usb_device_403_6001_FTCXA3R6

* https://answers.launchpad.net/ubuntu/+source/gnome-
panel/+question/7438

Google: "linux usbserial"
* http://www.google.pl/search?hl=pl&q=linux+usbserial

* http://ftdi-usb-sio.sourceforge.net/

FTDI_SIO
Vendor=0403 ProdID=8372   (ok, this is different)

FT8U232AM
Vendor=0403 ProdID=6001

245 USB <-> Serial
Vendor=0403 ProdID=6001


Finally I checked the brltty package itself, and looked for its udev rules:

$ dpkg -L brltty | grep udev
/etc/udev
/etc/udev/rules.d
/etc/udev/rules.d/85-brltty.rules

Now for the interesting part:

$ grep 6001 /etc/udev/rules.d/85-brltty.rules
SYSFS{idVendor}=="0403", SYSFS{idProduct}=="6001", RUN+="/lib/brltty/brltty.sh 
-b ht -d usb:"

And to give it more context:

$ grep -B3 -A3 6001 /etc/udev/rules.d/85-brltty.rules

# HandyTech
SYSFS{idVendor}=="0921", SYSFS{idProduct}=="1200", RUN+="/lib/brltty/brltty.sh 
-b ht -d usb:"
SYSFS{idVendor}=="0403", SYSFS{idProduct}=="6001", RUN+="/lib/brltty/brltty.sh 
-b ht -d usb:"

# Papenmeier
SYSFS{idVendor}=="0403", SYSFS{idProduct}=="f208", RUN+="/lib/brltty/brltty.sh 
-b pm -d usb:"


After I placed a # comment at the beginning of line containing 0403:6001 
combination and killed the running brltty daemon, my USB <-> RS232 converter 
started to work!

$ grep 6001 /etc/udev/rules.d/85-brltty.rules
# SYSFS{idVendor}=="0403", SYSFS{idProduct}=="6001", 
RUN+="/lib/brltty/brltty.sh -b ht -d usb:"

$ ps axfu | grep brltty
root     12403  0.0  0.1   2892   764 pts/1    S+   18:54   0:00          \_ 
grep brltty
root      5720  0.0  0.1   1960   800 ?        S<s  17:56   0:02 /sbin/brltty 
-P /var/run/brltty -b ht -d usb:

$ sudo killall brltty

Now after inserting the converter I got a working /dev/ttyUSB0 device:

$ sudo tail -f /var/log/messages
Sep 14 18:55:36 fine-2 kernel: [ 3727.712000] usb 2-1: new full speed USB 
device using ohci_hcd and address 9
Sep 14 18:55:37 fine-2 kernel: [ 3727.940000] usb 2-1: configuration #1 chosen 
from 1 choice
Sep 14 18:55:37 fine-2 kernel: [ 3727.944000] ftdi_sio 2-1:1.0: FTDI USB Serial 
Device converter detected
Sep 14 18:55:37 fine-2 kernel: [ 3727.944000] drivers/usb/serial/ftdi_sio.c: 
Detected FT232BM
Sep 14 18:55:37 fine-2 kernel: [ 3727.944000] usb 2-1: FTDI USB Serial Device 
converter now attached to ttyUSB0

$ ls -l /dev/ttyU*
crw-rw---- 1 root dialout 188, 0 2007-09-14 18:55 /dev/ttyUSB0

Now for conclusion. It seems like brltty's udev rules contain a line
which obviously interferes with normal mode of operation of USB <->
Serial converters. However, it appears only for USB devices with
idVendor:idProduct combination of 0403:6001. From what I suspect, the
HandyTech Braille reader must simply have a chip with the same converter
used for regular USB <-> Serial adapters.

I'm not sure what to suggest, but it seems that since more and more
laptops doesn't have RS232 connectors, USB to RS232 cables will be used
more often. The 0403:6001 combination is reserved for a generic chip
operating in such adapters. This chip is handled by ftdi_sio kernel
module which is present in most 2.6.x kernels. Since such an adapter
worked up to Ubuntu 6.10 and suddenly stopped working since Ubuntu 7.04
I consider this a bad regression. The 0403:6001 id is not used only for
this device, but is more generic than that. I admit that this is a
special corner case, however HandyTech Braille reader seems to
incorporate such a generic USB <-> Serial converter. It's not fair to
both sides, impaired users and users of USB/RS232 adapters, but in the
end it's the HandyTech that is responsible for not taking care of
obtaining unique USB id for its product.

Please, update the brltty's udev rules and remove the conflicting
HandyTech device.

-- 
 FTDI USB Serial Device converter disconnects
https://bugs.launchpad.net/bugs/122834
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to