Linux cdc-acm-driver
Manavendra Nath Manav
mnm.kernel at gmail.com
Thu Mar 1 00:52:09 EST 2012
Hi Johan
On Wed, Feb 29, 2012 at 8:28 PM, Johan Hovold <jhovold at gmail.com> wrote:
> On Sun, Feb 26, 2012 at 04:37:33PM +0100, Stefan Dreyer wrote:
>> Hello Johan,
>>
>> i hope, you can help me. I try to get a barcode-Scanner (Metrologic
>> Focus MS 1690) to work. If i take a look at the Windows driver, this
>> scanner should work in serial-mode as CDC ACM.
>> i have added the device:
>> { USB_DEVICE(0x0c2e, 0x0720), /*Metro Metrologic MS7120 Barcode Scanner
>> (bi-directional serial mode) */
>> },
>>
>> and recompile the module. If i plug the device in, the module cdc-acm is
>> loaded. But no device ttyACM0 appears.
>
> What does lsusb -v say? If it is a cdc-acm device you should not need to
> add the pid/vid to the cdc-acm driver.
>
> What is written to the system logs?
>
>> Is there a possibility to debug the module? I would like to know, what
>> happens.
>
> If your recompiling the module you can enable debugging by changing the
> following "undef"
>
> #undef DEBUG
>
> to "define", or you can enable dynamic debugging (see
> Documentation/dynamic-debug-howto.txt).
>
> Thanks,
> Johan
Sorry for jumping in the middle of the thread, but I too have a
similar problem with Metrologic Focus MS1690 Barcode scanner.
Currently, I am getting the device as bi-directional serial mode but I
want to make it work as a USB HID Keyboard device. In the
manufacturer's manual there is a barcode to configure the device as
such. After this I can see from dmesg that first the device gets
registered as USB HID v1.11 Keyboard, the I guess the scanner power
cycles disconnecting the USB and again gets registered as a new
device.
*** dmesg snip ***
[69818.065741] input: Honeywell Scanning and Mobility Honeywell
Scanning and Mobility Scanner as
/devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/input/input6
[69818.065810] generic-usb 0003:0C2E:0200.0003: input,hidraw2: USB HID
v1.11 Keyboard [Honeywell Scanning and Mobility Honeywell Scanning and
Mobility Scanner] on usb-0000:00:1d.1-1/input0
[69823.804854] usb 7-1: USB disconnect, address 2
[69827.180717] usb 7-1: new low speed USB device using uhci_hcd and address 3
[69827.355585] usb 7-1: New USB device found, idVendor=0c2e, idProduct=0720
[69827.355590] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[69827.355593] usb 7-1: Product: Honeywell Scanning and Mobility Scanner
[69827.355596] usb 7-1: Manufacturer: Honeywell Scanning and Mobility
[root at pe1800xs ~]# lsusb -v
Bus 007 Device 003: ID 0c2e:0720 Metro Metrologic MS7120 Barcode
Scanner (bi-dir ectional
serial mode)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0c2e Metro
idProduct 0x0720 Metrologic MS7120 Barcode Scanner
(bi-directional se rial
mode)
bcdDevice 1.00
iManufacturer 1 Honeywell Scanning and Mobility
iProduct 2 Honeywell Scanning and Mobility Scanner
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 41
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 3 POS USB
bmAttributes 0x80
(Bus Powered)
MaxPower 450mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
** UNRECOGNIZED: 09 21 11 01 00 01 22 3f 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)
[root at pe1800xs ~]# cat /proc/bus/usb/devices
T: Bus=07 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0c2e ProdID=0720 Rev= 1.00
S: Manufacturer=Honeywell Scanning and Mobility
S: Product=Honeywell Scanning and Mobility Scanner
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=450mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E: Ad=02(O) Atr=03(Int.) MxPS= 8 Ivl=10ms
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms
How to make this device work on Linux?
Please note this link http://forums.gentoo.org/viewtopic-t-852806.html
says that "They tracked it down to the scanner registering itself as a
keyboard and then power cycling and registering as a custom POS
device. I contacted the manufacturer and they sent me a barcode
(99940) which when scanned locked the device into USB keyboard mode.
It then worked fine as a standard keyboard."
--
Manavendra Nath Manav
More information about the Kernelnewbies
mailing list