Thanks to mpi@, libusb now has some support for communicating with devices even though they're not attached to ugen(4).
What do people think about removing the UQ_BAD_HID entries in usb_quirks.c which prevents these devices from attaching to uhid(4)? My Liebert UPS is okay, yubikeys can be successfully programmed, and I'll try my wi-spy when I can find it, I wonder if people with other listed devices could check and see if the listing is still necessary? Index: usb_quirks.c =================================================================== RCS file: /cvs/src/sys/dev/usb/usb_quirks.c,v retrieving revision 1.66 diff -u -p -r1.66 usb_quirks.c --- usb_quirks.c 31 Jan 2012 21:13:32 -0000 1.66 +++ usb_quirks.c 9 Aug 2012 14:23:41 -0000 @@ -109,59 +109,6 @@ const struct usbd_quirk_entry { { USB_VENDOR_NEC, USB_PRODUCT_NEC_PICTY920, ANY, { UQ_BROKEN_BIDIR }}, { USB_VENDOR_NEC, USB_PRODUCT_NEC_PICTY800, ANY, { UQ_BROKEN_BIDIR }}, - { USB_VENDOR_APC, USB_PRODUCT_APC_UPS, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APC, USB_PRODUCT_APC_UPS5G, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE_3G, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE_3GS, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE_4_CDMA, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE_4_GSM, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE_4S, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_TOUCH, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_TOUCH_2G, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_TOUCH_3G, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPOD_TOUCH_4G, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPAD, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPAD2, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_APPLE, USB_PRODUCT_APPLE_SPEAKERS, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C100, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C120, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C800, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C900, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C1100, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C1250EITWRK, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C1500EITWRK, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6H375, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_CYBERPOWER, USB_PRODUCT_CYBERPOWER_1500, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_CYBERPOWER, USB_PRODUCT_CYBERPOWER_OR2200, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_SISPM_OLD, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_SISPM, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_SISPM_FLASH, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_DELL2, USB_PRODUCT_DELL2_UPS, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_HP, USB_PRODUCT_HP_T750, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_HP, USB_PRODUCT_HP_T1000, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_HP, USB_PRODUCT_HP_T1500, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_HP, USB_PRODUCT_HP_RT2200, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_HP, USB_PRODUCT_HP_R1500G2, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_HP, USB_PRODUCT_HP_T750G2, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_IDOWELL, USB_PRODUCT_IDOWELL_IDOWELL, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_ITUNER, USB_PRODUCT_ITUNER_USBLCD20x2, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_LIEBERT, USB_PRODUCT_LIEBERT_UPS, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_LIEBERT2, USB_PRODUCT_LIEBERT2_PSA, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_MECANIQUE, USB_PRODUCT_MECANIQUE_WISPY, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY24I, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS1, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS2, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_MUSTEK2, USB_PRODUCT_MUSTEK2_PM800, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_OMRON, USB_PRODUCT_OMRON_BX35F, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_OMRON, USB_PRODUCT_OMRON_BX50F, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_TENX, USB_PRODUCT_TENX_MISSILE, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_TERRATEC, USB_PRODUCT_TERRATEC_AUREON, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_TI, USB_PRODUCT_TI_MSP430, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_VELLEMAN, USB_PRODUCT_VELLEMAN_K8055, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_DREAMLINK, USB_PRODUCT_DREAMLINK_ULMB1, ANY, { UQ_BAD_HID }}, - { USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E220, ANY, { UQ_NO_STRINGS }}, { USB_VENDOR_SHANTOU, USB_PRODUCT_SHANTOU_DM9601, ANY, { UQ_NO_STRINGS }}, { USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2573, ANY, { UQ_NO_STRINGS }},