やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Raspbian stretchのネットワーク接続ができなくなった……

 またしてもトラブル。

対象環境

前回まで

振り返り

 直前までVolumioのインストールを試みていた。ネットワークに接続できていないようなので諦めてRaspbianに戻った所、Raspbianでもネットワーク接続ができない状態になってしまった。

 VolumioとRaspbianはそれぞれ異なるディスクなので関係ないと思うのだが……。

現状

  • 無線LAN: 接続せず
  • 有線LAN: 接続した

  • タスクバー右上のWifiアイコンをクリックする

  • OFFならTurn On Wi-Fiをクリックする
  • 接続したいルータのSSIDを選んでクリックする
  • パスワードを入力してOKボタンをクリックする

 SSIDも以前と同じく表示される。パスワードも残っていた。でも繋がらない。

参考

 すべて確認したが接続されず……。

  1. ルータの管理画面でIPアドレスが割り振られているのを確認した
  2. タスクバー右上のWifiボタンを押下し、ルータのSSIDとパスワードを確認した
  3. /etc/wpa_supplicant/wpa_supplicant.confも同様に、ルータのSSIDとパスワードを確認した
  4. /etc/dhcpcd.confに以下のように設定した
  5. 再起動した

/etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
    ssid="ルータのSSID(本体機器の裏に貼ってある)"
    psk="暗号化パスワード(ルータ管理画面で設定したもの)"
    key_mgmt=WPA-PSK
}

/etc/dhcpcd.conf

interface wlan0
static ip_address=192.168.11.6/24
static routers=192.168.11.1
static domain_name_servers=192.168.11.1
ID? 意味
eth0 有線LAN
wlan0 無線LAN
IP 誰の?
192.168.11.1 ルータ
192.168.11.6 対象ラズパイ(ルータ管理画面で確認)

 なお、以下のコマンドは存在しなかった。

 有線LANには接続できた。ipコマンドの結果は以下。無線LANIPアドレスが無い。

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 有線のMACアドレス brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.8/24 brd 192.168.11.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 IPv6のIPアドレス scope link 
       valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 無線のMACアドレス brd ff:ff:ff:ff:ff:ff
$ ip addr show wlan0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether b8:27:eb:25:e2:89 brd ff:ff:ff:ff:ff:ff

 Wifiのロックを解除して起動。

$ rfkill unblock wifi
$ sudo ip link set wlan0 up

 IPアドレスが取得できるはずが……取得できず。

$ ip a
...
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether b8:27:eb:25:e2:89 brd ff:ff:ff:ff:ff:ff

 ロック状況を確認しても解除されている。問題なさそう。

$ rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: hci0: Bluetooth
    Soft blocked: yes
    Hard blocked: no

 無線LANカーネルモジュールbrcmfmacのログを見てみる。

$ dmesg | grep brcm
[   15.237692] brcmfmac: F1 signature read @0x18000000=0x15264345
[   15.244491] brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006
[   15.245134] usbcore: registered new interface driver brcmfmac
[   15.919092] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Feb 27 2018 03:15:32 version 7.45.154 (r684107 CY) FWID 01-4fbe0b04
[   15.919657] brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 9.10.105 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2018-03-09 18:56:28 
[   21.757566] brcmfmac: power management disabled

 brcmfmac: power management disabled? 無線LAN機器の電力管理機能っぽい。後述するがsudo iwconfig wlan0コマンドで見るとonなので矛盾する。謎。iwconfigのバグという噂もある  そもそもこの電源管理機能は今回の無線LAN切断と関係あるのか?

$ sudo journalctl | grep wlan0
 9月 25 17:09:13 raspberrypi dhcpcd-run-hooks[463]: wlan0: starting wpa_supplicant
 9月 25 17:09:14 raspberrypi kernel: IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
 9月 25 17:09:14 raspberrypi dhcpcd[382]: wlan0: waiting for carrier
 9月 25 17:09:14 raspberrypi dhcpcd[382]: wlan0: carrier acquired
 9月 25 17:09:14 raspberrypi dhcpcd[382]: wlan0: IAID eb:25:e2:89
 9月 25 17:09:14 raspberrypi dhcpcd[382]: wlan0: adding address fe80::8658:91d7:457f:4a8
 9月 25 17:09:14 raspberrypi dhcpcd[382]: wlan0: probing address 192.168.11.6/24
 9月 25 17:09:14 raspberrypi dhcpcd[382]: wlan0: carrier lost
 9月 25 17:09:14 raspberrypi dhcpcd[382]: wlan0: deleting address fe80::8658:91d7:457f:4a8
 9月 27 08:26:41 raspberrypi sudo[2266]:       pi : TTY=pts/0 ; PWD=/home/pi ; USER=root ; COMMAND=/sbin/ip link set wlan0 up
 9月 27 08:53:47 raspberrypi sudo[2884]:       pi : TTY=pts/2 ; PWD=/home/pi ; USER=root ; COMMAND=/sbin/iwconfig wlan0

 wlan0: deleting address アドレスが不吉。削除したっぽいけど大丈夫なの?

$ sudo iwconfig wlan0
wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=31 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

 Not-Associatedなので繋がっていない。

 ステルスSSIDの場合はscan_ssid=1を追加するらしい。今回は関係なさそう。タスクバー右上のWifiアイコンをクリックするとSSIDは表示されているので。

/etc/wpa_supplicant/wpa_supplicant.conf

 network={
         ssid="XXXXX"
         psk="xxxxx"
         scan_ssid=1
 }

 /etc/network/interfacesでの設定はその昔使っていたらしい。stretchでは使わないようだ。現状は以下。

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

 その後、有線LANを接続したり再起動したり、OS再インストールを覚悟しグチをブログに書いていたりしているうちに、いつの間にか繋がった。  なぜか有線LAN接続していたのに、無線LANアイコンが表示されていたので発覚。謎。

結論

 Wifi復活した。原因不明。また死ぬかもしれない。直ったのはいいが5時間も費やした。原因不明なので徒労感しかない。