USBHIDCTL(1) BSD Reference Manual USBHIDCTL(1)
usbhidctl - manipulate USB HID devices
usbhidctl -f device [-t table] [-lv] -a usbhidctl -f device [-t table] [-v] -r usbhidctl -f device [-t table] [-lnv] name ... usbhidctl -f device [-t table] -w name=value ...
usbhidctl can be used to output or modify the state of a USB HID (Human Interface Device). If a list of items is present on the command line, then usbhidctl prints the current value of those items for the specified device. If the -w flag is specified usbhidctl attempts to set the speci- fied items to the given values. The options are as follows: -a Show all items and their current values. This option fails if the device does not support the GET_REPORT command. -f device Specify a path name for the device to operate on. If device is numeric, it is taken to be the USB HID device number. If it is a relative path, it is taken to be the name of the device under /dev. An absolute path is taken to be the literal device path- name. -l Loop and dump the device data every time it changes. Only 'input' items are displayed in this mode. -n Suppress printing of the item name when querying specific items. Only output the current value. -r Dump the USB HID report descriptor. -t table Specify a path name for the HID usage table file. -v Be verbose. Repeating this option increases verbosity. -w Change item values. Only 'output' and 'feature' kinds can be set with this option.
usbhidctl parses the names of items specified on the command line against the human interface items reported by the USB device. Each human inter- face item is mapped from its native form to a human readable name, using the HID usage table file. Command line items are compared with the gen- erated item names, and the USB HID device is operated on when a match is found. Each human interface item is named by the "page" it appears in, the "usage" within that page, and the list of "collections" containing the item. Each collection in turn is also identified by page, and the usage within that page. On the usbhidctl command line the page name is separated from the usage name with the character ':'. The collections are separated by the charac- ter '.'. As an alternative notation in items on the command line, the native numeric value for the page name or usage can be used instead of the full human readable page name or usage name. Numeric values can be specified in decimal, octal or hexadecimal.
/usr/share/misc/usb_hid_usages The default HID usage table.
On a standard USB mouse the item Generic_Desktop:Mouse.Generic_Desktop:Pointer.Button:Button_2 reflects the current status of button 2. The "button 2" item is encapsu- lated within two collections, the "Mouse" collection in the "Generic Desktop" page, and the "Pointer" collection in the "Generic Desktop" page. The item itself is the usage "Button_2" in the "Button" page. An item can generally be named by omitting one or more of the page names. For example the "button 2" item would usually just be referred to on the command line as: $ usbhidctl -f /dev/mouse Mouse.Pointer.Button_2 Items can also be named by referring to parts of the item name with the numeric representation of the native HID usage identifiers. This is most useful when items are missing from the HID usage table. The page identif- ier for the "Generic Desktop" page is 1, and the usage identifier for the usage "Button_2" is 2, so the following can be used to refer to the "button 2" item: $ usbhidctl -f /dev/mouse 1:Mouse.1:Pointer.Button:2 Devices with human interface outputs can be manipulated with the -w op- tion. For example, some USB mice have a Light Emitting Diode under software control as usage 2 under page 0xffff, in the "Mouse" collection. The following can be used to switch this LED off: $ usbhidctl -f /dev/mouse -w Mouse.0xffff:2=0
usbhidaction(1), usbhid(3), uhid(4), usb(4)
The usbhidctl command first appeared in OpenBSD 3.0.
David Sainty <David.Sainty@dtsp.co.nz>
Some USB HID devices report multiple items with exactly the same usage identifiers. The current naming scheme does not provide the means to specify which of a set of identically named items you are referring to. MirOS BSD #10-current August 27, 2000 1
Generated on 2013-04-27 00:20:00 by $MirOS: src/scripts/roff2htm,v 1.77 2013/01/01 20:49:09 tg Exp $
These manual pages and other documentation are copyrighted by their respective writers;
their source is available at our CVSweb,
AnonCVS, and other mirrors. The rest is Copyright © 2002‒2013 The MirOS Project, Germany.
This product includes material provided by Thorsten Glaser.
This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.