usb/180657: [PATCH] Filco Majestouch 2 keyboard recognized as keyboard and mouse
Yamagi Burmeister
yamagi at yamagi.org
Fri Jul 19 16:20:00 UTC 2013
>Number: 180657
>Category: usb
>Synopsis: [PATCH] Filco Majestouch 2 keyboard recognized as keyboard and mouse
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-usb
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Jul 19 16:20:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Yamagi Burmeister
>Release: FreeBSD 9.2-BETA1 r253470
>Organization:
>Environment:
FreeBSD happy.home.yamagi.org 9.2-BETA1 FreeBSD 9.2-BETA1 #0 r253470M: Fri Jul 19 17:22:08 CEST 2013 root at happy.home.yamagi.org:/usr/obj/usr/src/sys/HAPPY amd64
>Description:
The "Filco Majestouch 2" keyboard (this is the version with german layout) is recognized as keyboard and mouse, despite being a normal keyboard without any bells and whistles. As soon as moused(8) opens the corresponding /dev/ums device the keyboard becomes unuseable. The problem can be seen by usbconfig show_ifdrv:
ugen3.3: <USB Keyboard vendor 0x04d9> at usbus3, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (100mA)
ugen3.3.0: ukbd0: <vendor 0x04d9 USB Keyboard, class 0/0, rev 1.10/1.01, addr 3>
ugen3.3.1: ums1: <vendor 0x04d9 USB Keyboard, class 0/0, rev 1.10/1.01, addr 3>
The attached patch solves the problem by adding an UQ_UMS_IGNORE quirk for this keyboard to usb_quirk.ko. I've added a new vendor "FILCO" to usbdevs. It was added at the end of the vendor list cause I was unable to see how that list is sorted. I've also added a new device "MAJESTOUCH2" to the list. A revision range from 0x0000 to 0xffff may be to big. This device has a bcdDevice field of 0x0101.
The complete usbconfig dump_device_desc output:
ugen3.3: <USB Keyboard vendor 0x04d9> at usbus3, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (100mA)
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0110
bDeviceClass = 0x0000
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0008
idVendor = 0x04d9
idProduct = 0x1818
bcdDevice = 0x0101
iManufacturer = 0x0000 <no string>
iProduct = 0x0002 <USB Keyboard>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001
The attached patch is against 9.2-BETA1 r253470.
>How-To-Repeat:
Attach a "Filco Majestouch 2" to the computer and start moused(8) for the new /dev/ums device.
>Fix:
Index: usbdevs
===================================================================
--- usbdevs (revision 253470)
+++ usbdevs (working copy)
@@ -762,6 +762,7 @@
vendor HP2 0xf003 Hewlett Packard
vendor LOGILINK 0xfc08 LogiLink
vendor USRP 0xfffe GNU Radio USRP
+vendor FILCO 0x04d9 Filco
/*
* List of known products. Grouped by vendor.
@@ -1694,6 +1695,9 @@
/* FIC / OpenMoko */
product FIC NEO1973_DEBUG 0x5118 FTDI compatible adapter
+/* Filco */
+product FILCO MAJESTOUCH2 0x1818 Majestouch-2 Keyboard
+
/* Fossil, Inc products */
product FOSSIL WRISTPDA 0x0002 Wrist PDA
Index: quirk/usb_quirk.c
===================================================================
--- quirk/usb_quirk.c (revision 253470)
+++ quirk/usb_quirk.c (working copy)
@@ -128,6 +128,8 @@
USB_QUIRK(MICROSOFT, WLINTELLIMOUSE, 0x0000, 0xffff, UQ_MS_LEADING_BYTE),
/* Quirk for Corsair Vengeance K60 keyboard */
USB_QUIRK(CORSAIR, K60, 0x0000, 0xffff, UQ_KBD_BOOTPROTO),
+ /* Filco Majestouch 2 is sometimes detected as mouse and keyboard */
+ USB_QUIRK(FILCO, MAJESTOUCH2, 0x0000, 0xffff, UQ_UMS_IGNORE),
/* umodem(4) device quirks */
USB_QUIRK(METRICOM, RICOCHET_GS, 0x100, 0x100, UQ_ASSUME_CM_OVER_DATA),
USB_QUIRK(SANYO, SCP4900, 0x000, 0x000, UQ_ASSUME_CM_OVER_DATA),
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-usb
mailing list