
Я работаю над встроенной системой и мне нужно сканировать устройства Bluetooth. Я хочу сделать это с помощью собственной программы, которую я могу сделать с помощью hci_get_route() и поддерживающих функций hci из BlueZ devel stuff. Однако сканирование работает только во время работы bluetoothd. Есть ли возможность сделать это без необходимости запуска bluetoothd в фоновом режиме?
ОБНОВЛЯТЬ:
Согласно ответу harrymc, мне удалось заставить работать сканирование Bluetooth без bluetoothd или даже без systemd. Однако мне нужно было загрузить следующие модули ядра (ядро 5.19):
hci_uart
btusb
Пока эти модули загружались при загрузке, мне нужно было просто запустить это: hciconfig hci0 up
и я мог сканировать устройства Bluetooth.Мне не нужно было запускать hciattach.В моем ноутбуке используется адаптер Intel Bluetooth (lsusb сообщает о производителе/продукте как 8087:0033).
решение1
Пост Команда Linux для подключения к устройству Bluetooth может быть уместно.
В этом оставшемся без ответа сообщении подробно описывается использование HCI следующим образом.
Чтобы настроить оборудование Bluetooth:
sudo modprobe hci_uart
sudo modprobe btbcm
sudo hciattach /dev/ttyAMA0 bcm43xx 921600 noflow -
Для сканирования устройств:
sudo hcitool scan
Однако это программное обеспечение не смогло успешно подключиться к устройствам, по крайней мере, у автора поста.