Manual browser: bthidev(4)

BTHIDEV(4) Kernel Interfaces Manual BTHIDEV(4)


bthidevBluetooth Human Interface Device support


bthidev* at bthub?

btkbd* at bthidev? reportid ?
btms* at bthidev? reportid ?


The bthidev driver handles all Bluetooth Human Interface Devices. Each HID device can have several components, e.g., a keyboard and a mouse. These components use different report identifiers to distinguish which component data is coming from. The bthidev driver may have several children attached that handle particular components and dispatches data to them based on the report id.

Normally, Bluetooth HIDs will be attached using the btdevctl(8) program. The following properties are used by the bthidev driver during autoconfiguration:

Local device address.
Remote device address.
The bthidev driver matches the ‘HID’ service.
This, if set, will indicate the PSM to use for the Control channel. If not set, L2CAP_PSM_HID_CNTL will be used.
This, if set, will indicate the PSM to use for the Interrupt channel. If not set, L2CAP_PSM_HID_INTR will be used.
This required binary blob is the HID descriptor containing information about reports the device will produce, and obtained via SDP.
If this boolean value is set, and is true, then the bthidev driver will initiate reconnections to the remote device when no connection is present.
This optional string represents the link mode of the baseband link, and may be one of ‘auth’, ‘encrypt’, or ‘secure’.

When the bthidev driver has configured its children, it will initiate a connection to the remote device. If this fails and the reconnect flag is not set, it will then wait for the device to initiate the connection.


The bthidev driver was written by Iain Hibbert under the sponsorship of Itronix, Inc. and first appeared in NetBSD 4.0.
April 10, 2007 NetBSD 7.0