2009/01/02

MacBook Air(early 2008)上のWindows XPに力尽くでBluetooth A2DP

あけましておめでとうございます。今年もbeatsync.netをよろしくお願いします。

というわけでタイトルの通り、今年最初のネタはBluetoothスピーカーの話です。

年末にBIT-STB2825というBluetoothスピーカーを買いました。で、用途はベッドでごろごろしながらMacBook Airを使うときにどーせなら内蔵のモノラルスピーカーじゃなくてBluetoothスピーカーでも枕元においてみるといいんじゃないかってことだったんですが、注文するのが年末すぎて届いたのが帰省の2日前とかだったわけです。そんなわけで大した重量でもないからMacBook Airとこいつを持って帰省してきたので実家でいろいろとやってみました。

結論からいうとA2DPプロファイルをネイティブサポートしているMac OS X 10.5はえらい! けどまぁそれなりに音がぶつぶつ切れるような気がするかなぁー。あと、Mac OS XからSTB2825を認識させたときに「ヘッドセットを使用する」「ヘッドフォンを使用する」の2個の選択肢が出るんですが音のよいA2DPプロファイルで使うためには「ヘッドフォンを使用する」を選ぶ必要があるということさえ気をつければ特に問題はないかと思います。

で、問題はBootCampなWindows XPなわけです。

BootCampでWindows XPを使うときは何もしなければWindowsの標準のBluetoothスタックを使用することになるんですが、このスタックはXPではA2DPプロファイルをサポートしていません。ということは、何かしなきゃならないわけです。まぁその何かっていうのがいろいろありましてね…。要は(ライセンスとかはとりあえず置いておいて)他社製のBluetoothスタックをなんとかインストールしてそれを使ってみるということになります。さぁ、はじめようか…。

東芝のBluetoothスタックを使ってみる

とりあえずこの手のことをやろうとしてぐぐってみるとXP on MacBook ProでA2DPしてみる (ftp-recordings:returns?)にヒットすると思います。そこには普通に東芝製スタックを組み込む手順が書いてあるので、その通りやってみました。ちなみにMacBook AirのBluetooth USBデバイスのVIDとPIDはUSB\VID_05AC&PID_8210になります。私の場合はPrinstonのPTM-UBT3Sユーザなので、そのBluetoothスタックを流用したら特にレジストリをいじらなくてもたぶんA2DPプロファイルで接続できていたっぽいです。

東芝スタックのインストール中にドライバをインストールしようとするはずですが、これはキャンセルして、あとからProgram Files以下のドライバフォルダのinfをいじってから再度AS.exeを起動すればサクッとできるようです。ってかそうやりました。

で、結果からいうと、やっぱりちょっと音飛びがひどいです。うーん。マウスもSTB2825もちゃんとペアリングして使えるようにはなっているので、やっぱり相性とかの問題なのかなーと。まぁもともとA2DPって相当負荷が高いらしいのでしかたないとは思いますが、やっぱり音がほとんど鳴らなくなってしまう上にマウスの動きがかなり緩慢になるのはちょっと使い物にならなかったです。

ということで、アンインストールした。

ANYCOMのBluetoothスタックを使ってみる

さて正月早々うちひしがれていたんですが、さらにもうちょっと調べてみるとMacBook AirでBootCampを使おうとしたことがある人ならきっと何回か訪れたことがあるであろうパソコンよろずQ&AMacBook AirのWindows VistaでBluetoothヘッドセットを使うにはという記事がありました。

対象がVistaだと、VistaはBluetoothをネイティブサポートしている関係でサードパーティ製のプロファイルをサクッと追加できる(っていうかMicrosoftもA2DPとかのプロファイルをWindows Updateで出しています)という記事になっていまして、そこの記事によると

  1. MacBook AirのBluetoothチップはBroadcom製
  2. ANYCOMのBluetoothのUSBドングルもBroadcom製
  3. ってことでこのドライバを入れちゃおう!

という話になっているようです。はーなるほどね。私もBroadcomのサイトで必死にドライバ探したけど見つからなかったんですが、OEMチップ採用のドングルメーカーから拾ってくるという手がありましたか。

さて、VistaではなくXPでいけるのか?! ってことでやってみました。

XP用のドライバをダウンロードしてきてインストールすると、当たり前のごとく「Bluetoothデバイスが見つかりません」となるので、また展開したアーカイブに含まれるドライバのinfをガシガシ書き換えてデバイスマネージャからApple Built-in Bluetooth(BootCampでインストールしたときのデバイス名)のドライバを強制更新します。

で、とりあえずBluetoothデバイスが見つかりませんとは言われなくなったのですが、デバイス照会モードに入ろうとすると「デバイスの発見を開始することができませんでした」となってしまいます。がぁん…。

どうやらさすがにサポート外のデバイスだけあってデバイス照会モードに入ることができないようです。これじゃマウスも見つけられないし使い物にならねーなーと思いつつSTB2825のスイッチをオンにすると!

STB2825は自分からデバイスを探しにいく(スピーカ自身がデバイス照会モードになる)ので、MacBook Air側がこれに反応してペアリングのためのPINを入力するところまでいきました。おお、すごい。ってことでPINを入力するとあっさりペアリング完了。Windowsのサウンド設定にもBluetooth Stereo Audioというデバイスができたので、ちゃんとA2DPプロファイルが使われているようです。

ちなみにBluetoothのペアリングの仕組み(照会側デバイス/発見可能デバイス)についてはbluetooth.comの通信トポロジに記載されていますのでなんでMighty MouseがダメでSTB2825はOKだったかを知りたい方はこちらをみるとよいかもしれません。一言でいうとMighty Mouseは発見可能デバイスにしかなれないが、STB2825は照会側デバイス/発見可能デバイスのどっちにもなれるのでペアリングできた、ということです。

さて、おそるおそる音楽を再生してみると、これはばっちり。音飛びも東芝スタックに比べればほとんどきにならないレベル(でもやっぱり時々あります)なのでかなりよさげですが、やっぱりマウスが使えないのが寂しいです。てか、もしかしたらBluetoothマウスを使っていないからA2DPの通信が安定しているという説もありそうです。東芝スタックでも調べておけば良かった。

というわけで今日は新年早々ドライバのinfを書き換えまくってサードパーティ製のBluetoothスタックをインストールするとかいう力業をご紹介しました。まぁこれならMacBook Air側をXPからVistaにしたほうがいいのかなぁー、とはちょっと思いましたが、マウスはBluetoothじゃないぞって人はやってみる価値があるかもしれません。

うされもん @acidlemonについて

|'-')/ acidlemonです。鎌倉市在住で、鎌倉で働く普通のITエンジニアです。

30年弱住んだ北海道を離れ、鎌倉でまったりぽわぽわしています。

外部サイト情報

  • twitter
  • github
  • facebook
  • instagram
  • work on kayac