NAME¶
usb_quirk
—
USB quirks module
SYNOPSIS¶
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):
DESCRIPTION¶
The
usb_quirk
module provides support for
dynamically adding and removing quirks for USB devices with
usbconfig(8).
General quirks:¶
- 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_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
USB Mass Storage quirks:¶
- 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
3G Datacard (u3g) quirks:¶
- 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
See
/sys/dev/usb/quirk/usb_quirk.h for the
complete list of supported quirks.
EXAMPLES¶
After attaching a
u3g
device which appears as
a USB device on
ugen0.3:
usbconfig -d ugen0.3 add_quirk UQ_MSC_EJECT_WAIT
SEE ALSO¶
usbconfig(8)
HISTORY¶
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⟩.