Вчера я потратил почти весь день, пытаясь заставить что-то работать, я ожидал, что это будет просто: заставить Bluetooth-гарнитуру работать с Linux.
Я знаю, что в качестве стека Linux Bluetooth используется bluez - официальные источники для Raspbian содержат версию 4.99, которая должна иметь поддержку A2DP, HFP и HSP. Насколько я знаю (по какой-либо причине), более новые версии 5.xx отказались от поддержки HFP и HSP.
Что я сделал, так это установил bluez из официальных источников и подключил гарнитуру. Я добавил файл /etc/asound.conf
:
pcm.btheadset {
type plug
slave {
pcm {
type bluetooth
device XX:XX:XX:XX:XX:XX
profile "auto"
}
}
hint {
show on
description "BT Headset"
}
}
ctl.btheadset {
type bluetooth
}
}
Затем я могу вывести звук с помощью aplay -D btheadset -f S16_LE < /etc/kernel.img
.
Я попытался заставить аудио вход работать так же, выполнив arecord -D btheadset /tmp/test.wav
но он ничего не записывает.
Я думаю, что работает только A2DP, но не HSP/HFP. Я много гуглил, но похоже, что гарнитуры Bluetooth не очень хорошо поддерживаются в Linux. Это действительно удивляет меня - неужели никто не использует это?
Я даже думаю о чтении в программировании Bluetooth - есть идеи, с чего начать?
Кроме того, мне интересно, потому что гарнитура работает нормально с Android, который, насколько мне известно, использует bluez 5.xx. Есть мысли по этому поводу?
Спасибо за каждый намек, который вы можете дать мне.