さまざまな入出力装置をコンピュータに接続して作業していると、ケーブルの取り回しが面倒だったり、ケーブル長が足りずにやきもきするといったことがあります。読者の皆さんの中にも、イヤフォンやマイクを使っている際に資料を取ろうと思って手を伸ばしても届かず、腕がもう少し長ければという怒りに任せてケーブルを引きちぎった経験がある方がきっといるかと思います。
今回は、このような不幸な事故を防いでくれるBluetoothヘッドセット/ヘッドフォンを例に挙げ、BluetoothデバイスをUbuntuで使う方法をお届けします。
Bluetoothとは
Bluetoothは無線LANと同じく無線規格のひとつです。無線LANとは異なり、携帯機器やUSBデバイスなどの固定機器を接続するケーブルを置き換えることを主目的としています。そのため、Wireless Personal Area Network(WPAN)とも呼ばれています。通信距離が短いため低消費電力でバッテリーに優しく、モバイル用途に適しています。すでにマウスやキーボード、ヘッドセットやヘッドフォンなど多くの製品が発売されており、ラップトップ・コンピューターの多くがBluetooth送受信機を搭載しています。
規格の策定はBluetooth Special Interest Group(Bluetooth SIG)が行っており、各社はそのメンバーとなり製品に対する認証プログラムを通過することで、ロゴの使用許可を得ることになっています。Bluetooth規格の最新は2010年6月30日のバージョン4.0です。2002年に1.1相当がIEEEの802.15.1として採択され、その後2005年に改訂されています。
LinuxのBluetoothサブシステム「BlueZ」
UbuntuのBluetooth機能は「BlueZ」を利用しています。BlueZ はLinux向けのオープンソースのBluetooth実装です。デバイスドライバとしてのLinuxカーネルモジュールと、ソフトウェアから利用するためのライブラリを含んでいます。
オープンソースなBluetooth用コードプロジェクトは、Axis Communication社 のOpenBTプロジェクトがそのはしりでした。しかし、こちらは2005年4月14日に開発を停止しています。
Ubuntuでのペアリング
それではUbuntu 11.04(Natty Narwhal)でBluetoothを使ってみましょう。まずお持ちのコンピューターにBluetooth送受信機が接続されていることを確認してください。筆者が使っているコンピューターは送受信機を搭載していないため、今回はUSB接続のBluetooth送受信機 を使用しました。
キーボードで「Alt」キーと「F2」キーを同時に押し、コマンドからアプリケーションを実行するウィンドウを開きます。「 bluetooth-properties」を入力して実行すると、「 Bluetooth設定」ウィンドウが開きます。もしBluetooth送受信機が接続されていなければ、以下のような画面が表示されます。
図1 Bluetooth送受信機が接続されていない場合
Bluetooth送受信機を接続して「Bluetooth設定」ウィンドウを開くと、以下の画面が表示されます。
図2 Bluetooth送受信機が接続されている場合
「Bluetoothをオンにする」ボタンを押して、Bluetooth送受信機を使用可能とします。
図3 Bluetooth送受信機が接続されている場合
Bluetooth送受信機が使用可能となると画面が更新され、Bluetooth装置の検索と登録を行うための画面となるはずなのですが、変化しません。Natty Narwhalではここにバグが報告されています[1] 。
そこで、Bluetoothサブシステムの再起動をします。GNOME端末(gnome-terminal)を起動し、以下のコマンドを実行します。
$ sudo service bluetooth restart;
再起動した結果、「 Bluetooth設定」ウィンドウが以下のように更新されます。これで、Bluetoothデバイスが登録できるようになりました。
図4 Bluetooth装置の登録管理画面
次にBluetoothデバイスのペアリングを行います。あらかじめBluetoothデバイスのマニュアルを参照してペアリング状態にしておいてください。「 Bluetooth設定」ウィンドウで「新規デバイスの設定」ボタンをクリックすると「Bluetooth新規デバイス設定」ウィンドウが開き、ペアリング状態となっているBluetoothデバイスの検索を開始します。
図5 「 Bluetooth新規デバイス設定」ウィンドウ
このスクリーンショットでは筆者所有のBluetoothヘッドセット が検索されています。登録したいデバイスを選択して「進む」ボタンを押し、登録を完了します。登録の際PINコードを指定することもできますが、Bluetooth規格の2.1以降に対応するデバイスであれば、パスキー(PINコード)を入力しなくても登録が可能なものもあります。
登録されると、「 Bluetooth設定」ウィンドウの一覧に表示されるようになります。
図6 登録されているBluetoothデバイスの一覧
PulseAudioのBluetoothモジュール
筆者が今回扱っているのは、サウンドを扱うBluetoothデバイスです。通常、サウンドデバイスはALSAサブシステムのALSAカーネルモジュールがデバイスドライバとなりますが、Bluetoothデバイスの場合はBlueZサブシステムのBlueZカーネルモジュールがデバイスドライバとなっており、ALSAサブシステムとの直接の関係はありません。そのため、Bluetoothデバイスを登録するたびに、ALSAライブラリの設定ファイルを作る必要がありました[2] 。
そこで登場するのがPulseAudioサウンドサーバーです。PulseAudioはプラグインによって自由に拡張が出来るよう設計されており、Bluetooth用のプラグインも提供されています。Ubuntuにおいては、パッケージ「pulseaudio-module-bluetooth」で提供されています。サウンドを扱うBluetoothデバイスがシステムに登録されると自動的にPulseAudioのプラグインモジュールが有効化され、Bluetoothデバイスが利用可能となります。
それでは、「 サウンドの設定」ウィンドウ(gnome-volume-control)で確認してみましょう。「 ハードウェア」タブにデバイスが表示され、利用可能となっていることがわかります。
図7 「 サウンドの設定」ウィンドウの「ハードウェア」タブ
これ以降は、本連載の第159回 でご紹介した方法を使い、ソフトウェアの出力先を切り替えることで、Bluetoothデバイスから音声を出力することができます。
ここで着目したいのは、デバイスの「プロファイル」です。このスクリーンショットでは、「 A2DP」と「HSP/HFP」の2つから選択することができますが、これらはBluetooth規格に定められているプロファイルです。次の項では、このプロファイルに関して見ていきましょう。
Bluetoothのプロファイル
Bluetooth規格には、デバイスの用途を定めた「プロファイル」が定められています 。各デバイスや送受信機はこのプロファイルを実装することで、製品の互換性を気にすることなく利用できます。
サウンドに関係するプロファイルは以下があります。
A2DP
音楽再生のために高品質のオーディオデータを一方向に送信するためのプロファイル
AVRCP
TVやオーディオ再生装置といったAV機器を操作する標準的な方法を定めたプロファイル
HFP
通話時の音声を送受信するためのプロファイル
HSP
通話時の音声を送受信する他、遠隔操作や音声以外の情報の転送も行うことが出来るプロファイル
上の2つはオーディオプレイヤー用途の、下の2つは通話用途のプロファイルとなります。デバイスにより実装されているプロファイルは異なりますので、あらかじめデバイスの取り扱い説明書で確認しておくとよいでしょう。
PulseAudioでは、Bluetoothデバイスを使用する目的に応じてこのプロファイルを切り替えていくことになります。
Bansheeでオーディオ再生
Bansheeの場合は音楽再生専用のA2DPプロファイルを使うのがよいでしょう。「 サウンドの設定」ウィンドウの「出力」タブで出力先として指定するのを忘れないでください。
図8 「 サウンドの設定」ウィンドウの「出力」タブでデバイスを指定
同時にAVRCPプロファイルも有効になるため、Bluetoothデバイスから遠隔操作できるようになります。遠隔操作はBansheeの他にもRhythmboxなどが対応しています。
図9 Bansheeの画面
Skypeで通話
Skypeなどのインターネット通話ソフトウェアの場合は、HSP/HFPプロファイルを使います。マイク入力を扱うことになるため、「 サウンドの設定」ウィンドウの「入力」タブで、入力レベルのメーターを見ながら入力の音量を調整しておきましょう。
図10 「 サウンドの設定」ウィンドウの「入力」タブでデバイスを指定
「サウンドの設定」ウィンドウの「出力」タブでも、Bluetoothデバイスを選択します。A2DPプロファイル選択時とは異なり音声がモノラルとなっています。
図11 「 サウンドの設定」ウィンドウの「出力」タブでデバイスを指定
「サウンドの設定」ウィンドウの「アプリケーション」タブで、アプリケーション別に音量を調整できます。どちらが入力でどちらが出力なのか表示されないので、スライダーを調整しながら確認してください。
図12 「 サウンドの設定」ウィンドウの「アプリケーション」タブ
筆者が認証プログラムを通過した製品をBluetooth SIGのウェブサイトで検索してみたところ、シャープ社、Marvell Technology Group社、Samsung Electronics社、Broadcom社、Creative Technologiy社、Texas Instruments社などの製品が、BlueZを実装したものとして登録されていました。Google社のAndroidがBluetooth実装にBlueZを利用している こともあって、知らず知らずのうちに私たちもBlueZを利用しているのかもしれませんね。