Raspberry PiからBluetoothを使ってiPhoneでテザリング 2017年版
2014年にiPhoneとRaspberry PiをBluetoothを使ってテザリングするという記事を書いた。この記事はそれの2017年版である。
TL;DR
iPhoneとRaspberry Piをペアリングする。そしてbt-panでpan接続する。
iPhoneとペアリング
Raspberry PiをGUIで操作していればツールバーのBluetoothアイコンから手軽にできるが、 あえてCLIのやり方だと
iPhoneを検出後、MACアドレスをコピーしてペアリングする。
$ hcitool scan
Scanning ...
XX:XX:XX:XX:XX:XX iPhone
$ bluetoothctl
[bluetooth]# pair XX:XX:XX:XX:XX:XX
[bluetooth]# trust XX:XX:XX:XX:XX:XX
bt-pan
BlueZの最新版ではbluez-simple-agentがなくなっているので、bt-panを利用する。このスクリプトはbt-pan --help
やbt-pan client --help
で使い方がわかる。
iPhone側で「インターネット共有」をONにしておくこと。
bt-panをダウンロードしたあと、実行権限を付与して
$ wget https://raw.githubusercontent.com/mk-fg/fgtk/master/bt-pan
$ chmod +x bt-pan
iPhoneのMACアドレスを元に接続したり、切断したり。
# 接続
$ bt-pan --debug client XX:XX:XX:XX:XX:XX
# 切断
$ bt-pan --debug client XX:XX:XX:XX:XX:XX -d
接続が成功していればifconfig
を実行してbnep0
というインターフェースにアドレスが割り振られている。
実際に通信できるか試したい場合はWifiをオフにするとよい。その代わりsshやvnc、RDPは切断される覚悟で。
あとがき
2014年当時、興味本位のアイデアを実現できたので記事にしたが、その後Raspberry Piを外に持ち出してiPhoneでテザリングするなんていう酔狂な真似は一度もしなかった。
では、なぜ2017年版を書くか。それはあの記事がちょいちょいリンクされているからである。内情を晒すと、あの記事は2017年現在もこの小さな個人ブログでアクセスのある記事なのだ。かつてはあの記事からアフィリエイトしているBluetoothドングルがたくさん売れていた。よい時代であった。最近はさっぱりだ。
いまだにアクセスがあるということは一定数の需要があるということと、今はBlueZが更新されてあの記事通りでは動かないということがわかったので、更新版を書いたのであった。
ただ、今回のために色々調べるとRaspberry PiはPixelデスクトップで簡単にBluetoothが扱えるようになっていたり、iPhone 7はBluetooth 4.2なので6LoWPANで接続できないか試してダメだったりで面白かった。