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


Manual Reference Pages  -  USB_QUIRK (4)

NAME

usb_quirk - USB quirks module

CONTENTS

Synopsis
Description
General quirks:
USB Mass Storage quirks:
Loader Tunable
Examples
See Also
History

SYNOPSIS

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


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

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

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"

SEE ALSO

usbconfig(8)

HISTORY

The usb_quirk module appeared in
.Fx 8.0 , and was written by
.An Hans Petter Selasky Aq hselasky@FreeBSD.org . This manual page was written by
.An Nick Hibma Aq n_hibma@FreeBSD.org .
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 manServer 1.07.