投稿

2月, 2019の投稿を表示しています

デュアルブート環境で Bluetooth を使いたい!

問題 Windows と Linux のどちらか片方でしかペアリングができない。 これは,Windows と Linux でデュアルブートする際, Bluetooth のインターフェースを共有することに起因する。 Bluetooth のペアリングは,ある MAC アドレスの Bluetooth インターフェースに対して Bluetooth 周辺機器がペアリングすることになるため,片方の OS でペアリングしてしまうと,もう片方の OS ではまだペアリングしていないのに周辺機器は「ペアリング済」と判断してしまう,ということである。 周辺機器側でペアリング登録の解除が可能ならば(たとえば iPhone はペアリング済みのホストを一覧・解除できる)両方の OS でペアリング動作は行えるものの,両方の OS でペアリングに使うキーが異なってしまう。しかし,周辺機器が特定の MAC アドレスの Bluetooth インターフェースに対して記憶するペアリングキーは当然ひとつだけである。 解決方法 Linux ならテキストファイル,Windows ならレジストリにペアリングキーが書き込まれる。片方の OS でこれを閲覧して,もう片方の OS のペアリングキーを上書きしてしまえば良い。 手順 まず,Linux でペアリングする。次に,Windows でペアリングしなおす。この時点で Linux で接続が失敗するようになる。 ここからがミソである。Linux を起動し, chntpw をインストールする。これは,Windows のレジストリファイルを編集することが可能なコマンドである。 たとえば,Windows の C ドライブにあたるパーティションを /media にマウントしていた場合, $ chntpw -e /media/Windows/System32/config/SYSTEM chntpw version 1.00 140201, (c) Petter N Hagen Hive </media/Windows/System32/config/SYSTEM> name (from header): <SYSTEM> ROOT KEY at offset: 0x001020 * Subkey indexing type is: 68