1.\" Copyright (c) 2005 Maksim Yevmenkin <m_evmenkin@yahoo.com>
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.Dd September 29, 2021
26.Dt BLUETOOTH.DEVICE.CONF 5
27.Os
28.Sh NAME
29.Nm bluetooth.device.conf
30.Nd Bluetooth device configuration file
31.Sh DESCRIPTION
32Bluetooth device configuration framework provides ability to adjust certain
33Bluetooth device parameters on per-device basis.
34.Pp
35Bluetooth device configuration files are plain text files that should conform
36to basic
37.Xr sh 1
38syntax.
39Even though Bluetooth device are not exactly shell scripts,
40they are parsed and passed through shell
41.Ic eval
42command.
43This makes it possible to use various shell tricks in the Bluetooth device
44configuration files.
45.Pp
46The
47.Pa /etc/rc.d/bluetooth
48script is used to start and stop Bluetooth devices.
49This script is not executed by default when system boots.
50It is called by
51.Xr devd 8
52in response to Bluetooth device arrival and departure events.
53It is possible to execute this script by hand if required.
54The script accepts Bluetooth device driver name as an extra parameter.
55.Pp
56The system wide Bluetooth device configuration file is called
57.Pa /etc/defaults/\:bluetooth.device.conf .
58Configuration parameters set in the system wide Bluetooth device configuration
59file apply to every Bluetooth device connected to the system.
60.Pp
61Configuration parameters overrides for the specific Bluetooth device
62should be placed in the
63.Pa /etc/bluetooth/ Ns Ar DEVICE_DRIVER_NAME Ns Pa .conf
64file.
65Where
66.Ar DEVICE_DRIVER_NAME
67is the device driver name of the Bluetooth device.
68.Pp
69The following list provides a name and short description for each
70variable that can be set in a Bluetooth device configuration file.
71.Bl -tag -width indent-two
72.It Va authentication_enable
73.Pq Vt bool
74The
75.Va authentication_enable
76parameter controls if the device requires to authenticate the remote device
77at connection setup.
78If set to
79.Dq Li YES ,
80the device will try to authenticate the other device at connection setup.
81Bluetooth authentication requests are handled by
82.Xr hcsecd 8
83daemon.
84.It Va class
85.Pq Vt str
86The
87.Va class
88parameter is used to indicate the capabilities of the device to
89other devices.
90For more details see
91.Dq Assigned Numbers - Bluetooth Baseband
92document.
93.It Va connectable
94.Pq Vt bool
95The
96.Va connectable
97parameter controls whether or not the device should periodically scan for
98page attempts from other devices.
99If set to
100.Dq Li YES ,
101the device will periodically scan for page attempts from other devices.
102.It Va discoverable
103.Pq Vt bool
104The
105.Va discoverable
106parameter controls whether or not the device should periodically scan for
107inquiry requests from other devices.
108If set to
109.Dq Li YES ,
110the device will periodically scan for inquiry requests from other devices.
111.It Va encryption_mode
112.Pq Vt str
113The
114.Va encryption_mode
115parameter controls if the device requires encryption to the remote device
116at connection setup.
117At connection setup, only the devices with the
118.Va authentication_enable
119parameter enabled and
120.Va encryption_mode
121parameter enabled will try to encrypt the connection to the other device.
122Possible values are
123.Dq Li NONE
124encryption disabled,
125.Dq Li P2P
126encryption for only point-to-point packets,
127or
128.Dq Li ALL
129encryption for both point-to-point and broadcast packets.
130.It Va hci_debug_level
131.Pq Vt int
132HCI node debug level.
133Higher values mean more verbose output.
134.It Va l2cap_debug_level
135.Pq Vt int
136L2CAP node debug level.
137Higher values mean more verbose output.
138.It Va local_name
139.Pq Vt str
140The
141.Va local_name
142parameter provides the ability to modify the user friendly name for the device.
143.It Va role_switch
144.Pq Vt bool
145The
146.Va role_switch
147parameter controls whether the local device should perform role switch.
148By default, if role switch is supported, the local device will try to perform
149role switch and become Master on incoming connection.
150Some devices do not support role switch and thus incoming connections from
151such devices will fail.
152If
153.Va role switch
154is disabled then accepting device will remain Slave.
155.El
156.Sh FILES
157.Bl -tag -width ".Pa /etc/defaults/bluetooth.device.conf" -compact
158.It Pa /etc/defaults/bluetooth.device.conf
159.It Pa /etc/rc.d/bluetooth
160.El
161.Sh EXAMPLES
162The
163.Pa /etc/bluetooth/ubt0.conf
164file should be used to specify configuration parameters overrides for the
165first USB Bluetooth device
166(device driver name is
167.Li ubt0 ) .
168.Pp
169The
170.Pa /etc/bluetooth/ubt1.conf
171file should be used to specify configuration parameters overrides for the
172second USB Bluetooth device.
173.Sh SEE ALSO
174.Xr ng_hci 4 ,
175.Xr ng_l2cap 4 ,
176.Xr ng_ubt 4 ,
177.Xr devd 8 ,
178.Xr hccontrol 8 ,
179.Xr hcsecd 8 ,
180.Xr l2control 8
181.Sh AUTHORS
182.An Maksim Yevmenkin Aq Mt m_evmenkin@yahoo.com
183