Xubuntu 14.04LTSでBluetoothヘッドフォンが接続できない場合の対策

こんにちは。今回のテーマは『Xubuntu 14.04LTSでBluetoothヘッドフォンが接続できない場合の対策』です。筆者はPCの前では音楽聴きながら作業することが多くてArch Linuxを操作する時はBluetoothイヤフォンを使っていました。今回、メインマシンのXubuntuにBluetoothヘッドフォンをつなごうと思ったら思わぬトラブルに見舞われました。調べてみるとXubuntuユーザーの間ではちょっとした話題になってる模様です。
【関連記事】
Arch LinuxでBluetoothヘッドセットを使う


動作検証環境

ディストリビューション Xubuntu 14.04LTS
bluetoothアダプター PLANEX製(型番不明)
Bluetoothヘッドフォン ATH-CKS55BT(audio-technica)
Bluetoothマネージャー blueman

どんな問題に直面したのか?

ペアリングはできる・・・でも

まずペアリングですが、ヘッドフォン側をペアリングモードにしてblueman側で”setup new device”を選択しペアリングをします。ここまでは普通のBluetooth機器と変わりません。問題はこの後です。多くのbluetoothヘッドフォン(イヤホン)はbluetoothのヘッドセット用のHSP/HFPプロトコルとステレオ音声用のA2DPプロトコルが使えます。私の使っているATH-CKS55BTもこの2つのプロトコルが使えます。音楽を聞くときには断然A2DPが良いです。HFPでも音は聞こえますが、公衆電話越しにラジカセを聞いてるような音質です。今回筆者が遭遇したトラブルはA2DPプロトコルでの通信ができないトラブルでした。

A2DP接続が出来ない

下の画像はbluemanです。ペアリングは完了しているのですが”Audio Sink”を選択してA2DP接続をしようとすると”Connection Failed: Stream Setup Failed”というエラーメッセージが出て接続できません。ネットで見てみると同じような症状に悩まされている方は多いようです。(主に海外の方ばかりでしたが)

画像はエラーが出た時のblueman
02

これで解決!Bluetoothで快適な音楽生活

いろいろと試行錯誤しましたが、接続の問題は以下の3ステップで解決しました。
#1 pulseaudio-module-bluetoothのインストール
以下のコマンドでpulseaudio-module-bluetoothをインストールします。

$ sudo apt-get install pulseaudio-module-bluetooth

#2 /etcl/bluetooth/audio.confの編集
/etc/bluetooth/audio.confを編集しておかないとモジュールの読み込みエラーを起こすので編集しておきます。エディタはお好みのエディタでOKですよ。

$ sudo vim /etc/bluetooth/audio.conf

以下のように修正します。(修正部分のみ抜粋)

[General]
Disable=Socket

[Headset]
HFP=false
SBCSources=1
MPEG12Sources=0

#3 module-bluetooth-discoverの読み込み
以下コマンドでモジュールを読み込みます

$ pactl load-module module-bluetooth-discover

この状態で先ほどと同様にbluemanで”Audio Sink”を選択しATH-CKS55BTと接続してみます。
01

接続に成功しました。
03

PulseaudioのGUIフロントエンドのpavucontrolの設定画面でもA2DPが選択でき、再生タブでATH-CKS55BTを選択すれば音声が出ます。
04

この解決方法の問題点はシステム起動の度に以下のモジュールを読み込むコマンドを実行する必要があることです。bluetoothを使う度にこの長いコマンドを入力するのは少々面倒です。本題とは逸れますが、モジュールの読み込みについて以下で触れておきます。

起動毎のモジュール読み込みを簡単にする

システムを起動する度に”pactl load-module module-bluetooth-discover”を実行するは面倒です。そこで起動時に自動で読み込む方法を検討しましたが、結局はシェルスクリプトかエイリアスを作成してbluetootshヘッドフォンを使う際に一度実行するのが無難な対応だというのが現時点での結論です。筆者の対策を簡単に紹介します。

エイリアスの登録(推奨)

恐らく一行のコマンドでしたらエイリアスを登録するのが現実的な対応かと思います。本当は全自動でモジュール読み込みたいですが…
以下コマンドでエイリアス登録してbluetootヘッドフォンをつなぐ前に”btmod”エイリアスを実行します。(エイリアス名はお好きな名前で結構です)

$ alias btmod='pactl load-module module-bluetooth-discover'

実行例

$ btmod (←作成したエイリアス名)

シェルスクリプトの作成

一行のコマンドなのでシェルスクリプトを作成するのは大げさな気がしますが、例として紹介します。
今回は~/に作成します。

$ vim ~/laodbtmod

以下のように書き込みます。

#!/usr/bin/sh
pactl load-module module-bluetooth-discover

実行例

$ ~/./loadbtmod

試してみたけどNGだった例

モジュールの読み込みの自動化は思ったより難航しました。確かに起動時にモジュールを読み込むだけならば出来るのですが、その後pulseaudioとの連動がうまく行きません。何かのお役に立てばと、以下に筆者が試してみた方法と結果を簡単に記載します。(実行結果は筆者環境のものであり、必ずそうなるという説明ではありません。失敗例なので興味のない方は読み飛ばして結構です)

(1) ~/.config/pulse/dafault.paの編集
pulseaudioの設定ファイルとしては/etc/pulse/default.paがあるのですが、これのユーザー用ファイルとして~/.config/pulse/default.paを用意します。

$ vim ~/.config/pulse/default.pa

以下フレーズを追記します。

load-module module-bluetooth-discover

【結果】
これでシステムを再起動するとbluetoothヘッドフォンのAudio Sink接続は成功します。しかしpulseaudioが起動せず”Establishing connection to PulseAudio. Plese wait…”というメッセージが出て止まってしまいます。

(2) /etc/pulse/default.paを~/.config/pulse/default.paにコピーする
この場合は現状と何も変わりません。そもそも/etc/pulse/default.paにモジュール読み込みのフレーズは記載されているにも関わらず、それが機能していないのが問題なのですからhomeディレクトリにコピーしても状況が変わらないのは当然です。

(3) ~/.bashrcや~/.bash_profileの編集
pactl load-module module-bluetooth-discoverのフレーズを記載し、システムを再起動してもAudio Sinkは成功しますが、その後A2DPプロトコルで接続しようとすると失敗します。そしてヘッドフォンがpulseaudioに認識されません。

(4) /etc/rc.localの編集
結果は上に同じくで、Audio Sinkは成功しますが、pulseaudioからはヘッドフォンを認識しません。
(5) Xfceの「セッションと起動」で自動開始アプリケーションにシェルスクリプトをセットする。
上記で作成したシェルスクリプトをXfce起動時に実行するようにセットしたのですが、この場合も.bashrcにセットしたのと同様にAudio Sinkの接続は成功しますが、pulseaudioから認識されずA2DP接続はできません。HSP/HFP接続は可能です。

最後に

今回はXubuntu 14.04LTSでの調査なので、Xubuntu 14.10では改善されているかも知れません。これらの問題は本家UbuntuやLinux Mintでは確認されていないようです。筆者もUbuntu Gnomeを使っている時にはこのような問題には遭遇しませんでした。今回は全自動でbluetoothが接続できる環境構築はできませんでしたが、ヘッドフォンを接続し音楽が聞こえるいう課題はクリアしました。Xubuntuユーザーのお役に少しでも立てれば幸いです。

Sponsored Link


10件のコメント

  • やっぱり私と同じ悩みを持った人っていたんですね。
    とてもためになりました。
    ——————————————————
    私の場合は、ソフトウェアセンターからインストールしました。
    Bluetooth module for PulseAudio sound server

    • ijs01140さん

      コメントありがとうございます。

      Xubuntuは軽くて好きなんですけどね。
      Bluetooth周りは少々驚きでした。

  • こんばんは。私も同じことで悩んでいます。
    ただ
    これで解決!Bluetoothで快適な音楽生活の
    #3 module-bluetooth-discoverの読み込み
    pactl load-module module-bluetooth-discover
    を実行するとモジュール初期化失敗がでて
    先に進めません。
    何かご教授いただければありがたいのですが。

  • たるたるさん

    こんにちは。コメントありがとうございます。
    回答になっているかわかりませんが、当方環境で確認できていることをお伝えします。

    <当方環境で確認されているモジュール初期化について>
    pactl load-module module-bluetooth-discover
    を2回以上実行すると「初期化失敗」となり
    以降はBluetoothでA2DP接続できなくなりました。

    この場合
    pactl unload-module module-bluetooth-discover
    で一度モジュールをアンロードして再度
    pactl load-module module-bluetooth-discover
    でモジュール読み込みを行うことで接続に成功しました。

    たるたるさんのケースが同じ症状なのかは判りかねますが、
    試してみはいかがでしょうか?

  • 大変有難うございました。
    Xubuntuデスクトップと快適な音楽鑑賞ライフが始まりました!

    • Jackさん

      コメントありがとうございました。
      Xubuntuで快適なLinuxライフを楽しんでくださいね。

  • LinuxMint17.2MATE&PlanexBT-Micro4&CreativeT12で同じ症状になり、手順を実行したところ無事解決しました。
    T12の音量を最大にしたまま、いきなり音が出たので、ケツがうきましたが(笑
    まだ初心者ですが、Linuxって楽しい〜
    ありがとうございました!!

    • Mint初心者さん

      コメントありがとうございます。
      記事がお役に立ったようで何よりです。
      LinuxMintでも同様のことが起きていたんですね。

      Linuxを使う楽しみは色々ありますよね。
      今後とも宜しくお願いいたします。

  • ありがとうございます。
    諦めていました。聞けました。
    本当に、頼りにしています。
    器具が、悪いのかと、さんざん悩みました。
    快適に、ブルーツースヘッドホンで、音楽が聞けました。
    重ねて、ありがとうございます。
    クロさんは、アンドロイドのアプリも制作されているのですね。
    実は、最近ウインドウズホンを購入したのですが、日本製のアプリが少なくて、NHKのラジオや、らじこみたいな、アプリやポッドキャストのアプリなど、制作出来無いですかね、サイトにメールを送るんですが、今後の課題といたします。との返事で、もしかしたら、制作できるかも、と思い書きました。
    今回初めてメールしましたが、本当に毎回何かあると参考にしています。

    • プリンさん

      コメントありがとうございます。
      記事がお役に立てたようで幸いです。

      アプリの件は申し訳ありませんがウィンドウズフォン向けアプリ作成は経験がなく開発環境も整っておりません。
      ご要望にお応えすることは難しいと思います。お役に立てず申し訳ありません。

      今後とも宜しくお願いいたします。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です