2010-11-10 23:45:44 +00:00
|
|
|
.\"
|
|
|
|
.\" Copyright (c) 2010 AnyWi Technologies
|
|
|
|
.\" All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" Permission to use, copy, modify, and distribute this software for any
|
|
|
|
.\" purpose with or without fee is hereby granted, provided that the above
|
|
|
|
.\" copyright notice and this permission notice appear in all copies.
|
|
|
|
.\"
|
|
|
|
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
|
|
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
|
|
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
|
|
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
|
|
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
|
|
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
|
|
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
.\"
|
|
|
|
.\" $FreeBSD$
|
|
|
|
.\"
|
2012-02-09 04:37:30 +00:00
|
|
|
.Dd February 8, 2012
|
2010-11-10 23:45:44 +00:00
|
|
|
.Dt USB_QUIRK 4
|
|
|
|
.Os
|
|
|
|
.Sh NAME
|
|
|
|
.Nm usb_quirk
|
|
|
|
.Nd USB quirks module
|
|
|
|
.Sh SYNOPSIS
|
|
|
|
To compile this module into the kernel,
|
|
|
|
place the following line in your
|
|
|
|
kernel configuration file:
|
|
|
|
.Bd -ragged -offset indent
|
2011-02-27 17:14:06 +00:00
|
|
|
.Cd "device usb_quirk"
|
2010-11-10 23:45:44 +00:00
|
|
|
.Ed
|
|
|
|
.Pp
|
|
|
|
Alternatively, to load the module at boot
|
|
|
|
time, place the following line in
|
|
|
|
.Xr loader.conf 5 :
|
|
|
|
.Bd -literal -offset indent
|
|
|
|
usb_quirk_load="YES"
|
|
|
|
.Ed
|
|
|
|
.Sh DESCRIPTION
|
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
module provides support for dynamically adding and removing quirks for
|
|
|
|
USB devices with
|
2012-02-09 04:37:30 +00:00
|
|
|
.Xr usbconfig 8 .
|
2010-11-10 23:45:44 +00:00
|
|
|
.Sh General quirks:
|
|
|
|
.Bl -tag -width Ds
|
|
|
|
.It UQ_AUDIO_SWAP_LR
|
|
|
|
swap left and right channels
|
|
|
|
.It UQ_AU_INP_ASYNC
|
|
|
|
input is async despite claim of adaptive
|
|
|
|
.It UQ_AU_NO_FRAC
|
|
|
|
don't adjust for fractional samples
|
|
|
|
.It UQ_AU_NO_XU
|
|
|
|
audio device has broken extension unit
|
|
|
|
.It UQ_BAD_ADC
|
|
|
|
bad audio spec version number
|
|
|
|
.It UQ_BAD_AUDIO
|
|
|
|
device claims audio class, but isn't
|
|
|
|
.It UQ_BROKEN_BIDIR
|
|
|
|
printer has broken bidir mode
|
|
|
|
.It UQ_BUS_POWERED
|
|
|
|
device is bus powered, despite claim
|
|
|
|
.It UQ_HID_IGNORE
|
|
|
|
device should be ignored by hid class
|
|
|
|
.It UQ_KBD_IGNORE
|
|
|
|
device should be ignored by kbd class
|
|
|
|
.It UQ_KBD_BOOTPROTO
|
|
|
|
device should set the boot protocol
|
2012-09-17 19:06:35 +00:00
|
|
|
.It UQ_UMS_IGNORE
|
|
|
|
device should be ignored by ums class
|
2010-11-10 23:45:44 +00:00
|
|
|
.It UQ_MS_BAD_CLASS
|
|
|
|
doesn't identify properly
|
|
|
|
.It UQ_MS_LEADING_BYTE
|
|
|
|
mouse sends an unknown leading byte
|
|
|
|
.It UQ_MS_REVZ
|
|
|
|
mouse has Z-axis reversed
|
|
|
|
.It UQ_NO_STRINGS
|
|
|
|
string descriptors are broken
|
|
|
|
.It UQ_OPEN_CLEARSTALL
|
|
|
|
device needs clear endpoint stall
|
|
|
|
.It UQ_POWER_CLAIM
|
|
|
|
hub lies about power status
|
|
|
|
.It UQ_SPUR_BUT_UP
|
|
|
|
spurious mouse button up events
|
|
|
|
.It UQ_SWAP_UNICODE
|
|
|
|
has some Unicode strings swapped
|
|
|
|
.It UQ_CFG_INDEX_1
|
|
|
|
select configuration index 1 by default
|
|
|
|
.It UQ_CFG_INDEX_2
|
|
|
|
select configuration index 2 by default
|
|
|
|
.It UQ_CFG_INDEX_3
|
|
|
|
select configuration index 3 by default
|
|
|
|
.It UQ_CFG_INDEX_4
|
|
|
|
select configuration index 4 by default
|
|
|
|
.It UQ_CFG_INDEX_0
|
|
|
|
select configuration index 0 by default
|
|
|
|
.It UQ_ASSUME_CM_OVER_DATA
|
|
|
|
assume cm over data feature
|
|
|
|
.El
|
|
|
|
.Sh USB Mass Storage Quirks
|
|
|
|
.Bl -tag -width Ds
|
|
|
|
.It UQ_MSC_NO_TEST_UNIT_READY
|
|
|
|
send start/stop instead of TUR
|
|
|
|
.It UQ_MSC_NO_RS_CLEAR_UA
|
|
|
|
does not reset Unit Att.
|
|
|
|
.It UQ_MSC_NO_START_STOP
|
|
|
|
does not support start/stop
|
|
|
|
.It UQ_MSC_NO_GETMAXLUN
|
|
|
|
does not support get max LUN
|
|
|
|
.It UQ_MSC_NO_INQUIRY
|
|
|
|
fake generic inq response
|
|
|
|
.It UQ_MSC_NO_INQUIRY_EVPD
|
|
|
|
does not support inq EVPD
|
|
|
|
.It UQ_MSC_NO_SYNC_CACHE
|
|
|
|
does not support sync cache
|
|
|
|
.It UQ_MSC_SHUTTLE_INIT
|
|
|
|
requires Shuttle init sequence
|
|
|
|
.It UQ_MSC_ALT_IFACE_1
|
|
|
|
switch to alternate interface 1
|
|
|
|
.It UQ_MSC_FLOPPY_SPEED
|
|
|
|
does floppy speeds (20kb/s)
|
|
|
|
.It UQ_MSC_IGNORE_RESIDUE
|
|
|
|
gets residue wrong
|
|
|
|
.It UQ_MSC_WRONG_CSWSIG
|
|
|
|
uses wrong CSW signature
|
|
|
|
.It UQ_MSC_RBC_PAD_TO_12
|
|
|
|
pad RBC requests to 12 bytes
|
|
|
|
.It UQ_MSC_READ_CAP_OFFBY1
|
|
|
|
reports sector count, not max sec.
|
|
|
|
.It UQ_MSC_FORCE_SHORT_INQ
|
|
|
|
does not support full inq.
|
|
|
|
.It UQ_MSC_FORCE_WIRE_BBB
|
|
|
|
force BBB wire protocol
|
|
|
|
.It UQ_MSC_FORCE_WIRE_CBI
|
|
|
|
force CBI wire protocol
|
|
|
|
.It UQ_MSC_FORCE_WIRE_CBI_I
|
|
|
|
force CBI with int. wire protocol
|
|
|
|
.It UQ_MSC_FORCE_PROTO_SCSI
|
|
|
|
force SCSI command protocol
|
|
|
|
.It UQ_MSC_FORCE_PROTO_ATAPI
|
|
|
|
force ATAPI command protocol
|
|
|
|
.It UQ_MSC_FORCE_PROTO_UFI
|
|
|
|
force UFI command protocol
|
|
|
|
.It UQ_MSC_FORCE_PROTO_RBC
|
|
|
|
force RBC command protocol
|
|
|
|
.El
|
|
|
|
.Sh Mass Storage Change (u3g) quirks:
|
|
|
|
.Bl -tag -width Ds
|
|
|
|
.It UQ_MSC_EJECT_HUAWEI
|
|
|
|
ejects after Huawei USB command
|
|
|
|
.It UQ_MSC_EJECT_SIERRA
|
|
|
|
ejects after Sierra USB command
|
|
|
|
.It UQ_MSC_EJECT_SCSIEJECT
|
|
|
|
ejects after SCSI eject command
|
|
|
|
0x1b0000000200
|
|
|
|
.It UQ_MSC_EJECT_REZERO
|
|
|
|
ejects after SCSI rezero command
|
|
|
|
0x010000000000
|
|
|
|
.It UQ_MSC_EJECT_ZTESTOR
|
|
|
|
ejects after ZTE SCSI command
|
|
|
|
0x850101011801010101010000
|
|
|
|
.It UQ_MSC_EJECT_CMOTECH
|
|
|
|
ejects after C-motech SCSI command
|
|
|
|
0xff52444556434847
|
|
|
|
.It UQ_MSC_EJECT_WAIT
|
|
|
|
wait for the device to eject
|
|
|
|
.It UQ_MSC_EJECT_SAEL_M460
|
|
|
|
ejects after Sael USB commands
|
|
|
|
.It UQ_MSC_EJECT_HUAWEISCSI
|
|
|
|
ejects after Huawei SCSI command
|
|
|
|
0x11060000000000000000000000000000
|
|
|
|
.It UQ_MSC_EJECT_TCT
|
|
|
|
ejects after TCT SCSI command
|
|
|
|
0x06f504025270
|
|
|
|
.El
|
|
|
|
See
|
|
|
|
.Pa /sys/dev/usb/quirk/usb_quirk.h
|
|
|
|
for the complete list of supported quirks.
|
|
|
|
.Sh EXAMPLES
|
|
|
|
After attaching a
|
|
|
|
.Nm u3g
|
|
|
|
device which appears as a USB device on
|
|
|
|
.Pa ugen0.3 :
|
|
|
|
.Bd -literal -offset indent
|
|
|
|
usbconfig -d ugen0.3 add_quirk UQ_MSC_EJECT_WAIT
|
|
|
|
.Ed
|
|
|
|
.Sh SEE ALSO
|
2012-02-09 04:37:30 +00:00
|
|
|
.Xr usbconfig 8
|
2010-11-10 23:45:44 +00:00
|
|
|
.Sh HISTORY
|
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
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 .
|