Hi there, I am attempting to get data from an Opticon OPN-2001 USB barcode scanner (ID 065a:0009 Optoelectronics Co., Ltd). This device is detected successfully by the 'opticon' USB serial driver, and I get a device at /dev/ttyUSB0. dmesg output follows: usbserial: USB Serial Driver core USB Serial support registered for opticon opticon 5-2:1.0: opticon converter detected usb 5-2: opticon converter now attached to ttyUSB0 usbcore: registered new interface driver opticon When I attempt to write anything to /dev/ttyUSB0, I get an ENOEXEC "Exec format error": opticon ttyUSB0: opticon_write - usb_submit_urb(write bulk) failed with status = -8 I am currently seeing this bug on gentoo with 2.6.30, 2.6.32 and 2.6.34, but it has also been observed on an x64 Ubuntu Lucid machine. The bug has also been described separately in a gentoo forum post: http://forums.gentoo.org/viewtopic-t-719954.html I'm not sure how attempting to write to a device could possibly give rise to an ENOEXEC. My hunch is that drivers/usb/serial/opticon.c is populating the URB incorrectly or otherwise feeding bad information to usb_submit_urb(). I have attached the output from strace while trying to write to the device, my kernel .config, and the output of lspci -vvv. Please let me know if I can help by providing any other information. The device as reported by lsusb -v: Bus 005 Device 006: ID 065a:0009 Optoelectronics Co., Ltd Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x065a Optoelectronics Co., Ltd idProduct 0x0009 bcdDevice 9.00 iManufacturer 1 Optoelectronics Co., Ltd. iProduct 2 Barcode Device iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 5 Device Status: 0x0000 (Bus Powered) scripts/ver_linux: Linux rugen 2.6.34-gentoo-r1 #1 SMP Wed Jul 14 15:26:54 EST 2010 x86_64 Intel(R) Core(TM)2 Duo CPU T9300 @ 2.50GHz GenuineIntel GNU/Linux Gnu C 4.3.4 Gnu make 3.81 binutils 2.18 util-linux 2.16.2 mount support module-init-tools 3.5 e2fsprogs 1.41.9 jfsutils 1.1.14 PPP 2.4.4 Linux C Library 2.10.1 Dynamic linker (ldd) 2.10.1 Procps 3.2.8 Net-tools 1.60 Kbd 1.15 Sh-utils 8.4 wireless-tools 29 Modules Loaded nvidia opticon usbserial bnep snd_pcm_oss snd_mixer_oss snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device rfcomm l2cap fuse snd_hda_codec_realtek sdhci_pci sdhci atl1 snd_hda_intel snd_hda_codec snd_pcm ohci1394 ieee1394 snd_timer btusb rtc snd snd_page_alloc
Attachment:
opticon.strace
Description: Binary data
Attachment:
lspci
Description: Binary data
Attachment:
.config
Description: Binary data