パスワードを忘れた? アカウント作成
15358566 journal
日記

h-harryの日記: 【FreeBSD】 Bluetooth headset 6

日記 by h-harry

FreeBSDでbluetooh headsetを繋ごうと四苦八苦しているが。再生だけなら繋がるんだが録音(MIC) のほうがダメだ。

virtual_oss -C 2 -c 2 -r 48000 -b 16 -s 1024 -f /dev/bluetooth/xxxx -d dsp
hw.snd.basename_clone: 0 -> 0
backend_bt: PSM=0xffffffff
backend_bt: PSM not found
backend_bt: PSM=0xffffffff
backend_bt: PSM not found
backend_bt: PSM=0xffffffff
backend_bt: PSM not found

ヘッドセットによっては

backend_bt: PSM=0x19
backend_bt: Could not connect to HC: 5

だな。

virtual_ossのbackend_bt.cを読むと

l2cap_psm = bt_query(&info, service_class);
                DPRINTF("PSM=0x%02x\n", l2cap_psm);
                if (l2cap_psm < 0) {
                                DPRINTF("PSM not found\n");
                                goto error;
                }

bdaddr_copy(&addr.l2cap_bdaddr, &info.raddr);
                addr.l2cap_psm = l2cap_psm;
                if (connect(cfg->hc, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
                                DPRINTF("Could not connect to HC: %d\n", errno);
                                goto error;
                }

blietoothの規格良くしらないから解析できないなぁ

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2021年07月24日 22時15分 (#4076946)

    BTの再生は48k行けてもマイクは8kとか言うこともザラですので
    ホスト性能とBTデバイスの性能の低い方に合わせないとうまく行かないかと

    決め打ちでやろうとすると
    複数のデバイス繋ぎ変えたときにうまく行かなくなったり
    どのコーデックが優先となるのかでうまく行かなくなったり
    アダプティブビットレート対応でうまく行かなかったり

    音質気にしないならSBC低ビットレート固定が安牌かと

    • 44100は試したけど8000は試していないので、やってみました

      virtual_oss -S -C 2 -c 2 -r 8000 -b 16 -s 1024 -f /dev/bluetooth/xxx -T /dev/sndstat -d dsp
      hw.snd.basename_clone: 0 -> 0
      backend_bt: PSM=0xffffffff
      backend_bt: PSM not found

      変わらないですね。
      FreeBSDでheadsetつないでいるって幾ど情報ないんですよね。

      親コメント
  • by Anonymous Coward on 2021年07月25日 10時39分 (#4077051)

    BSDは知らんけど、HSP/HFPはA2DPと異なりモノラルです。
    出力はともかく、2ch(ステレオ)要求してるように見えるが気のせいかね。

    あと、A2DPとHSP/HFPは同時再生が出来ないのが多いのでその辺も考慮が必要。
    マイクが機能したら音が出ないとか起きたら出力側もモノラルになってるか確認してみて。

    • HSP/HFPしかサポートしていないjabraのtalk5でも試してます。

      # hccontrol -n ubt0hci create_connection talk5
      BD_ADDR: talk5
      Connection handle: 12
      Encryption mode: Disabled [0]
      # hccontrol -n ubt0hci read_connection_list
      Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State
      talk5 12 ACL 0 MAST NONE 0 0 OPEN
      # sdpcontrol -a talk5 search HSET

      Record Handle: 0x00010002
      Service Class ID List:
                      Headset (0x1108)
                      Generic Audio (0x1203)
      Protocol Descriptor List:
                      L2CAP (0x0100)
                      RFCOMM (0x0003)
                                      Protocol specific parameter #1: u/int8/bool 3
      Bluetooth Profile Descriptor List:
                      Headset (0x1108) ver. 1.0

      Record Handle: 0x00010003
      Service Class ID List:
                      Headset (0x1108)
                      Generic Audio (0x1203)
      Protocol Descriptor List:
                      L2CAP (0x0100)
                      RFCOMM (0x0003)
                                      Protocol specific parameter #1: u/int8/bool 4
      Bluetooth Profile Descriptor List:
                      Headset (0x1108) ver. 1.0
      # virtual_oss -S -C 2 -c 2 -r 48000 -b 16 -s 1024 -f /dev/bluetooth/talk5 -t dsp
      backend_bt: PSM=0xffffffff
      backend_bt: PSM not found
      backend_bt: PSM=0xffffffff
      backend_bt: PSM not found
      backend_bt: PSM=0xffffffff
      backend_bt: PSM not found

      ますますわからん

      親コメント
typodupeerror

ソースを見ろ -- ある4桁UID

読み込み中...