 
| Main index | Section 4 | Options | 
Alternatively, to load the module at boot time, place the following line in loader.conf(5):
usb_quirk_load="YES"
| UQ_AUDIO_SWAP_LR | |
| swap left and right channels | |
| UQ_AU_INP_ASYNC | |
| input is async despite claim of adaptive | |
| UQ_AU_NO_FRAC | |
| do not adjust for fractional samples | |
| UQ_AU_NO_XU | |
| audio device has broken extension unit | |
| UQ_AU_VENDOR_CLASS | |
| audio device uses vendor class to identify itself | |
| UQ_AU_SET_SPDIF_CM6206 | |
| audio device needs special programming to enable S/PDIF audio output | |
| UQ_BAD_ADC | |
| bad audio spec version number | |
| UQ_BAD_AUDIO | |
| device claims audio class, but is not | |
| UQ_BROKEN_BIDIR | |
| printer has broken bidir mode | |
| UQ_BUS_POWERED | |
| device is bus powered, despite claim | |
| UQ_HID_IGNORE | |
| device should be ignored by hid class | |
| UQ_KBD_IGNORE | |
| device should be ignored by kbd class | |
| UQ_KBD_BOOTPROTO | |
| device should set the boot protocol | |
| UQ_UMS_IGNORE | |
| device should be ignored by ums class | |
| UQ_MS_BAD_CLASS | |
| does not identify properly | |
| UQ_MS_LEADING_BYTE | |
| mouse sends an unknown leading byte | |
| UQ_MS_REVZ | |
| mouse has Z-axis reversed | |
| UQ_MS_VENDOR_BTN | |
| mouse has buttons in vendor usage page | |
| UQ_NO_STRINGS | |
| string descriptors are broken | |
| UQ_POWER_CLAIM | |
| hub lies about power status | |
| UQ_SPUR_BUT_UP | |
| spurious mouse button up events | |
| UQ_SWAP_UNICODE | |
| has some Unicode strings swapped | |
| UQ_CFG_INDEX_1 | |
| select configuration index 1 by default | |
| UQ_CFG_INDEX_2 | |
| select configuration index 2 by default | |
| UQ_CFG_INDEX_3 | |
| select configuration index 3 by default | |
| UQ_CFG_INDEX_4 | |
| select configuration index 4 by default | |
| UQ_CFG_INDEX_0 | |
| select configuration index 0 by default | |
| UQ_ASSUME_CM_OVER_DATA | |
| assume cm over data feature | |
| UQ_IGNORE_CDC_CM | |
| ignore cm descriptor | |
| UQ_WMT_IGNORE | |
| device should be ignored by wmt driver | |
| UQ_MSC_NO_TEST_UNIT_READY | |
| send start/stop instead of TUR | |
| UQ_MSC_NO_RS_CLEAR_UA | |
| does not reset Unit Att. | |
| UQ_MSC_NO_START_STOP | |
| does not support start/stop | |
| UQ_MSC_NO_GETMAXLUN | |
| does not support get max LUN | |
| UQ_MSC_NO_INQUIRY | |
| fake generic inq response | |
| UQ_MSC_NO_INQUIRY_EVPD | |
| does not support inq EVPD | |
| UQ_MSC_NO_SYNC_CACHE | |
| does not support sync cache | |
| UQ_MSC_SHUTTLE_INIT | |
| requires Shuttle init sequence | |
| UQ_MSC_ALT_IFACE_1 | |
| switch to alternate interface 1 | |
| UQ_MSC_FLOPPY_SPEED | |
| does floppy speeds (20kb/s) | |
| UQ_MSC_IGNORE_RESIDUE | |
| gets residue wrong | |
| UQ_MSC_WRONG_CSWSIG | |
| uses wrong CSW signature | |
| UQ_MSC_RBC_PAD_TO_12 | |
| pad RBC requests to 12 bytes | |
| UQ_MSC_READ_CAP_OFFBY1 | |
| reports sector count, not max sec. | |
| UQ_MSC_FORCE_SHORT_INQ | |
| does not support full inq. | |
| UQ_MSC_FORCE_WIRE_BBB | |
| force BBB wire protocol | |
| UQ_MSC_FORCE_WIRE_CBI | |
| force CBI wire protocol | |
| UQ_MSC_FORCE_WIRE_CBI_I | |
| force CBI with int. wire protocol | |
| UQ_MSC_FORCE_PROTO_SCSI | |
| force SCSI command protocol | |
| UQ_MSC_FORCE_PROTO_ATAPI | |
| force ATAPI command protocol | |
| UQ_MSC_FORCE_PROTO_UFI | |
| force UFI command protocol | |
| UQ_MSC_FORCE_PROTO_RBC | |
| force RBC command protocol | |
| UQ_MSC_EJECT_HUAWEI | |
| ejects after Huawei USB command | |
| UQ_MSC_EJECT_SIERRA | |
| ejects after Sierra USB command | |
| UQ_MSC_EJECT_SCSIEJECT | |
| ejects after SCSI eject command 0x1b0000000200 | |
| UQ_MSC_EJECT_REZERO | |
| ejects after SCSI rezero command 0x010000000000 | |
| UQ_MSC_EJECT_ZTESTOR | |
| ejects after ZTE SCSI command 0x850101011801010101010000 | |
| UQ_MSC_EJECT_CMOTECH | |
| ejects after C-motech SCSI command 0xff52444556434847 | |
| UQ_MSC_EJECT_WAIT | |
| wait for the device to eject | |
| UQ_MSC_EJECT_SAEL_M460 | |
| ejects after Sael USB commands | |
| UQ_MSC_EJECT_HUAWEISCSI | |
| ejects after Huawei SCSI command 0x11060000000000000000000000000000 | |
| UQ_MSC_EJECT_TCT | |
| ejects after TCT SCSI command 0x06f504025270 | |
| UQ_MSC_DYMO_EJECT | |
| ejects after HID command 0x1b5a01 | |
See /sys/dev/usb/quirk/usb_quirk.h or run "usbconfig dump_quirk_names" for the complete list of supported quirks.
| hw.usb.quirk.%d | |
| The value is a string whose format is: "VendorId ProductId LowRevision HighRevision UQ_QUIRK,... " Installs the quirks UQ_QUIRK,... for all USB devices matching VendorId and ProductId which have a hardware revision between and including LowRevision and HighRevision. VendorId, ProductId, LowRevision and HighRevision are all 16 bits numbers which can be decimal or hexadecimal based. A maximum of 100 variables hw.usb.quirk.0, .1, ..., .99 can be defined. If a matching entry is found in the kernel's internal quirks table, it is replaced by the new definition. Else a new entry is created given that the quirk table is not full. The kernel iterates over the hw.usb.quirk.N variables starting at N = 0 and stops at N = 99 or the first non-existing one. | |
usbconfig -d ugen0.3 add_quirk UQ_MSC_EJECT_WAIT
Enable a Holtec/Keep Out F85 gaming keyboard on ugen1.4:
usbconfig -d ugen1.4 add_quirk UQ_KBD_BOOTPROTO
To install a quirk at boot time, place one or several lines like the following in loader.conf(5):
hw.usb.quirk.0="0x04d9 0xfa50 0 0xffff UQ_KBD_IGNORE"
| USB_QUIRK (4) | August 19, 2017 | 
 
| Main index | Section 4 | Options | 
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
| “ | As soon as we started programming, we found to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs. | ” | 
| — Maurice Wilkes | ||