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


14

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

私が見つけた最も近い答えは/ubuntu//a/961460/613425でしたが、うまくいきませんでした。私もiwconfig wlan0 poweroff答えを試してみましたが、再起動する前でも動作しませんでした。


したがって、上記でリンクした質問とは異なり、WiFiは不安定ではありません。ふたを開けてラップトップをスリープから復帰させると、接続して正常に動作します。WiFiをより速く接続したい。ラップトップをスリープ状態にして20マイル移動するとどうなりますか?それでも接続されたままですか?
user68186

@ user68186は、ふたを再び開いた後でも同じ場所に接続されたままになることはありません。再び接続するまで待たなければなりません。
ゲランドOC

スリープ中は接続されたままにならないということですか?私はかつて寝ている間に話す人を知っていましたが、私のラップトップはそれをしません。ラップトップのスリープを完全に停止しない限り、あなたが望むことは可能だとは思いません。
user68186

1
@SebastianStark Razerのブレードステルス2016 12.5"これは、Windows上で所望の動作を持っていた。
Guerlando経口避妊薬

1
への出力はiwconfig何ですか?質問を編集して、コメントではなくここに出力を提供してください。
ファビー

回答:


14

スリープ後に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.powersaveから23(省電力を有効にします)。
  • 既に設定されて3いる場合は、2(省電力を無効にする)に設定してみてください。
  • ファイル実行を保存した後 sudo systemctl restart NetworkManager

2つ目は、systemdサスペンドから再開するときにWiFiカーネルモジュールをリロードするスクリプトです。これはこの答えから来ています: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行をコメント化します。

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

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

Fedora 31 + XFCE(gnomeシェルではない)でも同じ問題があり、最初の方法で解決しました。
jherek

2

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


2

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.