web-dev-qa-db-ja.com

Bluetooth HSP / HFPは機能しませんが、A2DPは機能します

Broadcomの内部Bluetoothアダプターがあります。モデルですBCM20702A0Vendor=0a5c ProdID=21e1 Rev=01.12)A2DP機能を動作させることはできますが、HSP/HFPモードは動作しません。 /etc/bluetooth/audio.confの下で異なるファームウェアと異なる構成を試しましたが、運がありませんでした。誰にも私が何ができるか考えていますか?私はグーグルを検索し、検索し、2時間続くさまざまなことを試しました。グルを試してみようと思いました。以下にシステムの詳細を示します。他に何か必要な場合はお知らせください。

dylan@laptop:~$ uname -a
Linux laptop 3.19.0-20-generic #20-Ubuntu SMP Fri May 29 10:10:47 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux


dylan@laptop:~$ dmesg | grep Bluetooth
[    4.179038] Bluetooth: Core ver 2.20
[    4.179051] Bluetooth: HCI device and connection manager initialized
[    4.179054] Bluetooth: HCI socket layer initialized
[    4.179056] Bluetooth: L2CAP socket layer initialized
[    4.179060] Bluetooth: SCO socket layer initialized
[    5.501272] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    5.501275] Bluetooth: BNEP filters: protocol multicast
[    5.501281] Bluetooth: BNEP socket layer initialized
[    5.508181] Bluetooth: RFCOMM TTY layer initialized
[    5.508188] Bluetooth: RFCOMM socket layer initialized
[    5.508193] Bluetooth: RFCOMM ver 1.11

USB-DEVICES...
T:  Bus=04 Lev=02 Prnt=02 Port=05 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0a5c ProdID=21e1 Rev=01.12
S:  Manufacturer=Broadcom Corp
S:  Product=BCM20702A0
S:  SerialNumber=083E8E9B280C
C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I:  If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)


dylan@laptop:~$ dkms status; uname -a
bcmwl, 6.30.223.248+bdcom, 3.19.0-16-generic, x86_64: installed
bcmwl, 6.30.223.248+bdcom, 3.19.0-18-generic, x86_64: installed
bcmwl, 6.30.223.248+bdcom, 3.19.0-20-generic, x86_64: installed
bcmwl, 6.30.223.248+bdcom, 3.19.0-21-generic, x86_64: installed
vboxhost, 4.3.28, 3.19.0-16-generic, x86_64: installed
vboxhost, 4.3.28, 3.19.0-18-generic, x86_64: installed
vboxhost, 4.3.28, 3.19.0-20-generic, x86_64: installed
vboxhost, 4.3.28, 3.19.0-21-generic, x86_64: installed
Linux laptop 3.19.0-21-generic #21-Ubuntu SMP Sun Jun 14 18:31:11 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux


dylan@laptop:~$ dmesg | grep -i bluetooth; dmesg | grep firmware
[    4.085160] Bluetooth: Core ver 2.20
[    4.085171] Bluetooth: HCI device and connection manager initialized
[    4.085175] Bluetooth: HCI socket layer initialized
[    4.085176] Bluetooth: L2CAP socket layer initialized
[    4.085181] Bluetooth: SCO socket layer initialized
[    4.109764] bluetooth hci0: Direct firmware load for brcm/BCM20702A0-0a5c-21e1.hcd failed with error -2
[    4.109773] Bluetooth: hci0: BCM: patch brcm/BCM20702A0-0a5c-21e1.hcd not found
[    5.332794] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    5.332797] Bluetooth: BNEP filters: protocol multicast
[    5.332803] Bluetooth: BNEP socket layer initialized
[    5.346411] Bluetooth: RFCOMM TTY layer initialized
[    5.346419] Bluetooth: RFCOMM socket layer initialized
[    5.346425] Bluetooth: RFCOMM ver 1.11
[    4.109764] bluetooth hci0: Direct firmware load for brcm/BCM20702A0-0a5c-21e1.hcd failed with error -2
5
Dylan

私はこれを試してみます:

wget https://www.dropbox.com/s/owropuric6iz898/BCM20702A0-05ac-21e1.hcd
Sudo cp BCM20702A0-05ac-21e1.hcd /lib/firmware/brcm/BCM20702A0-0a5c-21e1.hcd
Sudo modprobe -r btusb
Sudo modprobe btusb

次に、dmesg | tailで情報を確認します。

Sudo apt-get install linux-headers-$(uname -r) build-essential
wget https://www.dropbox.com/s/xu80svavlazttaf/bluetooth-3.19.tar.gz
tar xpvf bluetooth-3.19.tar.gz
cd bluetooth
cp /boot/config-$(uname -r) .config
cp /usr/src/linux-headers-$(uname -r)/Module.symvers Module.symvers
make -C /lib/modules/$(uname -r)/build M=$PWD modules
Sudo cp btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth/
Sudo modprobe -r btusb
Sudo modprobe btusb

動作するか確認する

カーネルの更新後、HSP/HFPは失われます。その場合、次のことを行う必要があります。

cd bluetooth
make -C /lib/modules/$(uname -r)/build M=$PWD clean
cp /boot/config-$(uname -r) .config
cp /usr/src/linux-headers-$(uname -r)/Module.symvers Module.symvers
make -C /lib/modules/$(uname -r)/build M=$PWD modules
Sudo cp btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth/
Sudo modprobe -r btusb
Sudo modprobe btusb
5
Jeremy31

私の推測では、より問題のあるものでない限り、pulseaudioのbtプロファイルの問題です。

インストールしてpavucontrol(apt-get install pavucontrol)を実行し、最後のページ(設定)に移動して、bluetoothプロファイルが存在するかどうかを確認し、変更してみてください。

私のbtオーディオconfはデフォルトで変更なし(ubuntu 14.04)/etc/bluetooth/audio.conf

さて、bt-headset(a2dpとhsp capabel)を使用してこれらの手順をテストし、動作させました。最善の方法ではありませんが、うまくいきました。

  1. Bt-deviceのペアリング
  2. 構成ページからpavucontrolでプロファイルがHSPであることを確認します。
  3. skypeを起動します(知っていますが、テストは簡単です)
  4. movesink.shスクリプトを実行する
  5. スカイプテストサービスへのテストコールを開始する
  6. pavucontrolから録音タブを選択し、Bluetoothデバイスに合わせて[Skype input from]を選択します。
  7. 話し、音量バーが動くかどうかを確認します。
  8. 問題がある場合は、もう一度呼び出しを開始し、テスト呼び出し中にmovesink.shを実行します

a)btデバイス名を確認します。

pactl list sinks|grep Name
# or
pactl list sinks|grep card:

b)movesinks.shをその名前で実行します

./movesink.sh bluez_sink.48_C1_AC_C1_C3_85.hsp
# or
./movesink.sh bluez_sink.48_C1_AC_C1_C3_85

そして、これが私が作成したmovesink.shスクリプトです。プログラムサウンド出力をbtデバイスに移動します(これにより、マイクが統合からbt-headsetに自動的に移動しません)。

#!/bin/bash 
echo "Setting default sink to: $1";
# where new pa should output sound for new programs
pacmd set-default-sink $1
# get "active" programs and with while read
pactl list sink-inputs short |cut -f1 | while read line    
do
echo "Moving input: ";
echo $line
#| cut -f2 -d' ';
echo "to sink: $1";
#  move audio to the newly assigned output.
pacmd move-sink-input `echo $line | cut -f2 -d' '` $1

done

うまくいけば、これでセットアップが機能することを確認できます。 (以前はbt-headsetをペアにしてキー入力を行い、入力をそのキーに移動しました。再度使用すると、その設定が元に戻りました。)

以下を使用して、メインオーディオをデフォルトに戻す必要があります。

./movesink.sh alsa_output.pci-0000_00_1b.0.analog-stereo
# or
./movesink.sh alsa_output.pci-0000_00_1b.0
1
Manwe