Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
USB_QUIRK(4)		 BSD Kernel Interfaces Manual		  USB_QUIRK(4)

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):

	   usb_quirk_load="YES"

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

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

     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.

LOADER TUNABLE
     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 ta-
	     ble, 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.

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

     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 fol-
     lowing in loader.conf(5):

	   hw.usb.quirk.0="0x04d9 0xfa50 0 0xffff UQ_KBD_IGNORE"

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

BSD				August 19, 2017				   BSD

NAME | SYNOPSIS | DESCRIPTION | General quirks: | USB Mass Storage quirks: | 3G Datacard (u3g) quirks: | LOADER TUNABLE | EXAMPLES | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=usb_quirk&sektion=4&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help