Bluetoothアダプタのデバイスアドレスを変更する。
さて、前回からの流れ。
- USBポートに挿すタイプのノーブランドなBluetoothアダプタをふたつ購入。
- ひとつを Windowsマシンに、もうひとつを Linuxマシンに装着。
- それぞれ単体では無難に動作するのだが、同時に使用すると怪しい。
- あ、こいつらBluetoothデバイスアドレス(≒MACアドレス)が被ってるやん!
- どちらかのデバイスアドレスを変更できないものか ← 今ここ。
…というわけで散々調べた結果、LinuxならばBluetoothアダプタのデバイスアドレスを変更することが可能っぽいので、やってみる。ちなみにうちのLinuxマシンにはUbuntuがインストールされています。
まずはBluetoothアダプタをUbuntuマシンに挿す。で、ターミナルでコマンド・hciconfig -a を実行。以下のような出力を見る筈。
ひとつ目の下線部がデバイスアドレス。最後の項目でBluetoothデバイスのチップ製造者名を確認できます。どうやら今回紹介する方法は、CSR(Cambridge Silicon Radio)製のチップでないと効かないみたいなので、製造者名が CSR 以外だった人はごめんなさい。
それから、この操作には bluez パッケージと(たぶん)bluez-utils パッケージが必要です。もしこれらがインストールされていないならば、apt-get するなり Synapticパッケージマネージャを利用するなりしてインストールしておいてください。
幸いなことにうちのドングルはCSRチップが載っていて、bluez周りのパッケージもインストール済みだったので、このまま続行。
新しいデバイスアドレスを 11:22:33:44:55:66 にしたいのならば、ターミナルで以下のコマンドを実行。
で、続いて
# sudo service bluetooh restart
と、これで新しいデバイスアドレスが設定され、外部からもそのアドレスで認識される筈。デバイスアドレスがきちんと変更されているかどうかは、先ほどの hciconfig コマンドで確認できます。
うちではこの操作以降、アダプターを抜き差ししたりマシンの電源をオン/オフした後でも、このBluetoothアダプタのアドレスは、書き換えた新しいほうで認識されています。
一件落着。
…なのだけれども、デバイスアドレスを書き換えたアダプタ、Windows のほうに挿してみるとこんなエラーが出るのだな。
うん。ますます怪しい感じになってきた。CSR Harmonyを再インストールしたら大丈夫なのかもしれないけれど未確認。とりあえず、こいつをUbuntuマシンで使い続けるぶんには問題ないのです。
ということで。
こんなに苦労するのなら、最初から信頼あるメーカー品を買っておけばよかったものを。たかだか数百円をケチったばっかりに…。
コメント