hnwの日記

マルチブート環境の全OSで同じBluetoothデバイスを使う

マルチブート環境(デュアルブート・トリプルブートなど)でBluetoothバイスを使う際の話題です。


Bluetoothバイスを利用する際は通常「ペアリング」という作業が必要です。これは、初回接続時に128bitのリンクキーを発行して両者で共有し、通信相手のBDアドレスに紐付けておく仕組みです。これにより、次回接続時は同じリンクキーを使ってお互いを認証することができますから、面倒な手続きなしに利用することができます。


ところで、この仕組みはマルチブート環境ではうまく働きません。マルチブート環境ではそれぞれのOSが同じBluetoothアダプタを共有するため、Bluetoothバイスからは各OSを区別できないのです。


もう少し具体的に説明します。マルチブート環境で1つのOSからデバイスをペアリングしたあとで別のOSを起動した状況を考えてみましょう。このとき、デバイス側から見るとペアリングが済んでいるはずのBDアドレスなのに、OS側ではペアリングしていないためリンクキーがわかりません。再ペアリングをすれば新たなリンクキーが発行されて接続できるようになりますが、今度は最初のOSがリンクキーを共有していない状況になってしまいます。別のOSを起動するたびに毎回ペアリングすれば使えるものの、これではせっかくのBluetoothの利便性が台無しです。


これを解決するには、OSの管理しているリンクキーの情報を書き換えてやるしかありません。本稿ではMacOSXWindowsLinuxのトリプルブート環境でリンクキーを揃える方法を紹介します。


この内容はApple Support Communitiesの「Dual pairing in OS X and Windows」がベースになっていますが、僕は正解にたどり着くのに苦労したのでまとめ直してみました。

Macのマルチブート環境

Macに他のOSをインストールするということではBoot Campが有名ですね。本稿の情報はそうしたMacOSXWindowsデュアルブート環境でも活用できるかと思います。


ちなみに僕はBoot Campを使わずにMacBook Air(2010 Late)にMacOSX 10.9、Windows 7(32bit)、Ubuntu 14.04LTS(64bit)の3つをインストールしています*1。先日SSDを256GBに換装したので試しにインストールしてみたのですが、思ったより実用的だと感じています。


今回の作業で、これら3つのOSすべてで同じNexus5経由のBluetoothテザリングができるようになりました。

*1:興味がある方は「refind macbook」などのキーワードでググってください

続きを読む