web-dev-qa-db-ja.com

サスペンド後のWiFiスリープを防ぐ方法

ノートブックのふたを開くたびに、wifiが再接続するまで数秒待つ必要があります。 Windowsでは既に接続されていたことを覚えています。 WiFiがサスペンド時に接続解除しないようにする方法が必要です。

私が見つけた最も近い答えは https://askubuntu.com/a/961460/613425 でしたが、うまくいきませんでした。回答でiwconfig wlan0 poweroffも試してみましたが、再起動する前でも機能しませんでした。

14
Guerlando OCs

スリープ後にWiFiを有効にする方法は2つあります。最初のファイルはNetwork Managerの一般的なパッチです。ファイルをリストして作成したものを確認できます。

以下に示すように、省電力をオフまたは有効にします。

$ cat /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
[connection]
wifi.powersave = 3
# Slow sleep fix: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670041
#wifi.powersave = 2
  • 上記のNetwork Managerファイルを編集します。
  • WiFi.powersave2から3に変更します(省電力を有効にします)。
  • 既に3に設定されている場合は、2(省電力を無効にする)に設定してみてください。
  • ファイルを保存した後、Sudo systemctl restart NetworkManagerを実行します

2番目は、サスペンドから再開するときにWiFiカーネルモジュールを再ロードするsystemdスクリプトです。それはこの答えから来ます: Wifi利用可能なネットワークが突然現れない

このスクリプトは、一般的なIntelドライバー名であるiwlwifi`用に作成されています。異なる場合は、以下の名前を変更してください。

#!/bin/sh

# NAME: /lib/systemd/system-sleep/iwlwifi-reset
# DESC: Resets Intel WiFi which can be flakey after a long suspend.
# DATE: Apr 1, 2017. Modified August 30, 2017.

MYNAME=$0

restart_wifi() {
    /usr/bin/logger $MYNAME 'restart_wifi BEGIN'
    /sbin/modprobe -v -r iwldvm # This removes iwlwifi too
    /sbin/modprobe -v iwlwifi   # This starts iwldvm too
#    systemctl restart NetworkManager.service
    /usr/bin/logger 'systemctl restart NetworkManager.service (SUPPRESSED)'
    /usr/bin/logger $MYNAME 'restart_wifi END'
}

/usr/bin/logger $MYNAME 'case=[' ${1}' ]'
case "${1}/${2}" in
    hibernate|suspend|pre*)
      ;;
    resume|thaw|post*)
      restart_wifi;;
esac

注:ネットワークマネージャをリセットするだけで十分な場合があります。その場合は、#を削除して上記の行のコメントを解除します。次に、その2行の先頭に#を挿入して、その上の2行をコメント化します。

Sudo powersを使用して、iwlwifi-resetという名前のこのスクリプトを作成し、/lib/systemd/system-sleepディレクトリに保存する必要があります。次に、以下を使用して実行可能にマークします。

chmod a+x /lib/systemd/system-sleep/iwlwifi-reset
13

Systemdに関連していると思います。一時停止後にwifiデバイスを起動するスクリプトを作成できます。最初に手動で行うようにしてください。

2
Ramy Samy

最初に新しいスクリプトを作成し、実行可能にします。

Sudo touch /usr/lib/pm-utils/sleep.d/wakewifi
Sudo chmod a+x /usr/lib/pm-utils/sleep.d/wakewifi

次に、スクリプトを編集します

Sudo nano /usr/lib/pm-utils/sleep.d/wakewifi

そしてこのように見えるようにします。

 #!/bin/sh

    case "$1" in
        resume)
            nmcli radio wifi on
    esac

nmcli radio wifi onが正しいコマンドであることを確認するには、スリープモードに移行し、コンピューターを起動してから

Sudo nmcli radio wifi on

コンピューターが正しいwifiに接続する場合、これはオプションのソリューションかもしれません。コンピュータが自動接続するはずです。保存したwi-fiアクセスポイントに。

2
BD Bear