Я тут поигрался с блутусом, поэтому есть кое-какие дополнения.Первое, про насройку стека. Сейчас (в 7.0-RELEASE) для включения bluetooth нужно только наличие модуля ng_ubt. Далее модуль находит устройство, и devd запускает /etc/rc.d/bluetooth ubt0 start. Ничего сверх загрузки ng_ubt делать не нужно. Демон hcsecd можно включить в /etc/rc.conf.
Далее, /etc/rc.d/bluetooth умеет конфигурировать устройства. Настройки он берет из /etc/defaults/bluetooth.device.conf, а затем из /etc/bluetooth/УСТРОЙСТВО.conf (УСТРОЙСТВО, надо думать, ubt0, но я не проверял т.к. не перегружался). Как обычно, в /etc/defaults ничего трогать не надо, поэтому:
cp /etc/defaults/bluetooth.device.conf /etc/bluetooth/ubt0.conf && vi /etc/bluetooth/ubt0.conf
Там можно указать класс устройства, необходимость аутентификации и шифрования, локальное имя, и как раз возможность нахождения устройства (discoverable) и подключения к нему (connectable). Параметры независимы и никак не влияют на возможность исходящих соединений. В моем случае, чтобы комп было видно с телефона, оба параметра должны быть в YES, ибо сначала телефон делает inquire, на который устройство откликнется своим маком в случае discoverable=YES, в потом (как минимум) remote_name_request, для которого нужно уже connectable=YES.
Если хотите поиграться руками с видимостью, это hccontrol Write_Scan_Enable. Inquiry Scan enabled -> устройство периодически просматривает эфир на предмет inquiry запросов, Page Scan enabled - соответственно на установление соединения. Оба выключены - устройство никак не будет реалировать на внешние раздражители, но само соединяться с кем либо сможет. Оба включены - устройство будет видно при поиске. Включен Page, но не Inquery - устройство не будет видно при поиске, но подключиться к нему (зная MAC или имея pairing в телефоне) будет можно.
Не гарантирую точности этой информации в спеки я не вчитывался, но эксперименты ее подтверждают.