Bluetooth/Headphones-HOWTO

移動先: 案内, 検索


openSUSE 11.1 上で Bluetooth ヘッドフォンをセットアップする HOWTO

はじめに

openSUSE 11.1 上で Bluetooth(BT) ヘッドセットを設定していきます。openSUSE 11.1 では PulseAudio (PA) 0.9.12 がデフォルトのサウンドシステムになっています。BT ヘッドセットと PA 0.9.12 とを設定するには、今のところ簡単な方法はありません。なので、ALSA BT ヘッドセットのサウンドシステムとして設定し、PA をデフォルトのサウンドシステムとして共存させてみることにしましょう。この場合、BT ヘッドセットは特定の ALSA デバイスへの音声出力を直接行えるアプリケーションからのみ使用されます。

まずはじめに、BT ヘッドセットをペアリングしてみましょう。次に、ALSA サウンドシステムの設定ファイル ~/.asoundrc を準備し、BT ヘッドセットへの音声出力をテストしてみましょう。何らかの理由で失敗する場合は、トラブルシューティングの項を参照して、すべてのパッケージがインストールされているかチェックしてください。

残念ながら、BT ヘッドセットと他の BT デバイス(例: BTキーボードやマウス)とを一緒に使おうとすると、不具合に見舞われることがあります。BT マウスが動かされたり、BT キーボードでキータイプされる度に、BT ヘッドセットの音声に割り込みが要求されるからです。この問題は、2つの BT デバイスを使用し、その片方が音声通信に割り当てられる場合には、常に発生します。BT アーキテクチャは音声通信固有の問題を考慮に入れ、ソフトウェア開発者に専用のオーディオチャンネルを提供しています。この問題はいまだ解決されていません。

動画を再生している最中には、映像と音声が同期しない現象に見舞われることもあります。BT ヘッドセットは音声をバッファリングして割り込み要求を避けようとするため、このような遅れが生じます。

BT ヘッドセットのアドレスを見つける

BT ヘッドセットのアドレスをテキストファイルに保存しておくのは良いアイデアなので、将来必要になったときに BT アドレスをカット&ペーストすることもできます。そのためには、BT ヘッドセットをペアリングモードにしておかなければなりません。これはデバイス固有の手順なので、デバイスのユーザーガイドを参照しましょう。ルートユーザでターミナルを開き、次のコマンドをタイプしてください:

       # hcitool scan
       Scanning ...
       00:1F:3A:FB:96:B2       linux-8hlf-0
       00:1E:4C:D5:E2:92       linux-09eo-0
       00:13:17:72:CD:FF       Jabra BT620s

BT ヘッドセット "Jabra BT620s" とそのアドレス "00:13:17:72:CD:FF" が見つかります。BT アドレスをテキストファイルに保存するために、標準出力をカット&ペーストしましょう。あるいは、このようにタイプしても保存できます:

       # hcitool scan > bt.devices

BT ヘッドセットをペアリングする

BT ヘッドセットとのペアリングは KDE と Gnome とで試してみました。ちなみに、BT ヘッドセットの一般的な使用方法は、どのディスプレイマネージャを使っているかには依りません。

他の記事でも書かれているように、kbluetooth4 には不具合のため KDE 上でのペアリングができないという問題があります。この場合には、bluez-gnome パッケージをインストールし、KDE 上でも動く bluetooth-applet を起動してみましょう。

bluetooth-applet が起動し、BT アダプタのスイッチがオンになれば、アプレットのインターフェースを呼び出せる Bluetooth アイコンが KDE や Gnome のパネル上に表れます。このアプレットで Bluetooth サブシステムとの通信をコントロールできます。新しいデバイスをセットアップするためにはペアリングモードにします。これはデバイス固有の手順なので、デバイスのユーザーガイドを参照しましょう。その後、アプレットのアイコンをクリックし、メニュー項目 "Setup new device" を選択します。書かれている文章を読んだ後に "Forward" ボタンを押します。すべてのデバイスが検出可能になるると、シンボリック名が表示されます。リストの中から新しいデバイスを選択してください。BT ヘッドセットの PIN コードがデフォルト値である "0000" の場合は、"Successfully configured new device" というメッセージが表示されるでしょう。"Close" ボタンを押してアプレットを閉じます。

ALSA サウンドシステムの設定

ALSA へと送信される音声出力は、設定ファイル /etc/asound.conf あるいは ~/.asoundrc にある以下の設定によって、Pulse Audio (PA) へとりダイレクトされます。

       # cat ~/.asoundrc
       pcm.!default {
               type pulse
       }
       ctl.!default {
               type pulse
       }

それではサウンドシステムをこのコマンドで試してみましょう:

       # aplay /usr/share/sounds/startup3.wav

コンピュータのスピーカから音が聞こえてくるはずです。

BT ヘッドセットとサウンドシステムとの設定

BT ヘッドセットを使うために、ファイル ~/.asoundrc に次の内容を加えてください:

       pcm.btheadset {
               type bluetooth
               device "00:13:17:72:CD:FF"
       }

この場合では、前のセクションで見つけた "Jabra BT620s" の BT アドレス "00:13:17:72:CD:FF" が使用されます。あなたの BT ヘッドセットのアドレスの値に置き換えてください。次のコマンドで BT ヘッドセットをテストしてみましょう:

       # aplay -D btheadset /usr/share/sounds/startup3.wav

BT ヘッドセットから音が聞こえてくるはずです。

デフォルトでは、ALSA サウンドシステムを使うアプリケーションの音声出力が PA にリダイレクトされます。そのため、Gnome パネル上の "Volume control" で PA の音量を設定したり音声をミックスしたりすることができますが、BT ヘッドセットの音量は設定することはできません。代わりに BT ヘッドセットの音量調節機能をお使いください。

サポートしているプレイヤーのリストは以下の wiki をご覧ください: http://wiki.bluez.org/wiki/HOWTO/AudioDevices#SupportedPlayers このページの中では BT ヘッドセットが "bluetooth" と表記されていることにご注意ください。今までの例ではシンボリック名 "btheadset" していた部分です。

例えば mplayer で BT ヘッドセットを使えるようにするには、次のコマンドをタイプします:

       # mplayer -ao alsa:device=btheadset /usr/share/sounds/startup3.wav

トラブルシューティング

(a) すべてのパッケージがインストールされているかをチェックしましょう

       - bluez-alsa

(b) BT コントローラをチェックしましょう

       # hciconfig -a
       hci0:   Type: USB
       BD Address: 00:1E:3D:F7:74:C4 ACL MTU: 1021:8 SCO MTU: 64:1
       UP RUNNING PSCAN
       RX bytes:205947 acl:9945 sco:0 events:3989 errors:0
       TX bytes:4958866 acl:6221 sco:0 commands:102 errors:0
       Features: 0xff 0xff 0x8f 0xfe 0x9b 0xff 0x79 0x83
       Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
       Link policy: RSWITCH HOLD SNIFF PARK
       Link mode: SLAVE ACCEPT
       Name: 'linux-h4dc-0'
       Class: 0x0a010c
       Service Classes: Networking, Capturing
       Device Class: Computer, Laptop
       HCI Ver: 2.1 (0x4) HCI Rev: 0xda LMP Ver: 2.1 (0x4) LMP Subver: 0x2192
       Manufacturer: Broadcom Corporation (15)

(c) ALSA 設定ファイルをチェックしましょう

       # cat ~/.asoundrc
       pcm.!default {
               type pulse
       }
       ctl.!default {
               type pulse
       }
       pcm.btheadset {
               type bluetooth
               device "00:13:17:72:CD:FF"
       }

(d) もし "Cambridge silicon radio" を選択している場合は、それはチップセットの問題です。

ハードウェア互換性

割り込み要求のない音声通信は、BT デバイスが次のハードウェア上で使用された場合に確認されることができます。リスト上のコントローラとヘッドセットの双方が必要になります。

このハードウェアでは動きます

コントローラ:

  * Vendor 0x1668 Actiontec Electronics, Inc. [hex] Product 0x0441 IBM Integrated Bluetooth II

ヘッドセット:

  * EU3C (Cambridge Silicon Radio)

このハードウェアでは動きません

音声通信の際に割り込み要求が発生するハードウェアのリストです

コントローラ:

  * Vendor: usb 0x0a5c "Broadcom Corp." Device: usb 0x2145 "ThinkPad Bluetooth with Enhanced Data Rate II"
  * Vendor: usb 0x044e "Alps Electric Co., Ltd" Device: usb 0x3017 "BCM2046 Bluetooth Device"
  * Vendor: usb 0x0a5c "Broadcom Corp." Device: usb 0x2101 "

ヘッドセット:

  *Jabra BT620s

注記

(a) 重要な注記です

(b) BT headset のスピーカーは、Skype 2.0.0.72-suse で動きます。~/.asoundrc にある BT ヘッドセットのシンボリック名を "Sound devices" -> "Sound Output" に設定します。現時点では "Sound In" は BT デバイスでは使えません。"Make a test sound" で、"Ringing" に設定されている音声がデバイスに送信されます。"Make a test call" も動作します。

(c) Smplayer 0.6.6 で BT headset を使えます。"Options" -> "Preferences" -> "Audio" -> "Output driver" を "User defined" に設定し、その横のテキストボックスに alsa:device=btheadset と入力します。これは『BT ヘッドセットとサウンドシステムとの設定』の章で書かれている mplayer のコマンドラインオプション -ao と同じものです。

FAQ

最新の PulseAudio パッケージをインストールすることはできますか?

GNOME:Factory リポジトリ [a] から最新の pulseaudio パッケージをインストールすることができます。最初に [a] から GNOME:Factory.repo ファイルをダウンロードし、ルートユーザで "$ zypper ar GNOME:Factory.repo" とタイプし、repo ファイルをリポジトリに加えます。zypper や Yast 経由で最新の pulseaudio パッケージをインストールできるようになります。

[a] http://download.opensuse.org/repositories/GNOME:/Factory/openSUSE_11.1/

ヘッドセットをどのアプリケーションからも発見可能にするために、/dev/ のエントリから BT ヘッドセットにリンクを張ることはできますか?

いいえ。リンクを張っても Bluetooth (BT) ヘッドセットがアプリケーションからも発見可能になるわけではありません。BT 音声デバイスはエントリを /dev/ に作りません。現時点では、openSUSE の BT デバイスは ALSA サウンドシステムとのみ通信します。そのため、ALSA デバイスの設定ファイル (~/.asoundrc のパスにあるファイル) [b] をサポートするアプリケーションのみが BT ヘッドセットを使用できます。アプリケーションがこの種の設定ファイルをサポートしない場合は、デフォルトの ALSA デバイスを BT ヘッドセットに設定しようと試みます。もちろん、このアプリケーションが ALSA に出力を送信するときにのみ行われます。

[b] http://wiki.bluez.org/wiki/HOWTO/AudioDevices#SupportedPlayers

ALSA を BT ヘッドセットのデフォルトデバイスにするにはどうすればよいですか?

.asoundrc ファイルの以下のセクションで設定できます。詳しくはリンク [2] を参照してください。

      pcm.!default {
             type bluetooth
             device "00:13:17:72:CD:FF"
      }

参考リンク

[1] MediaWiki Handbook]

[2] .asoundrc configuration files for ALSA drivers