Linux cdc-acm-driver
From: Manavendra Nath Manav <hidden>
Date: 2012-03-01 13:57:26
Possibly related (same subject, not in this thread)
- 2012-03-06 · Linux cdc-acm-driver · gregkh@linuxfoundation.org (Greg KH)
- 2012-03-05 · Linux cdc-acm-driver · gregkh@linuxfoundation.org (Greg KH)
- 2012-03-02 · Linux cdc-acm-driver · Manavendra Nath Manav <hidden>
- 2012-03-02 · Linux cdc-acm-driver · Manavendra Nath Manav <hidden>
- 2012-03-02 · Linux cdc-acm-driver · gregkh@linuxfoundation.org (Greg KH)
Hi Stefan On Thu, Mar 1, 2012 at 5:48 PM, Manavendra Nath Manav [off-list ref] wrote:
On Thu, Mar 1, 2012 at 3:18 PM, Manavendra Nath Manav [off-list ref] wrote:quoted
On Thu, Mar 1, 2012 at 1:57 PM, Stefan Dreyer [off-list ref] wrote:quoted
Hi, allthough the answer is offtopic for cdc-acm-driver, i will answer, because maybe it helps other people in future.quoted
I can tell you exactly, what is going on. If the scanner switches to ProductId=0720 (0c2e:0720) the scanner is working in Serial-Mode. If you want the scanner let work as serial device, you have to use the driver metro-usb. The manufacturer has this driver, but that one is outdatet and doesn't compile on actual Linux kernel. I found an actual driver, which compiles even with kernel 3.2 <https://gitorious.org/other/metro-usb/commits/master>Thanks a lot for the prompt reply, this should adequately solve my problem. I am able to download the driver source and compile. However, I have run into a trivial module format error. [root at pe1800xs serial]# modinfo metro-usb.ko filename: ? ? ? metro-usb.ko description: ? ?Metrologic Instruments Inc. - USB-POS driver author: ? ? ? ? Aleksey Babahin [off-list ref] author: ? ? ? ? Philip Nicastro license: ? ? ? ?GPL srcversion: ? ? AF4C7DDE2804EBB1578A05F alias: ? ? ? ? ?usb:v0C2Ep0710d*dc*dsc*dp*ic*isc*ip* alias: ? ? ? ? ?usb:v0C2Ep0720d*dc*dsc*dp*ic*isc*ip* depends: ? ? ? ?usbserial vermagic: ? ? ? 2.6.35.6-45.fc14.i686 SMP mod_unload modversions 686 parm: ? ? ? ? ? debug:Print debug info (bool 1=on, 0=off) (bool) parm: ? ? ? ? ? vendor:User specified vendor ID (ushort) (ushort) parm: ? ? ? ? ? product:User specified product ID (ushort) (ushort) [root at pe1800xs serial]# modprobe -f -v metro-usb insmod /lib/modules/2.6.35.6-45.fc14.i686/kernel/drivers/usb/serial/metro-usb.ko FATAL: Error inserting metro_usb (/lib/modules/2.6.35.6-45.fc14.i686/kernel/drivers/usb/serial/metro-usb.ko): Invalid module format [root at pe1800xs serial]# uname -a Linux pe1800xs 2.6.35.6-45.fc14.i686 #1 SMP Mon Oct 18 23:56:17 UTC 2010 i686 i686 i386 GNU/Linux [root at pe1800xs serial]# dmesg [84119.755750] metro_usb: version magic '2.6.35.6-45.fc14.i686 SMP mod_unload modversions 686 ' should be '2.6.35.6-45.fc14.i686 SMP mod_unload 686 ' I am running Fedora14 with "Force module loading option disabled". How can I turn it ON without recompiling the kernel. Or, since I have the souce files of the driver (attached), how can I modify the metro-usb.c file to provide suitable "module version".I am able to load the metro-usb.ko module now and the scanner works perfectly. ?I opened the serial console using bash# serial /dev/ttyUSB0 9600 and can see the 1D and 2D scanned barcodes. Thanks :) [89073.533413] metro-usb 7-1:1.0: Metrologic USB to serial converter. converter detected [89073.533489] usb 7-1: Metrologic USB to serial converter. converter now attached to ttyUSB0 The workaround I did to remove "invalid module format" error is that I modified the vermagic.h file. [root at pe1800xs e518816]# diff /usr/src/kernels/2.6.35.6-45.fc14.i686/include/linux/vermagic.h.old /usr/src/kernels/2.6.35.6-45.fc14.i686/include/linux/vermagic.h.new 32,33c32 < ? ? ? MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS ? ? ? \ < ? ? ? MODULE_ARCH_VERMAGIC ---quoted
? ? ? MODULE_VERMAGIC_MODULE_UNLOAD MODULE_ARCH_VERMAGICIs this the correct way to resolve the error, although it works for me? I am sure there would be other better ways to resolve vermagic conflict errors.
The Metrologic scanner is working perfectly in bi-directional serial
mode. But when I configure it as USB HID Keyboard mode as shown in the
link and keyboard layout as US-English, I am not getting any data from
Scanner. I have opened a terminal and scanned multiple barcodes but no
output on screen.
[root at pe1800xs e518816]# dmesg
[98498.945783] input: Honeywell Scanning and Mobility Honeywell
Scanning and Mobility Scanner as
/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.0/input/input20
[98498.945850] generic-usb 0003:0C2E:0200.0011: input,hidraw2: USB HID
v1.11 Keyboard [Honeywell Scanning and Mobility Honeywell Scanning and
Mobility Scanner] on usb-0000:00:1d.1-2/input0
[root at pe1800xs e518816]# lsusb -v
Bus 007 Device 020: ID 0c2e:0200 Metro Metrologic Scanner
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 0x0200 Metrologic Scanner
bcdDevice 58.88
iManufacturer 1 Honeywell Scanning and Mobility
iProduct 2 Honeywell Scanning and Mobility Scanner
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 3 HID Keyboard
bmAttributes 0x80
(Bus Powered)
MaxPower 450mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 63
Report Descriptors:
** UNAVAILABLE **
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 e518816]# cat /proc/bus/usb/devices
T: Bus=07 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 20 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0c2e ProdID=0200 Rev=58.88
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= 1 Cls=03(HID ) Sub=01 Prot=01 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms
Can you help me in getting data from Scanner in USB HID Keyboard
Emulation mode as this would reduce the burden of using an extra
driver and the application program can read directly from the
emulation keyboard instead of listening to serial device.
Thanks & Regards,
Manavendra Nath Manav