วิธีการป้องกัน wifi sleep หลังจากถูกระงับ


14

ทุกครั้งที่ฉันเปิดฝาสมุดบันทึกฉันต้องรอสองสามวินาทีเพื่อเชื่อมต่อ wifi อีกครั้ง ฉันจำได้ว่าใน Windows มันเชื่อมต่อแล้ว ฉันต้องการวิธีป้องกัน wifi จากการไม่เชื่อมต่อกับการระงับ

คำตอบที่ใกล้เคียงที่สุดที่ฉันพบคือ/ubuntu//a/961460/613425แต่มันไม่ทำงาน ฉันลองiwconfig wlan0 poweroffคำตอบด้วย แต่ก็ไม่ได้ผลแม้แต่ก่อนรีบูต


ดังนั้นแตกต่างจากคำถามที่คุณเชื่อมโยงข้างต้น WiFi ของคุณไม่เสถียร มันเชื่อมต่อและทำงานได้ดีหลังจากที่คุณเปิดฝาและปลุกแล็ปท็อปจากการนอนหลับ คุณต้องการ WiFi เพื่อเชื่อมต่อได้เร็วขึ้น จะเกิดอะไรขึ้นเมื่อคุณเคลื่อนย้ายแล็ปท็อปของคุณไป 20 ไมล์ในขณะที่หลับ มันจะยังคงเชื่อมต่ออยู่หรือไม่?
user68186

@ user68186 มันไม่เคยเชื่อมต่อแม้ในสถานที่เดียวกันหลังจากที่ฉันเปิดฝาอีกครั้ง ฉันต้องรอให้มันเชื่อมต่ออีกครั้ง
Guerlando OCs

คุณหมายถึงไม่มีการเชื่อมต่อในขณะที่หลับหรือไม่? ฉันเคยรู้จักใครที่เคยพูดขณะนอนหลับ แต่แล็ปท็อปของฉันไม่ทำเช่นนั้น ฉันไม่คิดว่าสิ่งที่คุณต้องการจะเป็นไปได้เว้นแต่คุณจะหยุดแล็ปท็อปของคุณจากการนอนหลับโดยสิ้นเชิง
user68186

1
@SebastianStark Razer Blade Stealth 2016 12.5 "มันมีพฤติกรรมที่ต้องการบน windows
Guerlando OCs

1
ผลลัพธ์iwconfigคืออะไร โปรดแก้ไขคำถามของคุณเพื่อแสดงผลลัพธ์ที่นี่แทนที่จะแสดงความคิดเห็น
Fabby

คำตอบ:


14

มีสองวิธีในการเปิดใช้งาน WiFi หลังจากนอนหลับ สิ่งแรกคือแพตช์ทั่วไปไปยังตัวจัดการเครือข่ายอย่างที่คุณเห็นฉันทำตามรายการไฟล์:

ปิดหรือเปิดใช้งานการประหยัดพลังงานตามที่แสดงด้านล่าง:

$ 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จาก2เป็น3(เปิดใช้งานการประหยัดพลังงาน)
  • หากตั้งค่าไว้แล้วให้3ลองตั้งค่าเป็น2(ปิดใช้งานการประหยัดพลังงาน)
  • หลังจากบันทึกไฟล์ที่รัน sudo systemctl restart NetworkManager

ที่สองคือsystemdสคริปต์ที่โหลดโมดูลเคอร์เนล WiFi เมื่อกลับมาทำงานจากการหยุดชั่วคราว มันมาจากคำตอบนี้: เครือข่ายไร้สายที่มีอยู่ไม่แสดงขึ้นมาทันที :

สคริปต์นี้เขียนขึ้นสำหรับ iwlwifi` ซึ่งเป็นชื่อไดรเวอร์ของ Intel ทั่วไป หากชื่อของคุณแตกต่างกันโปรดเปลี่ยนชื่อด้านล่าง:

#!/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

หมายเหตุ:บางครั้งการรีเซ็ตตัวจัดการเครือข่ายเป็นสิ่งที่จำเป็น #ในกรณีที่ยกเลิกการแสดงความคิดเห็นบรรทัดข้างต้นโดยการเอา จากนั้นคอมเม้นท์สองบรรทัดด้านบนโดยใส่#ที่จุดเริ่มต้นของทั้งสองบรรทัด

คุณจะต้องสร้างสคริปต์นี้เรียกว่าiwlwifi-resetมีอำนาจและบันทึกลงในไดเรกทอรีsudo /lib/systemd/system-sleepจากนั้นทำเครื่องหมายว่าปฏิบัติการได้โดยใช้:

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

มีปัญหาเดียวกันกับ Fedora 31 + XFCE (ไม่ใช่กับ gnome shell) วิธีแรกแก้ไขได้
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

หากคอมพิวเตอร์ของคุณเชื่อมต่อกับ wifi ที่ถูกต้องนี่อาจเป็นทางเลือกสำหรับคุณ คอมพิวเตอร์ของคุณควรเชื่อมต่ออัตโนมัติ ไปยังจุดเข้าใช้งาน Wi-Fi ที่บันทึกไว้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.