Headset pairing rarely works reliably because FreeBSD lacks robust support for A2DP and HSP profiles. Even when pairing appears successful, audio often fails to route correctly due to missing components like PulseAudio or BlueZ. As for Bluetooth keyboards, pairing typically works initially, but they don’t reconnect automatically after being powered off. This happens because FreeBSD doesn’t retain persistent bonding or support auto-reconnect for HID devices. You can try restarting services (hcsecd and bthidd) or manually editing /etc/bluetooth/hcsecd.conf, but results are inconsistent. Some users report better luck with older CSR-based USB dongles, though overall support remains fragile. For now, wired peripherals or USB audio devices are far more reliable. Hopefully, future development will bring improvements, but for many users, Bluetooth remains more experimental than practical on GhostBSD.
If you’re willing to experiment, here are some basic steps that may help with Bluetooth pairing on GhostBSD. These instructions assume your device is recognized and that ng_ubt is loaded for your adapter.
(1) Enable Bluetooth Services
Install required tools (should already be included in most GhostBSD installs):
sudo service bluetooth start
sudo service sdpd start
sudo service hcsecd start
sudo service bthidd start
Ensure services start on boot:
sudo sysrc bluetooth_enable="YES"
sudo sysrc sdpd_enable="YES"
sudo sysrc hcsecd_enable="YES"
sudo sysrc bthidd_enable="YES"
(2) Pair a Bluetooth Keyboard
Scan for devices: sudo hccontrol -n ubt0hci inquiry
Get the Bluetooth address and then pair: sudo hcsecd -d
Once detected, create a basic config: sudo ee /etc/bluetooth/hcsecd.conf
Add something like this:
device {
bdaddr 00:11:22:33:44:55;
name "MyKeyboard";
key "abcdabcdabcdabcdabcdabcdabcdabcd";
pin "0000";
}
Generate or retrieve the key with hcsecd -d during pairing.
Start/restart the services:
sudo service hcsecd restart
sudo service bthidd restart
Note: Auto-reconnect is unreliable. You may need to run those restart commands each time after powering on the keyboard.
(3) Attempt Headset Pairing
Scan and initiate pairing:
sudo hccontrol -n ubt0hci inquiry
sudo hccontrol -n ubt0hci create_connection [MAC]
Start the SDP daemon:
sudo service sdpd restart
sudo sdpcontrol -a [MAC] browse
However, audio routing is not guaranteed to work. A2DP support is still experimental. If pairing appears successful but there's no audio, it's best to fall back to a USB headset.
(4) Optional: Test a CSR-Based USB Dongle
Some users have reported better reliability with external USB adapters using the CSR chipset. These often initialize as ubt0 more cleanly and pair more consistently.