ラズパイ同士で1対1で無線通信したい。
慣れてるWiFiだとすぐにできそうだけど、ちょくちょくセキュリティホールが見つかったりと不安なので、Bluetooth(以下BT)をWiFi代わりにしたい。いやBTの情報に疎いだけかもしれんが。
以前もbluetoothでネットワークしたいと挑戦したんだけどイマイチうまくいかないままだったが、以前「ラズベリーパイのはじめ方2022」に「ラズパイをBluetooth経由で操作できるようにしよう」(P118)という記事があって購入してたのでできるかな。
とりあえず、ラズパイじゃなくて普段使いのUbuntuPCで試す。
以下、Spc:サーバPC(Ubuntu20.04), Cpc:クライアントPC(Ubuntu22.04)
ネットの記事だと、ここが参考になるかな。
Spc$ sudo apt install bridge-utils #python-dbusは入ってた。
そしてbt-panをダウンロードしようとしたら無くなってるではないか。途方に暮れるところだったが、こちらの方がpython3版を公開してくれていたので助かった。
このページにbt-panを使わずにやるやり方が書かれてあったが、クライントとしての使い方だったし、PCのBluetoothがBT-PAN(NAP)に対応してるかわからないので、まずはbt-panで通信可能か確認しなくては。
ちなみにbt-pan使わない場合は、こちらが参考になるかもしれない。(未確認)
※ CpcでYouTube見ようとしてもCpcから音が出なくなる。とりあえずpulseaudio -kすれば出るようになったが。
慣れてるWiFiだとすぐにできそうだけど、ちょくちょくセキュリティホールが見つかったりと不安なので、Bluetooth(以下BT)をWiFi代わりにしたい。いやBTの情報に疎いだけかもしれんが。
以前もbluetoothでネットワークしたいと挑戦したんだけどイマイチうまくいかないままだったが、以前「ラズベリーパイのはじめ方2022」に「ラズパイをBluetooth経由で操作できるようにしよう」(P118)という記事があって購入してたのでできるかな。
とりあえず、ラズパイじゃなくて普段使いのUbuntuPCで試す。
以下、Spc:サーバPC(Ubuntu20.04), Cpc:クライアントPC(Ubuntu22.04)
ネットの記事だと、ここが参考になるかな。
Spc$ sudo apt install bridge-utils #python-dbusは入ってた。
そしてbt-panをダウンロードしようとしたら無くなってるではないか。途方に暮れるところだったが、こちらの方がpython3版を公開してくれていたので助かった。
このページにbt-panを使わずにやるやり方が書かれてあったが、クライントとしての使い方だったし、PCのBluetoothがBT-PAN(NAP)に対応してるかわからないので、まずはbt-panで通信可能か確認しなくては。
ちなみにbt-pan使わない場合は、こちらが参考になるかもしれない。(未確認)
Spc$ wget(略)bt-pan Spc$ chmod +x bt-pan Bluetoothをオン(=Soft blocked: no)に。 Spc$ rfkill list 0: hci0: Bluetooth Soft blocked: yes Hard blocked: no Spc$ sudo rfkill unblock 0 クライアントPC側も Cpc$ rfkill list 0: hci0: Bluetooth Soft blocked: yes Hard blocked: no Cpc$ sudo rfkill unblock 0 BTのペアリングでスキャンしても見つからないので困ってたらここにたどり着いて、discoverableコマンド発見したのでクライアント側を検索できるようにした。 Cpc$ sudo bluetoothctl Agent registered [CHG] Controller XX:XX:E3:F9:11:XX Pairable: yes [bluetooth]# discoverable on Changing discoverable on succeeded ※一定時間経過で自動でオフになる。オフになってもペアリングできた。 BTのペアリングするためにスキャン Spc$ sudo bluetoothctl Agent registered [CHG] Controller XX:XX:7D:DA:71:XX Pairable: yes [bluetooth]# scan on Discovery started [CHG] Controller XX:XX:7D:DA:71:XX Discovering: yes [NEW] Device XX:XX:E3:F9:11:XX Cpc BTのペアリング [bluetooth]# pair XX:XX:E3:F9:11:XX Attempting to pair with XX:XX:E3:F9:11:XX [CHG] Device XX:XX:E3:F9:11:XX Connected: yes Request confirmation [agent] Confirm passkey 009496 (yes/no): yes ※Cpcでも同様にyes 信頼する機器として設定。これしないといちいち確認が発生する。 [bluetooth]# trust XX:XX:E3:F9:11:XX [CHG] Device XX:XX:E3:F9:11:XX Trusted: yes [bluetooth]# exit 何故かbrctlでpan0インターフェースを作成してるけど、今回はブリッジじゃなく1対1。上記本P120 Spc$ sudo brctl addbr pan0 Spc$ sudo brctl setfd pan0 0 Spc$ sudo brctl stp pan0 off Spc$ sudo ip addr add 169.254.245.150/16 brd + dev pan0 # リンクローカル用アドレス Spc$ ip address show pan0 6: pan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether XX:XX:cd:ac:0a:55 brd ff:ff:ff:ff:ff:ff inet 169.254.245.150/16 brd 169.254.255.255 scope global pan0 valid_lft forever preferred_lft forever bt-panをサーバとして(確認用にデバッグモードで)起動 Spc$ sudo ./bt-pan --debug server pan0 DEBUG:root:Using local device (addr: XX:XX:7D:DA:71:XX): /org/bluez/hci0 DEBUG:root:Registered uuid 'nap' with bridge/dev: pan0 / XX:XX:7D:DA:71:XX ここで上記本P121を参考にクライアント側UbuntuのGUIで設定した。CLIでの設定はわからない。 Ubuntuの「設定」ウィンドウを開き、「Bluetoothの設定」画面でデバイスSpcが切断になってるのでクリックして、接続スイッチを入れる。 すると「ネットワーク」画面に「Spc」という設定ができているので、歯車をクリックしてIPv4設定タブでメソッドを「ローカルへのリンク専用」にして保存。 そうするとネットワーク画面で「Spc」のスイッチを入れると通信可能になる。 上記GUI操作の「ローカルへのリンク専用」設定以外は以下のCLIで可能。 Cpc$ sudo bluetoothctl Agent registered [CHG] Controller XX:XX:E3:F9:11:XX Pairable: yes [bluetooth]# connect XX:XX:7D:DA:71:XX Attempting to connect to XX:XX:7D:DA:71:XX [CHG] Device XX:XX:7D:DA:71:XX Connected: yes Connection successful [CHG] Device XX:XX:7D:DA:71:XX UUIDs: XX001801-0000-1000-8000-00805f9b34fb [CHG] Device XX:XX:7D:DA:71:XX ServicesResolved: yes [Spc]# quit Cpc$ nmcli con NAME UUID TYPE DEVICE lxdbr0 XX2ea7bd-b1c7-4516-894b-ea4ad3ed49e8 bridge lxdbr0 Spc ネットワーク XXd4d985-77d4-48b0-85e8-e10f55012bd0 bluetooth -- 有線接続 1 XX9f2d67-6cd5-36ca-960b-699d45aedc56 ethernet -- Cpc$ sudo nmcli con up 'Spc ネットワーク' 接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/74) Cpc$ ssh 169.254.245.150 # アクセス成功!
※ CpcでYouTube見ようとしてもCpcから音が出なくなる。とりあえずpulseaudio -kすれば出るようになったが。
※コメント投稿者のブログIDはブログ作成者のみに通知されます