อีเธอร์เน็ตจะไม่ทำงานต่อหลังจากถูกระงับ
sudo service network-manager restart
ไม่สำเร็จ. รีสตาร์ทเท่านั้นแก้ปัญหาได้
อีเธอร์เน็ตจะไม่ทำงานต่อหลังจากถูกระงับ
sudo service network-manager restart
ไม่สำเร็จ. รีสตาร์ทเท่านั้นแก้ปัญหาได้
คำตอบ:
ข้อบกพร่องหลักของ Ubuntu ที่ติดตามปัญหานี้อย่างน้อยสำหรับโมดูลเคอร์เนลเครือข่าย r8169 ดูเหมือนว่าจะเป็น:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1752772
ฉันขอแนะนำให้ทุกคนที่ได้รับผลกระทบจากปัญหานี้ไปที่นั่นและทำเครื่องหมายว่ามีผลกระทบต่อคุณเพื่อให้ผู้ดูแลมีความรู้สึกที่ดีขึ้นว่ารุนแรงแค่ไหน
ฉันกำลังติดตั้ง Xubuntu 18.04 ใหม่และอินเทอร์เฟซ Ethernet ของฉันใช้เคอร์เนลโมดูลr8169ซึ่งฉันค้นพบว่ากำลังทำงานอยู่:
sudo lshw -C network
จะมี 2 กลุ่มคือกลุ่มของข้อมูลหนึ่งที่เริ่มต้นด้วยและอีกด้วยdescription: Ethernet interface
description: Wireless interface
ภายใต้description: Ethernet interface
ค้นหาบรรทัดที่ขึ้นต้นด้วยconfiguration:
เช่นนี้
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full firmware=rtl_nic/rtl8105e-1.fw ip=192.168.100.6 latency=0 link=yes multicast=yes port=MII speed=100Mbit/s
คนขับจะอยู่ที่นี่: driver=
.
Systemd เรียกใช้สคริปต์ที่ปฏิบัติการทั้งหมดภายใต้/lib/systemd/system-sleep
ก่อนและหลังการระงับการผ่าน 2 พารามิเตอร์$1
คือรัฐ ( pre
ก่อนที่จะระงับหรือpost
หลังจากระงับ) และ$2
เป็นแอ็คชั่น ( suspend
, hibernate
, hybrid-state
หรือsuspend-then-hibernate
) systemd-suspend.service
นี้ถูกบันทึกไว้ในหน้าคนสำหรับ
เราจำเป็นต้องโหลดโมดูลสำหรับส่วนต่อประสานอีเธอร์เน็ตเมื่อดำเนินการต่อจากหยุดชั่วคราวหลังจากหยุดทำงานชั่วคราว ดังนั้นฉันจึงสร้างสคริปต์/lib/systemd/system-sleep/r8169-refresh
:
#!/bin/bash
PROGNAME=$(basename "$0")
state=$1
action=$2
function log {
logger -i -t "$PROGNAME" "$*"
}
log "Running $action $state"
if [[ $state == post ]]; then
modprobe -r r8169 \
&& log "Removed r8169" \
&& modprobe -i r8169 \
&& log "Inserted r8169"
fi
และทำให้ปฏิบัติการได้:
chmod +x /lib/systemd/system-sleep/r8169-refresh
ข้อความที่บันทึกจากสคริปต์จะไปที่/var/log/syslog
แท็กด้วยชื่อของสคริปต์และ PID ของมัน วิธีนี้คุณสามารถตรวจสอบว่าสคริปต์โหลดโมดูลเคอร์เนลใหม่หรือไม่:
grep r8169-refresh /var/log/syslog
นี่เป็นอีกวิธีง่ายๆ (r?) วิธีแก้ปัญหา: สร้างบริการ systemd ซึ่งมีหน้าที่เพียงอย่างเดียวคือการยกเลิกการโหลด / โหลดโมดูลหลังจากรอบการระงับ (ฉันตั้งชื่อ/etc/systemd/system/fix-r8169.service ):
[Unit]
Description=Fix RTL-8169 Driver on resume from suspend
After=suspend.target
[Service]
User=root
Type=oneshot
ExecStartPre=/sbin/modprobe -r r8169
ExecStart=/sbin/modprobe r8169
TimeoutSec=0
StandardOutput=syslog
[Install]
WantedBy=suspend.target
จากนั้นก็ดำเนินการsystemctl enable fix-r8169.service
และคุณควรจะตั้ง !! ตอนนี้ Systemd จะยกเลิกการโหลดและโหลดโมดูลของคุณโดยอัตโนมัติเมื่อปลุกจากการหยุดชั่วคราว
ไชโย!
มันเกิดขึ้นกับฉันด้วย
ยกเลิกการโหลด / โหลดซ้ำเคอร์เนลเครือข่ายโมดูล / ไดรเวอร์ทำงาน
ฉันเป็น r8169 ดังนั้น (เหมือนรูท): (ฉันพิมพ์ด้วยมือดังนั้นจึงมีความล่าช้า)
sudo modprobe -r r8169
sudo modprobe -i r8169
ฉันยังลบ mii ระหว่างการลองครั้งแรก ไม่จำเป็นว่า
ฉันมีปัญหาเดียวกันและฉันพบวิธีแก้ปัญหานี้
run: sudo lshw -C network
เพื่อค้นหาโมดูลเคอร์เนลการ์ดเครือข่ายของคุณ
ใน * -network, description: Ethernet interface, ในฟิลด์การตั้งค่าที่พบ
driver=sky2
สำหรับฉัน sky2 เป็นโมดูลเคอร์เนลเครือข่ายอีเธอร์เน็ตสำหรับแล็ปท็อปของฉัน
ฉันสร้างไฟล์ sky2.sh ลงใน: /lib/systemd/system-sleep/
โฟลเดอร์ด้วย
#!/bin/bash
modprobe -r sky2 # unload sky2 kernel module
modprobe -i sky2 # reload sky2 kernel module
และเปลี่ยนการอนุญาตด้วย:
sudo chmod a+x sky2.sh
หลังจากนั้นปัญหาก็แก้ไขได้
ตรวจพบการเชื่อมต่ออีเธอร์เน็ตหรือไม่
แล้วก็
เปิด NetworkManager.conf
sudo nano /etc/NetworkManager/NetworkManager.conf
ความคิดเห็น (เพิ่ม #) dns=dnsmasq
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
[ifupdown]
managed=true
รีสตาร์ท Network manager
sudo service network-manager restart
systemctl status NetworkManager.service
เพื่อตรวจสอบข้อผิดพลาด
ฉันแก้ไขปัญหานี้ใน Ubuntu 18.04 Bionic ของฉันโดยการอัพเดตเคอร์เนลจาก 4.15 เป็น 4.20 (ล่าสุดเมื่อวันที่ 16.01.2019) โดยใช้ UKUU
การติดตั้งเคอร์เนลล่าสุดติดตั้ง Ubuntu Kernel Update Utility
sudo add-apt-repository ppa:teejee2008/ppa
sudo apt-get install ukuu
ปิดใช้งานการควบคุมการเข้าถึงด้วยคำสั่งต่อไปนี้:
sudo xhost +
จากนั้นติดตั้งด้วย ukuu
sudo ukuu
sudo ukuu --install-latest
และรีบูต
sudo reboot
กดCtrl+ Alt+ Tเพื่อไปที่เทอร์มินัลแล้วพิมพ์:
sudo apt-get purge tlp
หรือ
แก้ไข/etc/default/tlp
และเปลี่ยนแปลง:
WOL_DISABLE = NO
ไปยัง
WOL_DISABLE = YES
ฉันไม่มีชื่อเสียงพอที่จะแสดงความคิดเห็นหรือตอบโต้คำตอบที่ยอมรับ (ซึ่งตอนนี้ล้าสมัยแล้ว)
หากคุณเรียกใช้lsmod | grep r8169
และแสดงว่าคุณได้โหลดโมดูลเคอร์เนล r8169 และเคอร์เนลของคุณมีอายุมากกว่า 4.15.0-24-generic คุณอาจได้รับผลกระทบจากข้อผิดพลาดที่เชื่อมโยงในคำตอบที่ยอมรับ
https: //bugs.launchpad สุทธิ / อูบุนตู / + แหล่งที่มา / Linux / + ข้อผิดพลาด / 1,752,772
BTW ฉันพบข้อผิดพลาดนี้และสำหรับฉันlspci | grep 'Gigabit Ethernet'
แสดงให้เห็น
RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
ข้อผิดพลาดนี้ได้รับการแก้ไขแล้ว
หากเคอร์เนลของคุณเก่ากว่า 4.15.0-24-generic ให้เรียกใช้
apt-get update
apt-get upgrade
apt-get dist-upgrade
reboot
ฉันมีปัญหาเดียวกัน แต่วิธีแก้ปัญหาที่นี่ไม่ได้ผลสำหรับฉัน ฉันใช้เวลาหลายวันผ่านกระดานสนทนาหลายเรื่องในหัวข้อนี้และลองทุกอย่าง มีการกล่าวถึงวิธีแก้ไขปัญหาสองทางเลือกอัปเกรดเคอร์เนลหรือติดตั้งไดรเวอร์โมดูลก่อนหน้า ฉันเลือกรุ่นหลังและติดตั้งไดรเวอร์ r8168 เริ่มแรกนั้นก็ล้มเหลวเช่นกัน อย่างไรก็ตามฉันค้นพบบางสิ่งที่ใช้งานได้และปรับให้เข้ากับวิธีแก้ปัญหาจากเปาโล
ฉันกำลังใช้งาน (K) Ubuntu 18.04 พร้อมเคอร์เนล 4.15.0-24-generic
เอาต์พุตจากเครือข่าย lshw -Cมีสิ่งนี้ ...
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:05:00.0
logical name: enp5s0
version: 0c
serial: 80:fa:5b:49:69:b3
size: 1Gbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8168 driverversion=8.045.08-NAPI duplex=full ip=192.168.10.213 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:133 ioport:e000(size=256) memory:df000000-df000fff memory:d0000000-d0003fff
ฉันติดตั้งแพ็คเกจr8168-dkmsแล้ว แต่นั่นยังไม่เพียงพอ ต้องใช้สองขั้นตอนเพิ่มเติม
ขั้นตอนที่ 1)แก้ไขไฟล์/etc/modprobe.d/r8168-dkms.confและเปิดใช้งานบรรทัด (เช่นลบความคิดเห็น) บัญชีดำ r8169
ขั้นตอนที่ 2)ขึ้นอยู่กับโซลูชันจากเปาโลฉันสร้างสคริปต์/ lib / systemd / system-sleep / r8168-ฟื้นฟูต่อไปนี้
#! / bin / ทุบตี PROGNAME = $ (ชื่อไฟล์พื้นฐาน "$ 0") รัฐ = $ 1 การกระทำ = $ 2 ฟังก์ชั่นบันทึก { logger -i -t "$ PROGNAME" "$ *" } เข้าสู่ระบบ "กำลังเรียกใช้ $ action $ state" ถ้า [[รัฐ $ = โพสต์]]; แล้วก็ เข้าสู่ระบบ "ifconfig down enp5s0" ifconfig enp5s0 down เข้าสู่ระบบ "ifconfig up enp5s0" ifconfig enp5s0 192.168.10.213 Fi
รหัสนี้เป็นของหลักสูตรเฉพาะสำหรับเครื่องของฉัน (ชื่ออุปกรณ์และที่อยู่ IP) มันสามารถปรับปรุงได้อย่างแน่นอน แต่มันตอบสนองความต้องการของฉันในขณะนี้
งานนี้จะกับ NetworkManager
สิ่งนี้เกิดขึ้นกับฉันเช่นกันกับเมนบอร์ด Gigabyte-B250M-DS3H หลังจากอัปเกรดจาก Ubuntu 16.04 เป็น 18.04 ในวันที่ 28 กรกฎาคม 2018 เคอร์เนลคือ 4.15.0-29-generic
ผลลัพธ์ของการsudo lshw -C network
แสดง RTL8111 / 8168/8411 PCI Express Gigabit Ethernet Controller ในขณะที่มันแสดงให้เห็นว่า r8169 เป็นไดรเวอร์ที่ใช้
สิ่งที่ได้ผลในที่สุดก็คือการติดตั้งไดรเวอร์เฉพาะสำหรับคอนโทรลเลอร์อีเธอร์เน็ต
sudo apt install r8168-dkms
จากนั้นรีสตาร์ทคอมพิวเตอร์ (ขอบคุณ andypotter) ฉันไม่ต้องขึ้นบัญชีดำ r8169 แต่ฉันยังต้องสร้างสคริปต์/lib/systemd/system-sleep/
ที่ฉันเรียกว่าr8168-refresh-after-suspend
(คำแนะนำของ la Paulo) ที่จะลบและใส่เข้าไปใหม่ r8168:
#!/bin/bash
# $1 is the state (pre or post)
# $2 is the action (suspend)
case $1/$2 in
pre/suspend)
modprobe -r r8168
;;
post/suspend)
modprobe -i r8168
;;
esac
และแน่นอนทำให้ใช้งานได้กับ:
sudo chmod +x /lib/systemd/system-sleep/r8168-refresh-after-suspend
สิ่งนี้ได้ผลเหมือนมนต์เสน่ห์ ดังนั้นนี่ยังคงเป็นปัญหาในเคอร์เนล 4.15.0-29 แต่การแก้ปัญหาด้วยคลื่นความถี่ยังคงใช้งานได้
ฉันมีปัญหาเดียวกัน (ไดรเวอร์ = r8169), อีเธอร์เน็ตไม่ทำงานหลังจากดำเนินการต่อจากการหยุดชั่วคราว
มันทำงานได้ดีอย่างสมบูรณ์กับเคอร์เนล 4.13.0-31 กล่าวอีกนัยหนึ่งอีเธอร์เน็ตยังคงทำงานต่อหลังจากกลับมาทำงานต่อจากการหยุดชั่วคราว
แต่ด้วยเคอร์เนล 4.15.0-32 อีเธอร์เน็ตไม่ทำงานหลังจากที่กลับมาทำงานต่อจากการหยุดชั่วคราว ฉันลองแก้ไขแล้ว
modprobe -r r8169
modprobe -i r8169
แต่สิ่งนี้ไม่มีผลกระทบ
ฉันได้รายงานสิ่งนี้ให้ https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1752772
สิ่งแรกที่ต้องตรวจสอบ: รีสตาร์ทตัวจัดการเครือข่าย / บริการ:
sudo service network-manager รีสตาร์ท
หากไม่ได้ผลให้ตรวจสอบคำตอบอื่น ๆ ในโพสต์นี้
ฉันแสดงว่าสคริปต์ไฟล์ Fix หลายตัว (แก้ไขเป็นอะแดปเตอร์อีเทอร์เน็ต) ใน/lib/systemd/system-sleep/
แต่ละงาน!
อย่างไรก็ตามหากอุปกรณ์เคเบิลโมเด็มถูกปิดการทำงานหลังจาก Suspend และสิ่งนี้ถูกส่งคืนหลังจากระบบ Resume ระบบที่ใช้ Ubuntu ไม่สามารถเชื่อมต่ออินเทอร์เน็ตอีกครั้งทั้งๆที่ไอคอนเครือข่าย (ในพื้นที่แจ้งเตือน) แสดงการเชื่อมต่อ
หากต้องการแก้ไขอีกครั้งฉันต้องคลิกที่ไอคอนเครือข่าย»การเชื่อมต่ออีเธอร์เน็ต ดังนั้นจึงรีเฟรชการเชื่อมต่อได้สำเร็จ X-¿
Ethernet controller: VIA Technologies, Inc. VT6105/VT6106S [Rhine-III]
Subsystem: D-Link System Inc DFE-520TX Fast Ethernet PCI Adapter
Kernel driver in use: via-rhine
Kernel modules: via_rhine
ป.ล. ดูเหมือนว่า CLI ของ vpn บางคนหยุดทำงานหลังจากกลับมาจากการระงับ
พบปัญหาเดียวกันกับ Dell Inspiron 15 ของฉัน: ไม่มีเครือข่ายแบบใช้สายหลังจากรีบูตหรือระงับ
ฉันดูเหมือนจะแก้ไขสิ่งนี้โดยเปลี่ยนการตั้งค่าใน BIOS:
ขั้นสูง -> เทคโนโลยี Intel Connect (R) Smart Connect -> ปิดการใช้งาน
(ค่าเริ่มต้นคือเปิดใช้งาน)
เป็นผลข้างเคียงรายการเมนูได้หายไปปรากฏขึ้นอีกครั้งหลังจากรีเซ็ตการตั้งค่าทั้งหมดเป็นค่าเริ่มต้น