Up 無線接続と有線接続の切り替え 作成: 2021-02-03
更新: 2021-10-07


    Raspberry Pi については,「無線接続と有線接続の切り替えがうまくいかない」トラブルが,ネット上で論じられていることがある。
    このときの「無線接続と有線接続の切り替え」は,つぎの2つの切り替えのことを謂っている:

    結論から言うと,このトラブルはそもそも WiFi の使い方を間違っているのであり,擬似トラブルといったものである。
    即ち,Raspberry Pi は,WiFi をつぎのように使うべきものである:

    ここで,ケーブル接続を用いるのは,インターネットからファイルをダウンロードするときである。
    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 になる。


     註: Ubuntu や Raspbian for robots では,様相が違ってくる。
       Ubuntu の場合
       Raspbian for robots の場合



  • 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 の状態で行う