Ubuntu 18.04 - Ethernet ถูกตัดการเชื่อมต่อหลังจากถูกระงับ


29

อีเธอร์เน็ตจะไม่ทำงานต่อหลังจากถูกระงับ

sudo service network-manager restart

ไม่สำเร็จ. รีสตาร์ทเท่านั้นแก้ปัญหาได้


ปัญหานี้กลับมาให้ฉันใน Xubuntu 18.04.2, เคอร์เนล 4.15.0-54
HEKTO

คำตอบ:


45

ข้อบกพร่องหลักของ 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

madzohanฉันรู้สึกว่ามันอาจจะซ้ำซ้อนในการเพิ่มการแก้ไขของคุณเนื่องจากฉันพูดถึงสองครั้งในคำตอบว่าสคริปต์จะต้องปฏิบัติการ: "systemd รันสคริปต์ปฏิบัติการทั้งหมดภายใต้ / lib / systemd / system-sleep" และ "ฉันสร้างขึ้น และสร้างสคริปต์ปฏิบัติการ / lib / systemd / system-sleep / r8169-refresh "
เปาโล Marcel Coelho Aragão

สิ่งนี้ได้รับการแก้ไขในเคอร์เนล 4.15.0-24.26 ซึ่งเผยแพร่ในวันที่ 07/01/2018 ดังนั้นจึงไม่จำเป็นต้องแก้ไขปัญหาอีกต่อไป
เปาโล Marcel Coelho Aragão

1
ฉันมีปัญหานี้ในแล็ปท็อปของฉันตั้งแต่ติดตั้งอัปเดตบางอย่างเมื่อไม่กี่วันที่ผ่านมา การแก้ปัญหาที่ระบุข้างต้นยังคงแก้ปัญหาได้ ขอบคุณมาก!
Daniel

@Daniel, คุณช่วยโพสต์ผลลัพธ์ของ: apt policy linux-image-generic ได้หรือไม่? ปัญหานี้ควรได้รับการแก้ไขตั้งแต่ 07/01/2018 ไม่ควรแก้ไขปัญหานี้อีกต่อไป
เปาโล Marcel Coelho Aragão

มันไม่ใช่แค่ 18.04 ใน 16.04 ไดรเวอร์เคอร์เนลrtl8169จะต้องถูกยกเลิกการโหลดและโหลดหลังจากระงับเช่นกัน: askubuntu.com/questions/950871//
WinEunuuchs2Unix

8

นี่เป็นอีกวิธีง่ายๆ (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 จะยกเลิกการโหลดและโหลดโมดูลของคุณโดยอัตโนมัติเมื่อปลุกจากการหยุดชั่วคราว

ไชโย!


3

มันเกิดขึ้นกับฉันด้วย

ยกเลิกการโหลด / โหลดซ้ำเคอร์เนลเครือข่ายโมดูล / ไดรเวอร์ทำงาน

ฉันเป็น r8169 ดังนั้น (เหมือนรูท): (ฉันพิมพ์ด้วยมือดังนั้นจึงมีความล่าช้า)

sudo modprobe -r r8169
sudo modprobe -i r8169

ฉันยังลบ mii ระหว่างการลองครั้งแรก ไม่จำเป็นว่า


sudo modprobe -i r8169
aaaa

ทำงาน! ฉันต้องทำสิ่งนี้ด้วยตนเองตลอดเวลาที่ฉันดำเนินการต่อหรือไม่
aaaa

สิ่งนี้เหมือนกับโซลูชันที่ยอมรับ แต่ไม่มีการใส่ไว้ในสคริปต์ที่จะถูกเรียกใช้เมื่อดำเนินการต่อและไม่มีฟังก์ชันการบันทึก
Dominic108

3

ฉันมีปัญหาเดียวกันและฉันพบวิธีแก้ปัญหานี้

  1. run: sudo lshw -C network
    เพื่อค้นหาโมดูลเคอร์เนลการ์ดเครือข่ายของคุณ

    ใน * -network, description: Ethernet interface, ในฟิลด์การตั้งค่าที่พบ
    driver=sky2สำหรับฉัน sky2 เป็นโมดูลเคอร์เนลเครือข่ายอีเธอร์เน็ตสำหรับแล็ปท็อปของฉัน

  2. ฉันสร้างไฟล์ 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
    

หลังจากนั้นปัญหาก็แก้ไขได้


นี่เป็นวิธีเดียวกับโซลูชันที่ยอมรับโดยไม่มีฟังก์ชันการบันทึก
Dominic108

1

ตรวจพบการเชื่อมต่ออีเธอร์เน็ตหรือไม่

แล้วก็

เปิด 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

[main] plugins = ifupdown, keyfile [ifupdown] managed = true [อุปกรณ์] wifi.scan-rand-mac-address = no
aaaa

นี่คือสิ่งที่ฉันมีในไฟล์ ....
aaaa

คุณได้อัปเดตไฟล์ conf ก่อนหน้านี้หรือไม่? ถ้าใช่เริ่มต้นใหม่ & ตรวจสอบ
Santhosh Veer

ฉันลองแก้ไข Santhosh Veer ของคุณแล้ว ยังคงเป็นสีเทา อีเธอร์เน็ต
aaaa

เรียกใช้คำสั่งนี้ systemctl status NetworkManager.serviceเพื่อตรวจสอบข้อผิดพลาด
Santhosh Veer

1

ฉันแก้ไขปัญหานี้ใน 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

0

กดCtrl+ Alt+ Tเพื่อไปที่เทอร์มินัลแล้วพิมพ์:

sudo apt-get purge tlp

หรือ

แก้ไข/etc/default/tlpและเปลี่ยนแปลง:

WOL_DISABLE = NO

ไปยัง

WOL_DISABLE = YES

ยินดีต้อนรับสู่ถาม Ubuntu! ;-)คุณช่วยทบทวนการแก้ไขของฉันและทบทวนความช่วยเหลือในการแก้ไขเพื่อปรับปรุงการอ่านคำตอบของคุณในอนาคต ... ;-)
Fabby

0

ฉันไม่มีชื่อเสียงพอที่จะแสดงความคิดเห็นหรือตอบโต้คำตอบที่ยอมรับ (ซึ่งตอนนี้ล้าสมัยแล้ว)

หากคุณเรียกใช้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

0

ฉันมีปัญหาเดียวกัน แต่วิธีแก้ปัญหาที่นี่ไม่ได้ผลสำหรับฉัน ฉันใช้เวลาหลายวันผ่านกระดานสนทนาหลายเรื่องในหัวข้อนี้และลองทุกอย่าง มีการกล่าวถึงวิธีแก้ไขปัญหาสองทางเลือกอัปเกรดเคอร์เนลหรือติดตั้งไดรเวอร์โมดูลก่อนหน้า ฉันเลือกรุ่นหลังและติดตั้งไดรเวอร์ 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


0

สิ่งนี้เกิดขึ้นกับฉันเช่นกันกับเมนบอร์ด 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 แต่การแก้ปัญหาด้วยคลื่นความถี่ยังคงใช้งานได้


0

ฉันมีปัญหาเดียวกัน (ไดรเวอร์ = r8169), อีเธอร์เน็ตไม่ทำงานหลังจากดำเนินการต่อจากการหยุดชั่วคราว

มันทำงานได้ดีอย่างสมบูรณ์กับเคอร์เนล 4.13.0-31 กล่าวอีกนัยหนึ่งอีเธอร์เน็ตยังคงทำงานต่อหลังจากกลับมาทำงานต่อจากการหยุดชั่วคราว

แต่ด้วยเคอร์เนล 4.15.0-32 อีเธอร์เน็ตไม่ทำงานหลังจากที่กลับมาทำงานต่อจากการหยุดชั่วคราว ฉันลองแก้ไขแล้ว

modprobe -r r8169
modprobe -i r8169

แต่สิ่งนี้ไม่มีผลกระทบ

ฉันได้รายงานสิ่งนี้ให้ https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1752772


1
นี่ไม่ใช่คำตอบจริงๆเว้นแต่คุณจะแนะนำให้ใช้เคอร์เนล 4.13
wjandrea

0

สิ่งแรกที่ต้องตรวจสอบ: รีสตาร์ทตัวจัดการเครือข่าย / บริการ:

sudo service network-manager รีสตาร์ท

หากไม่ได้ผลให้ตรวจสอบคำตอบอื่น ๆ ในโพสต์นี้


0

ฉันแสดงว่าสคริปต์ไฟล์ 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 บางคนหยุดทำงานหลังจากกลับมาจากการระงับ


0

พบปัญหาเดียวกันกับ Dell Inspiron 15 ของฉัน: ไม่มีเครือข่ายแบบใช้สายหลังจากรีบูตหรือระงับ

ฉันดูเหมือนจะแก้ไขสิ่งนี้โดยเปลี่ยนการตั้งค่าใน BIOS:

ขั้นสูง -> เทคโนโลยี Intel Connect (R) Smart Connect -> ปิดการใช้งาน

(ค่าเริ่มต้นคือเปิดใช้งาน)

เป็นผลข้างเคียงรายการเมนูได้หายไปปรากฏขึ้นอีกครั้งหลังจากรีเซ็ตการตั้งค่าทั้งหมดเป็นค่าเริ่มต้น

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