From owner-freebsd-usb@FreeBSD.ORG Sun Nov 19 16:40:23 2006 Return-Path: X-Original-To: freebsd-usb@hub.freebsd.org Delivered-To: freebsd-usb@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9D25F16A412 for ; Sun, 19 Nov 2006 16:40:23 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.FreeBSD.org (Postfix) with ESMTP id D524643D58 for ; Sun, 19 Nov 2006 16:40:11 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id kAJGeLpn014473 for ; Sun, 19 Nov 2006 16:40:21 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id kAJGeLlB014472; Sun, 19 Nov 2006 16:40:21 GMT (envelope-from gnats) Resent-Date: Sun, 19 Nov 2006 16:40:21 GMT Resent-Message-Id: <200611191640.kAJGeLlB014472@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-usb@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Henrik Brix Andersen Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CC8F716A407 for ; Sun, 19 Nov 2006 16:31:15 +0000 (UTC) (envelope-from brix@fangorn.brixandersen.dk) Received: from ns2.pil.dk (ns2.pil.dk [195.41.47.38]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1911943D70 for ; Sun, 19 Nov 2006 16:31:01 +0000 (GMT) (envelope-from brix@fangorn.brixandersen.dk) Received: from fangorn.brixandersen.dk (osgiliath.brixandersen.dk [87.53.223.189]) by ns2.pil.dk (Postfix) with ESMTP id 819847BB518 for ; Sun, 19 Nov 2006 17:31:10 +0100 (CET) Received: by fangorn.brixandersen.dk (Postfix, from userid 1001) id 0C8D92E030; Sun, 19 Nov 2006 17:31:09 +0100 (CET) Message-Id: <20061119163110.0C8D92E030@fangorn.brixandersen.dk> Date: Sun, 19 Nov 2006 17:31:09 +0100 (CET) From: Henrik Brix Andersen To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: usb/105669: [patch] MetaGeek Wi-Spy device recognized as keyboard X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Henrik Brix Andersen List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Nov 2006 16:40:23 -0000 >Number: 105669 >Category: usb >Synopsis: [patch] MetaGeek Wi-Spy device recognized as keyboard >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-usb >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sun Nov 19 16:40:21 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Henrik Brix Andersen >Release: FreeBSD 6.2-PRERELEASE i386 >Organization: pil.dk >Environment: System: FreeBSD fangorn.brixandersen.dk 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #25: Sun Nov 19 16:47:54 CET 2006 root@fangorn.brixandersen.dk:/usr/obj/usr/src/sys/FANGORN i386 >Description: The USB Wi-Spy spectrum analyzer from MetaGeek LLC [1] is currently recognized by FreeBSD as a USB keyboard, thus preventing the user-space tools [2] from attaching to the device using ugen(4) and libusb. [1] http://www.metageek.net/ [2] http://www.kismetwireless.net/wispy.shtml >How-To-Repeat: Plug in a MetaGeek LLC Wi-Spy device and notice the following entries in dmesg: Nov 19 16:37:23 fangorn kernel: ukbd0: MetaGeek Wi-Spy, rev 2.00/1.00, addr 2, iclass 3/1 Nov 19 16:37:23 fangorn kernel: kbd2 at ukbd0 >Fix: The patch below adds a UQ_KBD_IGNORE flag to usb_quirks.h, similar to the UQ_HID_IGNORE flag. The patch also adds the PID of the Wi-Spy device and utilizes the new UQ_KBD_IGNORE flag to make ukbd(4) ignore this device, leaving it to be handled by ugen(4): Nov 19 17:04:28 fangorn kernel: ugen0: MetaGeek Wi-Spy, rev 2.00/1.00, addr 2 It would be nice if __FreeBSD_version in sys/param.h could be bumped once this patch goes in. This will allow me to test for proper kernel support in my upcoming port of the above mentioned wispy-tools. The patch is againt RELENG_6 but applies cleanly to CURRENT. --- wispy-ukbd-ignore.patch begins here --- --- dev/usb/usbdevs.orig Tue Jul 18 11:01:11 2006 +++ dev/usb/usbdevs Tue Jul 18 11:02:10 2006 @@ -795,6 +795,7 @@ /* Cypress Semiconductor products */ product CYPRESS MOUSE 0x0001 mouse product CYPRESS THERMO 0x0002 thermometer +product CYPRESS WISPY 0x0bad MetaGeek Wi-Spy product CYPRESS FMRADIO 0x1002 FM Radio product CYPRESS SLIM_HUB 0x6560 Slim Hub --- dev/usb/usb_quirks.h.orig Tue Jul 18 11:02:52 2006 +++ dev/usb/usb_quirks.h Tue Jul 18 11:03:56 2006 @@ -55,6 +55,7 @@ #define UQ_ASSUME_CM_OVER_DATA 0x1000 /* modem device breaks on cm over data */ #define UQ_BROKEN_BIDIR 0x2000 /* printer has broken bidir mode */ #define UQ_HID_IGNORE 0x8000 /* device should be ignored by hid class */ +#define UQ_KBD_IGNORE 0x8001 /* device should be ignored by kbd class */ }; --- dev/usb/usb_quirks.c.orig Tue Jul 18 11:02:56 2006 +++ dev/usb/usb_quirks.c Tue Jul 18 11:04:58 2006 @@ -110,6 +110,9 @@ ANY, { UQ_HID_IGNORE }}, { USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS2, ANY, { UQ_HID_IGNORE }}, + /* Devices which should be ignored by ukbd */ + { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_WISPY, + ANY, { UQ_KBD_IGNORE }}, { 0, 0, 0, { 0 } } }; --- dev/usb/ukbd.c.orig Tue Jul 18 11:05:24 2006 +++ dev/usb/ukbd.c Tue Jul 18 11:07:25 2006 @@ -150,6 +150,9 @@ if ((*sw->probe)(unit, (void *)arg, 0)) return (UMATCH_NONE); + if (usbd_get_quirks(uaa->device)->uq_flags & UQ_KBD_IGNORE) + return (UMATCH_NONE); + return (UMATCH_IFACECLASS_IFACESUBCLASS_IFACEPROTO); } --- wispy-ukbd-ignore.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted: