Raspberry PiをPANクライアントにする方法
作成日: ・ 更新日:
スマホのBluetoothテザリングで、 Raspberry Pi(Raspbian)をインターネットに接続する方法です。
まずは、Raspberry PiとスマホをBluetoothペアリングさせます。
GUIで設定する場合は、Raspbianデスクトップ画面の右上にあるBluetoothアイコンから簡単に行えるので、説明を省きます。
ターミナル上で設定する場合は、 ターミナル上でBluetoothのペアリングをする方法 を参照してください。
無事ペアリングができたら、いよいよ接続ですが、 Raspbianでは、デフォルトではPAN接続ができません。
なので、以下のコマンドを入力して、bt-panをダウンロードしてください。
$ wget https://raw.githubusercontent.com/mk-fg/fgtk/master/bt-pan
実行できるようにパーミッション設定をします。
$ chmod 755 bt-pan
bt-panで使用するdbusをインストールします。
$ sudo apt-get install python-dbus
実行する前に、まずは親機のMACアドレスを確認しましょう。 ペアリング済みの場合、親機のMACアドレスは、以下のコマンドで取得することができます。 ペアリングについては、こちらを参照してください。
$ bluetoothctl devices
では、実行してみましょう。PANクライアントにするには、以下のコマンドを入力してください。
$ bt-pan client [親機のMACアドレス]
これで、Raspberry PiがPANクライアントになったはずです。 以下のコマンドを入力して確認してみましょう。
$ ifconfig
「bnep0:」から始まる行があれば、接続できているはずです。
補足
Traceback (most recent call last):
File "./bt-pan", line 237, in <module>
if __name__ == '__main__': sys.exit(main())
File "./bt-pan", line 209, in main
try: iface = net.Connect(opts.uuid)
File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 145, in __call__
**keywords)
File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
message, timeout)
dbus.exceptions.DBusException: org.bluez.Error.Failed: Input/output error
このようなエラーが発生して接続できないという人へ
Raspberry Piに初めから内蔵されているBluetoothチップは、 相性の問題などでこのようなエラーが発生してしまうようです。
対策としては、Bluetoothレシーバーを別で購入して本体に取り付ければいいそうです。 私もその方法でこのエラーが出なくなりました。
レシーバーを取り付けたら、内蔵のBluetoothを無効にしましょう。
/boot/config.txt
に以下の内容を追記して、再起動してください。
dtoverlay=pi3-disable-bt
$ sudo reboot