ヾノ*>ㅅ<)ノシ帳

技術ブログに見せかけて、ジャンル制限のないふりーだむなブログです。

Wi-Fiが突然死んだと思いきやwpa_supplicantのロードエラーが原因だった

当方の環境はArch Linuxです。カーネルバージョンはこちら:

K_atc% uname -a
Linux K_atc 4.12.8-2-ARCH #1 SMP PREEMPT Fri Aug 18 14:08:02 UTC 2017 x86_64 GNU/Linux

PCを起動したらWi-Fi(wlp3s0)がunavailableで死んでいました。

K_atc% nmcli d
デバイス         タイプ    状態      接続            
br-7dd2d35de895  bridge    接続済み  br-7dd2d35de895 
docker0          bridge    接続済み  docker0         
enp0s26u1u2      ethernet  接続済み  有線接続 1      
enp0s25          ethernet  利用不可  --              
wlp3s0           wifi      利用不可  --              
lo               loopback  管理無し  -- 

ググっても同じ現象の人は居ませんでした。一日悩んだら原因が分かりました。 journalctl -u NetworkManagerでNetworkManagerのログをよく見るとwpa_supplicantでエラーが出ていることが分かりました。

K_atc% journalctl -u NetworkManager | tail -20
Sep 03 19:55:53 K_atc NetworkManager[1920]: <info>  [1504436153.0566] manager: NetworkManager state is now CONNECTED_GLOBAL
Sep 03 19:56:16 K_atc NetworkManager[1920]: <warn>  [1504436176.2134] supplicant: failed to acquire wpa_supplicant proxy: Wi-Fi and 802.1x will not be available (fi.w1.wpa_supplicant1 を StartServiceByName で呼び出そうとしてエラー: GDBus.Error:org.freedesktop.DBus.Error.TimedOut: Failed to activate service 'fi.w1.wpa_supplicant1': timed out)
... snipped ...
Sep 03 20:27:38 K_atc NetworkManager[1920]: <info>  [1504438058.5537] manager: rfkill: WiFi now disabled by radio killswitch
Sep 03 20:27:39 K_atc NetworkManager[1920]: <info>  [1504438059.5157] manager: rfkill: WiFi now enabled by radio killswitch

上と同様にwpa_supplicantのログを確認しました。libssl.so.1.0.0が見つからなかったために静かに死んでしまったようです。

K_atc% systemctl status wpa_supplicant
● wpa_supplicant.service - WPA supplicant
   Loaded: loaded (/usr/lib/systemd/system/wpa_supplicant.service; disabled; vendor 
   Active: failed (Result: exit-code) since Sun 2017-09-03 19:55:51 JST; 42min ago
  Process: 1927 ExecStart=/usr/bin/wpa_supplicant -u (code=exited, status=127)
 Main PID: 1927 (code=exited, status=127)
      CPU: 961us

Sep 03 19:55:51 K_atc systemd[1]: Starting WPA supplicant...
Sep 03 19:55:51 K_atc systemd[1]: wpa_supplicant.service: Main process exited, code=
Sep 03 19:55:51 K_atc wpa_supplicant[1927]: /usr/bin/wpa_supplicant: error while loa
Sep 03 19:55:51 K_atc systemd[1]: Failed to start WPA supplicant.
Sep 03 19:55:51 K_atc systemd[1]: wpa_supplicant.service: Unit entered failed state.
Sep 03 19:55:51 K_atc systemd[1]: wpa_supplicant.service: Failed with result 'exit-c

openssl-1.0パッケージを入れてあげれば解決します。以下手順:

K_atc% sudo pacman -S openssl-1.0
K_atc% ls /usr/lib/libssl*
/usr/lib/libssl.so        /usr/lib/libssl.so.1.1
/usr/lib/libssl.so.1.0.0  /usr/lib/libssl3.so
K_atc% sudo systemctl start wpa_supplicant  
[sudo] katc のパスワード:
K_atc% sudo systemctl restart NetworkManager
K_atc% nmcli d
デバイス         タイプ    状態              接続            
br-7dd2d35de895  bridge    接続済み          br-7dd2d35de895 
docker0          bridge    接続済み          docker0         
enp0s26u1u2      ethernet  接続済み          有線接続 1      
wlp3s0           wifi      接続中(設定中)  Buffalo-G-****
enp0s25          ethernet  利用不可          --              
lo               loopback  管理無し          --   

はい勝ち〜