Risposte:
Il principale bug di Ubuntu che traccia questo problema, almeno per il modulo kernel di rete r8169, sembra essere:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1752772
Incoraggerei tutti coloro che sono interessati da questo problema ad andare lì e segnare che ti riguarda, in modo che i manutentori abbiano una migliore percezione di quanto sia grave.
Sto eseguendo una nuova installazione di Xubuntu 18.04 e la mia interfaccia Ethernet utilizza il modulo kernel r8169 , che ho scoperto in esecuzione:
sudo lshw -C network
Ci saranno 2 gruppi di informazioni, uno che inizia con description: Ethernet interface
e un altro con description: Wireless interface
. Sotto description: Ethernet interface
, cerca una linea che inizia con configuration:
, in questo modo:
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
Il driver sarà qui: driver=
.
Systemd gestisce tutti gli script eseguibili sotto /lib/systemd/system-sleep
prima e dopo la sospensione, passando 2 parametri, $1
è lo stato ( pre
prima di sospendere, o post
, dopo la sospensione), ed $2
è l'azione ( suspend
, hibernate
, hybrid-state
, o suspend-then-hibernate
). Questo è documentato nella pagina man di systemd-suspend.service
.
Dobbiamo ricaricare il modulo per l'interfaccia Ethernet quando si riprende dalla sospensione, dopo la sospensione. Quindi ho creato lo script /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
e lo ha reso eseguibile:
chmod +x /lib/systemd/system-sleep/r8169-refresh
I messaggi registrati dallo script verranno /var/log/syslog
contrassegnati con il nome dello script e il suo PID. In questo modo puoi verificare se lo script ha ricaricato il modulo del kernel:
grep r8169-refresh /var/log/syslog
Ecco un'altra semplice soluzione (r?): Creare un servizio systemd la cui unica attività è scaricare / ricaricare il modulo dopo un ciclo di sospensione (l'ho chiamato /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
Quindi esegui systemctl enable fix-r8169.service
e dovresti essere impostato !! Systemd ora scaricherà e ricaricherà automaticamente il modulo al riavvio della sospensione.
Saluti!
È successo anche a me.
Scarica / ricarica i moduli / driver del kernel di rete.
Il mio è r8169, quindi (come root): (ho digitato a mano, quindi c'è stato un ritardo)
sudo modprobe -r r8169
sudo modprobe -i r8169
Ho anche rimosso mii durante il mio primo tentativo. Non è necessario però.
Ho avuto lo stesso problema e ho trovato questa soluzione.
run: sudo lshw -C network
per trovare il modulo del kernel della scheda di rete
In * -network, descrizione: interfaccia Ethernet, nel campo di configurazione trovato
driver=sky2
per me. sky2 è un modulo kernel di rete ethernet per il mio laptop.
Creo un file sky2.sh in: /lib/systemd/system-sleep/
cartella con
#!/bin/bash
modprobe -r sky2 # unload sky2 kernel module
modprobe -i sky2 # reload sky2 kernel module
e modifica le autorizzazioni con:
sudo chmod a+x sky2.sh
Successivamente il problema è stato risolto.
Rileva la connessione Ethernet?
poi
Aperto NetworkManager.conf
sudo nano /etc/NetworkManager/NetworkManager.conf
Commenta (Aggiungi #) il dns=dnsmasq
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
[ifupdown]
managed=true
Riavvia il gestore di rete
sudo service network-manager restart
systemctl status NetworkManager.service
per verificare l'errore
ho risolto questo problema sul mio Ubuntu 18.04 Bionic aggiornando il kernel dalla 4.15 alla 4.20 (l'ultima il 16.01.2019) usando UKUU
per installare l'ultimo kernel installare Ubuntu Kernel Update Utility
sudo add-apt-repository ppa:teejee2008/ppa
sudo apt-get install ukuu
disabilitare il controllo di accesso con il seguente comando:
sudo xhost +
quindi installare con ukuu
sudo ukuu
sudo ukuu --install-latest
e riavviare
sudo reboot
Premi Ctrl+ Alt+ Tper andare a un terminale e digitare:
sudo apt-get purge tlp
o
modifica /etc/default/tlp
e cambia:
WOL_DISABLE = NO
a
WOL_DISABLE = YES
Non ho abbastanza reputazione per commentare o votare la risposta accettata (che ora è obsoleta)
Se esegui lsmod | grep r8169
e mostra che hai caricato il modulo del kernel r8169 e che il tuo kernel è più vecchio di 4.15.0-24-generico, molto probabilmente sei influenzato dal bug collegato nella risposta accettata
https: //bugs.launchpad. net / ubuntu / + source / linux / + bug / 1.752.772
A proposito ho riscontrato questo errore e per me lspci | grep 'Gigabit Ethernet'
mostra
RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
Questo errore è stato corretto.
Se il tuo kernel è più vecchio di 4.15.0-24-generico, esegui semplicemente
apt-get update
apt-get upgrade
apt-get dist-upgrade
reboot
Ho avuto lo stesso problema ma le soluzioni qui non hanno funzionato per me. Ho trascorso giorni a passare diversi forum su questo argomento e ho provato praticamente tutto. Sono menzionate due soluzioni alternative, aggiornare il kernel o installare il driver del modulo precedente. Ho scelto quest'ultimo e ho installato il driver r8168. Inizialmente, anche quello fallì. Tuttavia, ho scoperto qualcosa che funziona e l'ho adattato alla soluzione di Paulo.
Sto eseguendo (K) Ubuntu 18.04 con il kernel 4.15.0-24-generico.
L'output dalla rete lshw -C include questo ...
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
Ho installato il pacchetto r8168-dkms , tuttavia non è stato sufficiente. Sono stati necessari altri due passaggi.
Passaggio 1) Modifica il file /etc/modprobe.d/r8168-dkms.conf e abilita la riga (ovvero rimuovi il commento) blacklist r8169
Passaggio 2) Sulla base della soluzione di Paulo, ho creato il seguente script / lib / systemd / system-sleep / r8168-refresh
#! / Bin / bash PROGNAME = $ (nome base "$ 0") Stato = $ 1 action = $ 2 registro funzioni { logger -i -t "$ PROGNAME" "$ *" } registro "Esecuzione $ action $ state" if [[$ state == post]]; poi registro "ifconfig down enp5s0" ifconfig enp5s0 down registro "ifconfig up enp5s0" ifconfig enp5s0 192.168.10.213 fi
Questo codice è ovviamente specifico per la mia macchina (nome del dispositivo e indirizzo IP). Potrebbe certamente essere migliorato ma al momento soddisfa le mie esigenze.
Questo funzionerà con NetworkManager.
Questo è successo anche a me con una scheda madre Gigabyte-B250M-DS3H dopo l'aggiornamento da Ubuntu 16.04 a 18.04 il 28 luglio 2018. Il kernel è 4.15.0-29-generico.
Il risultato ha sudo lshw -C network
mostrato il controller Ethernet Gigabit PCI Express RTL8111 / 8168/8411, mentre ha dimostrato che r8169 è il driver utilizzato.
Ciò che alla fine ha funzionato è stato l'installazione del driver specifico per il controller Ethernet (grande sorpresa):
sudo apt install r8168-dkms
e quindi riavviare il computer (grazie andypotter). Non dovevo inserire nella blacklist r8169, ma dovevo comunque creare una sceneggiatura /lib/systemd/system-sleep/
che r8168-refresh-after-suspend
chiamavo (un consiglio di la Paulo) che avrebbe rimosso e reinserito 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
e, ovviamente, renderlo eseguibile con:
sudo chmod +x /lib/systemd/system-sleep/r8168-refresh-after-suspend
Questo ha funzionato come un fascino. Quindi, questo è ancora un problema nel kernel 4.15.0-29, ma la correzione del cerotto funziona ancora.
Ho lo stesso problema (driver = r8169), Ethernet non funziona dopo il ripristino dalla sospensione.
Funziona perfettamente con il kernel 4.13.0-31. In altre parole, Ethernet continua a funzionare dopo la ripresa dalla sospensione.
Ma con il kernel 4.15.0-32 Ethernet non funziona dopo aver ripreso dalla sospensione. Ho provato la correzione
modprobe -r r8169
modprobe -i r8169
ma questo non ha alcun effetto.
Ho segnalato questo a https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1752772
Dico che i diversi script di file Fix (modificati sulla mia scheda Ethernet) su /lib/systemd/system-sleep/
ciascuno funziona!
Tuttavia, se il dispositivo modem via cavo viene spento dopo la sospensione e restituito dopo l'attivazione del sistema, il sistema basato su Ubuntu non può riconnettersi a Internet, nonostante l'icona di rete (nell'area di notifica) mostri la connessione attivata.
Per risolverlo di nuovo, devo fare clic sull'icona di rete »Connessione Ethernet. Pertanto, aggiorna la connessione correttamente. 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
PS Sembra che alcuni CLI di vpn smettano di funzionare dopo essere tornati da Suspension.
Ho avuto gli stessi problemi con il mio Dell Inspiron 15: nessuna rete cablata dopo il riavvio o la sospensione.
Sembra che abbia risolto questo problema modificando un'impostazione nel BIOS:
Avanzato -> Tecnologia Intel (R) Smart Connect -> Disabilitato
(il valore predefinito è Abilitato)
Come effetto collaterale, la voce di menu è scomparsa, per apparire di nuovo dopo aver ripristinato tutte le impostazioni sui valori predefiniti.