जवाबों:
कम से कम नेटवर्क कर्नेल मॉड्यूल r8169 के लिए इस समस्या को ट्रैक करने वाला मुख्य उबंटू बग लगता है:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1752772
मैं इस मुद्दे से प्रभावित होने वाले सभी लोगों को वहाँ जाने के लिए प्रोत्साहित करता हूँ और यह चिन्हित करता हूँ कि यह आपको प्रभावित करता है, ताकि अनुरक्षकों को इस बात की बेहतर समझ हो कि यह कितना गंभीर है।
मैं Xubuntu 18.04 की एक नई स्थापना चला रहा हूं, और मेरा ईथरनेट इंटरफ़ेस कर्नेल मॉड्यूल 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
स्क्रिप्ट और उसके पीआईडी के नाम के साथ टैग किए जाएंगे । इस तरह आप जाँच सकते हैं कि स्क्रिप्ट ने कर्नेल मॉड्यूल को पुनः लोड किया है या नहीं:
grep r8169-refresh /var/log/syslog
यहां एक और सरल (r) समाधान है: एक सिस्टमड सर्विस बनाएं, जिसका एकमात्र कार्य एक निलंबित चक्र के बाद मॉड्यूल को अनलोड / रीलोड करना है (मैंने इसे /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
, और आपको सेट किया जाना चाहिए !! सिस्टमड अब सस्पेंड से उठने पर अपने मॉड्यूल को स्वचालित रूप से अनलोड-एंड-रीलोड करेगा।
चीयर्स!
वह मेरे साथ भी हुआ।
नेटवर्क कर्नेल मॉड्यूल / ड्राइवर को लोड / पुनः लोड करें / ड्राइवर काम करता है।
मेरा r8169 है, इसलिए (रूट के रूप में): (मैंने हाथ से टाइप किया, इसलिए देरी हुई)
sudo modprobe -r r8169
sudo modprobe -i r8169
मैंने अपनी पहली कोशिश के दौरान mii को भी हटा दिया। हालांकि आवश्यक नहीं है।
मुझे भी यही समस्या थी और मुझे इसका समाधान मिला।
रन: sudo lshw -C network
अपने नेटवर्क कार्ड कर्नेल मॉड्यूल को खोजने के लिए
* -Network, विवरण में: ईथरनेट इंटरफ़ेस, कॉन्फ़िगरेशन फ़ील्ड में
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
नेटवर्क प्रबंधक को पुनरारंभ करें
sudo service network-manager restart
systemctl status NetworkManager.service
को चलाने के लिए त्रुटि की जाँच करें
मैंने अपने Ubuntu 18.04 बायोनिक पर इस ब्रोल्म को 4.15 से 4.20 तक (16.01.2019 को नवीनतम) UKUU का उपयोग करके अद्यतन करके हल किया।
नवीनतम कर्नेल स्थापित करने के लिए Ubuntu कर्नेल अद्यतन उपयोगिता स्थापित करें
sudo add-apt-repository ppa:teejee2008/ppa
sudo apt-get install ukuu
निम्न आदेश के साथ पहुँच नियंत्रण अक्षम करें:
sudo xhost +
फिर uku के साथ स्थापित करें
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-जेनेरिक से पुरानी है, तो आप स्वीकृत उत्तर https: //bugs.launchpad से जुड़े बग से सबसे अधिक प्रभावित
होते हैं। शुद्ध / Ubuntu / + स्रोत / linux / + बग / 1,752,772
BTW मैं इस बग का अनुभव किया और मेरे लिए lspci | grep 'Gigabit Ethernet'
दिखाता है
RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
इस बग को ठीक कर दिया गया है।
यदि आपका कर्नेल 4.15.0-24-जेनेरिक से पुराना है, तो बस चलाएं
apt-get update
apt-get upgrade
apt-get dist-upgrade
reboot
मुझे भी यही समस्या थी लेकिन यहाँ समाधान मेरे काम नहीं आया। मैंने इस विषय पर कई मंचों से गुजरते हुए दिन बिताए और हर चीज के बारे में कोशिश की। दो वैकल्पिक समाधानों का उल्लेख किया गया है, कर्नेल को अपग्रेड करें या पिछले मॉड्यूल ड्राइवर को स्थापित करें। मैंने बाद वाला चुना और r8168 ड्राइवर स्थापित किया। शुरू में, वह भी असफल रहा। हालांकि, मैंने कुछ ऐसा खोजा जो काम करता है और इसे पाउलो से समाधान के लिए अनुकूलित किया।
मैं कर्नेल 4.15.0-24-जेनेरिक के साथ (K) ubuntu 18.04 चला रहा हूं।
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) पाउलो से समाधान के आधार पर मैंने निम्नलिखित लिपि / लिब / सिस्टमड / सिस्टम-स्लीप / r8162-रिफ्रेश बनाया
#! / Bin / bash PROGNAME = $ (बेसन "$ 0") राज्य = $ 1 कार्रवाई = $ 2 फ़ंक्शन लॉग { लकड़हारा -i -t "$ PROGNAME" "$ *" } लॉग "$ कार्रवाई $ राज्य चल रहा है" अगर [[$ राज्य == पोस्ट]]; फिर लॉग करें "ifconfig down enp5s0" ifconfig enp5s0 नीचे "ifconfig up enp5s0" लॉग करें ifconfig enp5s0 192.168.10.213 फाई
यह कोड निश्चित रूप से मेरी मशीन (डिवाइस का नाम और आईपी-पता) के लिए विशिष्ट है। यह निश्चित रूप से सुधार किया जा सकता है, लेकिन यह इस समय मेरी जरूरतों को पूरा करता है।
यह NetworkManager के साथ काम करेगा।
यह 28 जुलाई, 2018 को Ubuntu 16.04 से 18.04 तक अपग्रेड करने के बाद गीगाबाइट-B250M-DS3H मदरबोर्ड के साथ मेरे साथ हुआ। कर्नेल 4.15.0-29-जेनेरिक है।
का परिणाम sudo lshw -C network
से पता चला है RTL8111 / 8168/8411 पीसीआई एक्सप्रेस ईथरनेट नियंत्रक, जबकि यह है कि r8169 दिखाया इस्तेमाल किया ड्राइवर है।
अंत में काम करने वाले ने ईथरनेट नियंत्रक (बड़ा आश्चर्य) के लिए ड्राइवर को स्थापित किया था:
sudo apt install r8168-dkms
और फिर कंप्यूटर को पुनः आरंभ करना (धन्यवाद औरypotter)। मुझे r8169 को ब्लैकलिस्ट नहीं करना था, लेकिन मुझे अभी भी एक स्क्रिप्ट बनानी थी, /lib/systemd/system-sleep/
जिसमें मैंने कॉल किया r8168-refresh-after-suspend
(एक ला पाउलो की सलाह) जो 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/1752777 पर सूचित किया है
मैं निरूपित करता हूं कि /lib/systemd/system-sleep/
प्रत्येक कार्य पर कई फिक्स फ़ाइल स्क्रिप्ट (मेरे ईथरनेट एडाप्टर के लिए संशोधित) !
फिर भी, यदि केबल-मॉडेम डिवाइस को सस्पेंड के बाद बंद कर दिया जाता है, और इसे लौटा दिया जाता है, तो रेज्यूमे सिस्टम के बाद, उबंटू आधारित सिस्टम नेटवर्क आइकन (अधिसूचना क्षेत्र में) के बावजूद, इंटरनेट से कनेक्ट नहीं कर सकता है।
इसे फिर से ठीक करने के लिए, मुझे नेटवर्क आइकन »ईथरनेट कनेक्शन पर क्लिक करना होगा। इस प्रकार, यह कनेक्शन को सफलतापूर्वक ताज़ा करता है। एक्स-
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
PS ऐसा लगता है कि सस्पेंशन से लौटने के बाद कुछ वीपीएन का सीएलआई काम करना बंद कर देता है।
मेरे डेल इंस्पिरॉन 15 के साथ भी यही समस्या थी: रिबूट या सस्पेंड के बाद कोई वायर्ड नेटवर्क नहीं।
मुझे लगता है कि यह BIOS में एक सेटिंग को बदलकर तय किया गया है:
उन्नत -> इंटेल (आर) स्मार्ट कनेक्ट टेक्नोलॉजी -> अक्षम
(डिफ़ॉल्ट सक्षम है)
साइड इफेक्ट के रूप में, मेनू आइटम गायब हो गया है, डिफ़ॉल्ट मानों के लिए सभी सेटिंग्स को रीसेट करने के बाद फिर से प्रकट होने के लिए।