bluetoothイヤホンとの接続

Armadillo IoT G3のWLAN+BTコンボモジュールを使用して、
Bluetoothイヤホンで音声を聞こうとしています。
メディアプレーヤーはvlcを使用していますが、
イヤホンから音声が聞こえて来ません。
どなたか私の手順の間違いや漏れなどご掲示いただけますでしょうか?
※私はvlc、bluetoothctlを使用するのが初めてです。

【状況】
Armadilloとイヤホンのbluetoothによるコネクトは成功しています。
 >bluetoothctl
 で
 Pairing successful
 trust succeeded
 Device (MACアドレス) Connected: yes
 が表示されたため。

vlcでの音声ファイル再生にも成功しています。
 > vlc
 で
 > add sample01.mp3
 > play
 > status
 で
 > new input: file:///home/atmark/movie_Test/sample01.mp3
 > audio volume: 307
 > state playing
 が表示されたため。

【環境】
バージョン
 -debian 9.4
 -カーネル 4.9.107-at1
 -bluez 5.43-2+deb9u1
 -vlc 3.0.8-0+deb9u1
 -pulseaudio 10.0-1+deb9u1

インストールしたパッケージ
 -apt install -y vlc
 -apt-get install pulseaudio pulseaudio-module-bluetooth pavucontrol bluez-firmware

製品: 
Armadillo-IoT G3

大塩です。

> Armadillo IoT G3のWLAN+BTコンボモジュールを使用して、
> Bluetoothイヤホンで音声を聞こうとしています。
> メディアプレーヤーはvlcを使用していますが、
> イヤホンから音声が聞こえて来ません。
> どなたか私の手順の間違いや漏れなどご掲示いただけますでしょうか?
> ※私はvlc、bluetoothctlを使用するのが初めてです。
>
> 【状況】
> Armadilloとイヤホンのbluetoothによるコネクトは成功しています。
>  >bluetoothctl
>  で
>  Pairing successful
>  trust succeeded
>  Device (MACアドレス) Connected: yes
>  が表示されたため。
>
> vlcでの音声ファイル再生にも成功しています。
>  > vlc
>  で
>  > add sample01.mp3
>  > play
>  > status
>  で
>  > new input: file:///home/atmark/movie_Test/sample01.mp3
>  > audio volume: 307
>  > state playing
>  が表示されたため。
>
> 【環境】
> バージョン
>  -debian 9.4
>  -カーネル 4.9.107-at1
>  -bluez 5.43-2+deb9u1
>  -vlc 3.0.8-0+deb9u1
>  -pulseaudio 10.0-1+deb9u1
>
> インストールしたパッケージ
>  -apt install -y vlc
>  -apt-get install pulseaudio pulseaudio-module-bluetooth pavucontrol bluez-firmware

調査のため、可能であればお客様がご利用になっているArmadillo IoT G3のWLAN+BTコンボモジュールの型番をお教えいただけますでしょうか。

よろしくお願いします。

返信ありがとうございます。
 
型番は「AEH-AR9462-LXB」です。
 
また、改めてArmadilloを操作していて気づいた点があります。
bluetoothctlで入って「show」を実行して表示される
Modalias: usb:v1D6Bp0246d052B
は、USBから音声出力しようとしているのでしょうか?

Controller (***MACアドレス***)
        Name: armadillo
        Alias: armadillo
        Class: 0x000000
        Powered: yes
        Discoverable: no
        Pairable: yes
        UUID: Generic Attribute Profile (***UUID***)
        UUID: A/V Remote Control (***UUID***)
        UUID: PnP Information (***UUID***)
        UUID: Generic Access Profile (***UUID***)
        UUID: A/V Remote Control Target (***UUID***)
        Modalias: usb:v1D6Bp0246d052B
        Discovering: no

大塩です。

型番の情報ありがとうございます。

ご利用のBluetoothイヤホンの製品名称はなんでしょうか。
こちらでは「BSHSBE33」を用いて音声が聞こえることを確認しています。
似たような製品であれば、こちらで確認した方法で改善できるかもしれません。

> bluetoothctlで入って「show」を実行して表示される
> Modalias: usb:v1D6Bp0246d052B
> は、USBから音声出力しようとしているのでしょうか?
>
> Controller (***MACアドレス***)
> Name: armadillo
> Alias: armadillo
> Class: 0x000000
> Powered: yes
> Discoverable: no
> Pairable: yes
> UUID: Generic Attribute Profile (***UUID***)
> UUID: A/V Remote Control (***UUID***)
> UUID: PnP Information (***UUID***)
> UUID: Generic Access Profile (***UUID***)
> UUID: A/V Remote Control Target (***UUID***)
> Modalias: usb:v1D6Bp0246d052B
> Discovering: no

こちらについては、コンボモジュールがusbとして接続されているため
このような情報が表示されます。

> ご利用のBluetoothイヤホンの製品名称はなんでしょうか。
> こちらでは「BSHSBE33」を用いて音声が聞こえることを確認しています。
> 似たような製品であれば、こちらで確認した方法で改善できるかもしれません。
 
ELEGIANT製で、ELEGIANTXm67XEuvVです。
このイヤホンがA2DP対応かの表記はみつけられませんが、
このイヤホンをスマホと接続したときに、コーデックがSBCであることを確認しているので、
A2DPに対応していると判断しています。
 
なお、後出しで申し訳ありませんが、vlcを実行直後に下記のエラーが表示されています。
イヤホンから音声が出ない原因につながるものはありますか?
※RaspberryPiでも同様に、bluetoothで音声が聞こえるか試したときに、vlc実行直後にいくつかエラーが発生していましたが、
 それでも同じイヤホンで音声を聞くことが出来たので、Armadilloでの試行時のvlcのエラー発生は軽視していました。
 発生していたエラーは同じ雰囲気でしたが、同じエラーであるかの確認は出来ていません。
 
VLC media player 3.0.8 Vetinari (revision 3.0.8-0-gf350b6b5a7)
[0128cad8] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0128cad8] main interface error: no suitable interface module
[01211110] main libvlc error: interface "dbus,none" initialization failed
[0128d830] main interface error: no suitable interface module
[01211110] main libvlc error: interface "globalhotkeys,none" initialization failed
[01211110] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[0128d898] skins2 interface error: cannot initialize OSFactory
[01277370] main playlist: playlist is empty
[0128d898] [cli] lua interface: Listening on host "*console".
VLC media player 3.0.8 Vetinari
Command Line Interface initialized. Type `help' for help.

大塩です。

> ELEGIANT製で、ELEGIANTXm67XEuvVです。
> このイヤホンがA2DP対応かの表記はみつけられませんが、
> このイヤホンをスマホと接続したときに、コーデックがSBCであることを確認しているので、
> A2DPに対応していると判断しています。

情報ありがとうございます。
確認したメーカーが違うため、動作の補償はできませんが
以下方法をお試しいただけますでしょうか。

音声が出ない問題について、bluetoothctlのConnectまで成功しているようなので
pulseaudio のデフォルト入出力先設定が、ご利用のBluetoothイヤホンを指定していない可能性があります。
bluetoothctlのConnectまで成功した状態で以下のコマンドを実行し、
bluetoothctlで接続したMACアドレスを含むデバイス名が存在することを確認してください。

    [armadillo]:~# pacmd list-sinks | grep -e 'name:'
    (コマンド結果例)

その後、pacmd set-default-sinkで取得したデバイス名を指定します。

    [armadillo]:~# pacmd set-default-sink bluez_sink.(MACアドレス).headset_head_unit

こちらでは、この後vlcで音声を再生し、聞こえることを確認しました。

>  
> なお、後出しで申し訳ありませんが、vlcを実行直後に下記のエラーが表示されています。
> イヤホンから音声が出ない原因につながるものはありますか?
> ※RaspberryPiでも同様に、bluetoothで音声が聞こえるか試したときに、vlc実行直後にいくつかエラーが発生していましたが、
>  それでも同じイヤホンで音声を聞くことが出来たので、Armadilloでの試行時のvlcのエラー発生は軽視していました。
>  発生していたエラーは同じ雰囲気でしたが、同じエラーであるかの確認は出来ていません。
>  
> VLC media player 3.0.8 Vetinari (revision 3.0.8-0-gf350b6b5a7)
> [0128cad8] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
> [0128cad8] main interface error: no suitable interface module
> [01211110] main libvlc error: interface "dbus,none" initialization failed
> [0128d830] main interface error: no suitable interface module
> [01211110] main libvlc error: interface "globalhotkeys,none" initialization failed
> [01211110] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
> [0128d898] skins2 interface error: cannot initialize OSFactory
> [01277370] main playlist: playlist is empty
> [0128d898] [cli] lua interface: Listening on host "*console".
> VLC media player 3.0.8 Vetinari
> Command Line Interface initialized. Type `help' for help.
>

上記エラーについては、映像等を表示するディスプレイの情報がないためのエラーです。
音声のみ再生するのであれば、問題はありません。

pulseaudioが起動していなかったようで、
atmark@armadillo:~$ pulseaudio --start
を実行したのち、
atmark@armadillo:~$ pacmd list-sinks | grep -e 'name:'
の実行結果は、
        name:
でした。全体を表示すると以下の通りです。
 
atmark@armadillo:~$ pacmd list-sinks
1 sink(s) available.
  * index: 0
        name:
        driver:
        flags: DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
        state: SUSPENDED
        suspend cause: USER IDLE
        priority: 1000
        volume: front-left: 78643 / 120% / 4.75 dB, front-right: 78643 / 120% / 4.75 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 0.00 ms
        max request: 344 KiB
        max rewind: 344 KiB
        monitor source: 0
        sample spec: s16le 2ch 44100Hz
        channel map: front-left,front-right
                     Stereo
        used by: 0
        linked by: 0
        configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
        module: 13
        properties:
                device.description = "Dummy Output"
                device.class = "abstract"
                device.icon_name = "audio-card"

※「suspend cause: USER IDLE」となっているのは、試しに
 > pacmd suspend-sink 0 true
 を実行したからです。実行前は「IDLE」でした。

auto_nullという名前に怪しさを覚えながらも、下記を実行しました。
atmark@armadillo:~$ pacmd set-default-sink auto_null
 
これは、indexの前に「*」を付与する目的でしょうか?
私の環境では、set-default-sinkの実行前の時点で「*」が付いていました。
 
(参考)
https://sites.google.com/site/teyasn001/home/pulseaudio

特殊文字が正しく表示されていないため、部分的に再掲載します。

  * index: 0
        name: <auto_null>
        driver: <module-null-sink.c>

画面キャプチャも添付します。

ファイル名 ファイルの説明
list-sinksの結果.PNG

大塩です。

> これは、indexの前に「*」を付与する目的でしょうか?
お送りいただいた参考資料にもある通り、デフォルトで使用する機器を示すマークであるため
このマークを使用したいBluetoothデバイス名につける目的です。

> auto_nullという名前に怪しさを覚えながらも、下記を実行しました。
> atmark@armadillo:~$ pacmd set-default-sink auto_null

auto_nullということなので、デバイスを認識できていない可能性があります。

> pulseaudioが起動していなかったようで、
> atmark@armadillo:~$ pulseaudio --start

こちらで確認した環境では、「pulseaudio --start」コマンドを実行した後でなければ
「bluetoothctl」の「connect」が出来ませんでした。

「bluetoothctl」の「scan」「pair」「connect」をもう一度ご確認いただけますでしょうか。
可能であれば、その際のログをいただけますでしょうか。

ご対応ありがとうございます。

> こちらで確認した環境では、「pulseaudio --start」コマンドを実行した後でなければ
> 「bluetoothctl」の「connect」が出来ませんでした。
 
伝えておりませんでしたが、今まで「connect」を実行するとエラーが発生していました。
初回だけはエラーにならず成功した記憶があるのですが、2回目(?)以降は、
「connect」するとエラーが発生するのもの、イヤホンの電源を入れ直すなどすると、
イヤホンからコネクションが成功した旨の音声が流れるのと合わせて、
Armadilloのコンソールでも、「Device (MACアドレス) Connected: yes」が
表示されるの見て、コネクションできているとみなしていました。
今回、事前に「pulseaudio --start」を実行することで、「connect」実行時にエラーにならなくなりました。
 
「pulseaudio --start」コマンドを実行後に、
「bluetoothctl」の「scan」「pair」「connect」の結果をファイルで添付します。

connect実行後に多数表示されている、
Bluetooth: hci0 SCO packet for unknown connection handle **
は、今まで表示されていなかったログだと思います。
変わったことと言えば、connect実行前に「pulseaudio --start」を実行したことです。

よろしくお願いします。

尚、添付ファイル内に表示されるMACアドレスやデバイス名のうち、私とは関係ない情報は、
MACアドレス1、デバイス名1のように変換しています。

ファイル名 ファイルの説明
Armadiilo_Bluetooth_connection_log2.txt

大塩です。

ログ送付ありがとうございます。
内容を確認しました。

こちらでは「unknown connection handle」は確認できますが、「submission failed」は出現しませんでした。
その後の「pacmd list-sinks」コマンドでも「auto_null」になっているため、LinuxとELEGIANT製 ELEGIANTXm67XEuvV がlinuxで動作しない可能性も考えられます。

もし可能であれば、Linux PCと接続して動作するか お試しいただけますでしょうか。