Hi Stefan On Thu, Mar 1, 2012 at 5:48 PM, Manavendra Nath Manav <mnm.kernel@xxxxxxxxx> wrote: > On Thu, Mar 1, 2012 at 3:18 PM, Manavendra Nath Manav > <mnm.kernel@xxxxxxxxx> wrote: >> On Thu, Mar 1, 2012 at 1:57 PM, Stefan Dreyer >> <stefan.dreyer@xxxxxxxxxxxxxxxx> wrote: >>> Hi, >>> >>> allthough the answer is offtopic for cdc-acm-driver, i will answer, because >>> maybe it helps other people in future. >> >>> 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@pe1800xs serial]# modinfo metro-usb.ko >> filename: metro-usb.ko >> description: Metrologic Instruments Inc. - USB-POS driver >> author: Aleksey Babahin <tamerlan311@xxxxxxxxx> >> 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@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@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@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@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 > --- >> MODULE_VERMAGIC_MODULE_UNLOAD MODULE_ARCH_VERMAGIC > > Is 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@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@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@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 _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies