Raspberry Pi については,「無線接続と有線接続の切り替えがうまくいかない」トラブルが,ネット上で論じられていることがある。
このときの「無線接続と有線接続の切り替え」は,つぎの2つの切り替えのことを謂っている:
![](doc/1.jpg)
結論から言うと,このトラブルはそもそも WiFi の使い方を間違っているのであり,擬似トラブルといったものである。
即ち,Raspberry Pi は,WiFi をつぎのように使うべきものである:
![](doc/2.jpg)
ここで,ケーブル接続を用いるのは,インターネットからファイルをダウンロードするときである。
Raspberry Pi の機動性を活かす接続形態はつぎのものであり,これが Raspberry Pi 使用の基本形ということになる :
この接続の実現方法は:
「無線接続と有線接続の切り替えがうまくいかない」トラブルは擬似トラブルであるが,一応これへの対処の考え方を,以下に記しておく。
- 有線・無線の両方が up のとき,RaspberryPi OS の Raspberry Pi は,無線で通信する。
即ち,有線・無線の両方が up のとき,無線通信が優先する。
有線接続,無線接続のインタフェースをそれぞれ eth0, wlan0 とすると,これはつぎのようになっているわけである:
|
eth0 |
up |
down |
wlan0 |
up |
無線 |
無線 |
down |
有線 |
─ |
翻って,有線から無線,無線から有線の切替は,上の表の up, down の切替の話になる。
- RaspberryPi OS の場合,up, down の切替は,つぎのコマンドによってできることになっている:
$ sudo ip link set eth0 up
$ sudo ip link set eth0 down
$ sudo ip link set wlan0 up
$ sudo ip link set wlan0 down
あるいは,
$ sudo ifconfig eth0 up
$ sudo ifconfig eth0 down
$ sudo ifconfig wlan0 up
$ sudo ifconfig wlan0 down
しかし実際は,up から down にはできるが,down から up にはできない。
即ち,downeth0 up, wlan0 up から wlan0 を down にすると,wlan0 は up に戻らない。
ether ケーブルを外してリブートしても,wlan0 は down のままになる。
こんな場合は,ipコマンドで eth0 も down にする。
そして ether ケーブルを外してリブートすると,wlan0 が up になる。
- VNC を使うと,デスクトップのバーにある IP接続アイコンのクリックして,有線・無線接続の切り替えを操作できる
- 「無線接続がされない」には,つぎの場合もある:
$ rfkill list
0: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: no
このときは,「sudo ip link set wlan0 up」に対しつぎのメッセージが返ってくるので,それとわかる:
RTNETLINK answers: Operation not possible due to RF-kill
block を外すには,つぎのコマンドを用いる:
$ sudo rfkill unblock wifi
これにより,つぎのようになる:
$ rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
- wlan0 が down の状態で Raspberry Pi をシャットダウンすると,つぎの起動で wlan0 は down のままである可能性が大きい。
これがつぎの状況だと,どうしようもなくなる:
Raspberry Pi につなぐディスプレイ・キーボードはない
有線接続はできない
そこで,つぎのことをルールとすべし:
シャットダウンは,Wi-Fi が up の状態で行う
|