Ubuntu 18.04 – 暂停后以太网断开连接
暂停后,以太网不会恢复。
sudo service network-manager restart
不起作用。 只有重启才能解决问题。
跟踪此问题的主要Ubuntu错误,至少对于网络内核模块r8169,似乎是:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1752772
我鼓励受此问题影响的每个人都去那里并标记它会影响到你,以便维护人员更好地了解它的严重程度。
我正在运行Xubuntu 18.04的全新安装,我的以太网接口使用内核模块r8169 ,我发现它正在运行:
sudo lshw -C network
将有2组信息,一组以description: Ethernet interface
开头description: Ethernet interface
,另一组description: Wireless interface
。 在description: Ethernet interface
,寻找以configuration:
开头的行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
,after suspend或post
,suspend之后), $2
是action( suspend
, hibernate
, hybrid-state
,或suspend-then-hibernate
)。 这在systemd-suspend.service
的手册页中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
从脚本记录的消息将使用脚本名称及其PID标记到/var/log/syslog
。 这样您就可以检查脚本是否重新加载了内核模块:
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。 不过没必要。
我有同样的问题,我找到了这个解决方案。
-
运行:
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
按Ctrl + Alt + T转到终端并键入:
sudo apt-get purge tlp
要么
编辑/etc/default/tlp
并更改:
WOL_DISABLE = NO
至
WOL_DISABLE = YES
我没有足够的声誉评论或赞成接受的答案(现已过时)
如果你运行lsmod | grep r8169
lsmod | grep r8169
并且它显示你加载了r8169内核模块,并且你的内核比4.15.0-24-generic更旧,那么你很可能会受到接受的答案中链接的bug的影响https://bugs.launchpad.net / ubuntu的/ +源极/ LINUX / +错误/ 1752772
顺便说一句,我经历过这个错误,对我来说是lspci | grep 'Gigabit Ethernet'
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驱动程序。 最初,那也失败了。 然而,我发现了一些有效的东西并使其适应了Paulo的解决方案。
我正在使用Kernel 4.15.0-24-generic运行(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)基于Paulo的解决方案我创建了以下脚本/ lib / systemd / system-sleep / r8168-refresh
#!/斌/庆典 PROGNAME = $(基本名称“$ 0”) 状态= $ 1 行动= $ 16 function日志{ logger -i -t“$ PROGNAME”“$ *” } 记录“运行$ action $ state” if [[$ state == post]]; 然后 记录“ifconfig down enp5s0” ifconfig enp5s0 down 记录“ifconfig up enp5s0” ifconfig enp5s0 192.168.10.213 科幻
此代码当然特定于我的机器(设备名称和IP地址)。 它肯定可以改进,但它目前满足我的需求。
这适用于NetworkManager。
在2018年7月28日从Ubuntu 16.04升级到18.04后,这与我和Gigabyte-B250M-DS3H主板一样。内核是4.15.0-29-通用。
sudo lshw -C network
结果显示了RTL8111 / 8168/8411 PCI Express千兆以太网控制器,而它表明r8169是使用的驱动程序。
最终工作的是安装特定于以太网控制器的驱动程序(大惊喜):
sudo apt install r8168-dkms
然后重新启动计算机(Thanks andypotter)。 我没有必须将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内核中的问题,但是创可贴修复仍然有效。
我有同样的问题(driver = r8169),从暂停恢复后以太网不起作用。
它与内核4.13.0-31完美配合。 换句话说,以太网在从暂停状态恢复后继续工作。
但是对于内核4.15.0-32,以太网在从挂起恢复后不起作用。 我已经尝试了修复modprobe -r r8169 modprobe -i r8169,但这没有效果。
我已将此报告给https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1752772
- Vuze-vs 5.7.6.0-snap1(稳定版)无法从17.10升级到Ubuntu 18.04升级版
- 在软件更新器上没有从17.10升级到18.04LTS 32位
- Netplan Generate一无所获
- 安装nVidia 390.74后,Ubuntu 18.04启动卡在“启动NVIDIA Persistence Daemon”消息
- 如何纠正明显损坏的图形(例如缺少标签)?
- 为什么我没有获得Ubuntu 18.04升级?
- 如何在Ubuntu Mate 18.04上打开Wobbly Windows?
- 在ubuntu 18.04服务器中禁用ipv6
- 华硕ROG GX501上的WiFi与Ubuntu 18.04配合使用,Ubuntu 16.04上失败(英特尔无线AC 9560)