Ensure the bluetooth controller is not blocked. Use
rfkill to check whether
there are any blocks and to remove soft blocks. If there is a hard block, there
is likely either a physical hardware switch or an option in the BIOS to enable
the bluetooth controller.
$ rfkill ID TYPE DEVICE SOFT HARD 0 wlan phy0 unblocked unblocked 1 bluetooth hci0 blocked unblocked # rfkill unblock bluetooth
# xbps-install -S bluez
# ln -s /etc/sv/dbus /var/service # ln -s /etc/sv/bluetoothd /var/service
Add your user to the
bluetooth group and restart the
dbus service, or simply
reboot the system. Note that restarting the
dbus service may kill processes
making use of it.
# usermod -a -G bluetooth $USER # sv restart dbus
Note: To use an audio device such as a wireless speaker or headset, ALSA users need to install the
bluez-alsapackage, while PulseAudio users do not need any additional software.
Manage bluetooth connections and controllers using
bluetoothctl. It uses a
command line interface; to find out what commands are available, enter
To exit, enter
$ bluetoothctl [bluetooth]# help Menu main: Available commands: ------------------- advertise Advertise Options Submenu scan Scan Options Submenu gatt Generic Attribute Submenu list List available controllers show [ctrl] Controller information select <ctrl> Select default controller devices List available devices paired-devices List paired devices ...
Consult the Arch Wiki page for an example on how to pair a device.
bluetoothctl also accepts taking commands from stdin.
$ echo "devices" | bluetoothctl Agent registered [bluetooth]# devices Device XX:XX:XX:XX:XX:XX Mouse Device XX:XX:XX:XX:XX:XX Keyboard Device XX:XX:XX:XX:XX:XX Speaker Device XX:XX:XX:XX:XX:XX Headset
The main configuration file is