GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
USB_QUIRK(4) FreeBSD Kernel Interfaces Manual USB_QUIRK(4)

usb_quirk
USB quirks module

To compile this module into the kernel, place the following line in your kernel configuration file:
device usb

Alternatively, to load the module at boot time, place the following line in loader.conf(5):

usb_quirk_load="YES"

The usb_quirk module provides support for dynamically adding and removing quirks for USB devices with usbconfig(8).

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_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_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.

The following tunable can be set at the loader(8) prompt before booting the kernel, or stored in loader.conf(5).
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.

After attaching a u3g device which appears as a USB device on ugen0.3:
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"

usbconfig(8)

The usb_quirk module appeared in FreeBSD 8.0, and was written by Hans Petter Selasky <hselasky@FreeBSD.org>. This manual page was written by Nick Hibma <n_hibma@FreeBSD.org>.
August 19, 2017 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 4 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.