web-dev-qa-db-ja.com

Linux(Arch)WPA_SUPPLICANTサービスが@bootを開始していません

Microsoft Surface Pro 6でLinuxの「Arch」をセットアップしても問題ありませんが、サービスとしてのwpa_supplicantに問題があります。サービスは有効になっていますが、@起動時に開始できません。 rootとしてログインした後、「systemctlstartwpa_supplicant.service」はうまく機能します。 (私には)タイミングの問題のように思えますが、WiKiやGoogleで自分自身を助けることができませんでした。助けていただければ幸いです。

/etc/wpa_supplicant.conf

network={
    ssid="MyWiFi"
    psk=be131c51e250735aab71b89563250cba1e13e513ce53e037cd2351791dd07c52
}

/etc/systemd/system/wpa_supplicant.service

[Unit]
Description=WPA supplicant
Before=network.target
Wants=network.target

[Service]
Type=dbus
BusName=fi.w1.wpa_supplicant1
ExecStart=/usr/bin/wpa_supplicant -u -i wlp1s0 -c /etc/wpa_supplicant.conf

[Install]
WantedBy=multi-user.target
Alias=dbus-fi.w1.wpa_supplicant1.service

journalctl(起動後)

    -- Logs begin at Thu 2019-08-01 03:57:36 MST, end at Fri 2019-08-02 05:28:18 MST. --
Aug 02 05:27:41 surface systemd[1]: Starting WPA supplicant...
Aug 02 05:27:41 surface wpa_supplicant[462]: Successfully initialized wpa_supplicant
Aug 02 05:27:41 surface systemd[1]: Started WPA supplicant.
Aug 02 05:27:41 surface wpa_supplicant[462]: Could not read interface wlp1s0 flags: No such device
Aug 02 05:27:41 surface wpa_supplicant[462]: nl80211: Driver does not support authentication/association or connect commands
Aug 02 05:27:41 surface wpa_supplicant[462]: nl80211: deinit ifname=wlp1s0 disabled_11b_rates=0
Aug 02 05:27:41 surface wpa_supplicant[462]: Could not read interface wlp1s0 flags: No such device
Aug 02 05:27:41 surface wpa_supplicant[462]: wlp1s0: Failed to initialize driver interface
Aug 02 05:27:41 surface systemd[1]: wpa_supplicant.service: Main process exited, code=exited, status=255/EXCEPTION
Aug 02 05:27:41 surface systemd[1]: wpa_supplicant.service: Failed with result 'exit-code'.

journalctl(手動でサービスを開始した後)

    -- Logs begin at Thu 2019-08-01 03:57:36 MST, end at Fri 2019-08-02 05:28:55 MST. --
Aug 02 05:28:51 surface systemd[1]: Starting WPA supplicant...
Aug 02 05:28:51 surface wpa_supplicant[505]: Successfully initialized wpa_supplicant
Aug 02 05:28:51 surface systemd[1]: Started WPA supplicant.
Aug 02 05:28:55 surface wpa_supplicant[505]: wlp1s0: Trying to associate with e0:3f:49:9b:4f:e8 (SSID='MyWiFi' freq=2437 MHz)
Aug 02 05:28:55 surface wpa_supplicant[505]: wlp1s0: Associated with e0:3f:49:9b:4f:e8
Aug 02 05:28:55 surface wpa_supplicant[505]: wlp1s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
Aug 02 05:28:55 surface wpa_supplicant[505]: wlp1s0: WPA: Key negotiation completed with e0:3f:49:9b:4f:e8 [PTK=CCMP GTK=CCMP]
Aug 02 05:28:55 surface wpa_supplicant[505]: wlp1s0: CTRL-EVENT-CONNECTED - Connection to e0:3f:49:9b:4f:e8 completed [id=0 id_str=]
1
Hose

サービスを開始するためにwhenを指定しなかったため、開始が早すぎます。その時点ではインターフェイスが実際にはまだ存在しないため、「wlp1s0は存在しません」と表示されます。

推奨される方法は、次を使用することです。

[Unit]
Requires=sys-subsystem-net-devices-wlp1s0.device
After=sys-subsystem-net-devices-wlp1s0.device

これはまた、在庫[email protected]問題を解決します(独自に作成する代わりに、そのユニットを使用することもできます)。

1
user1686