以太网在暂停后无法恢复。
sudo service network-manager restart
不起作用。只有重启才能解决问题。
答案1
跟踪此问题的主要 Ubuntu 错误(至少对于网络内核模块 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
为脚本名称及其 PID。这样您就可以检查脚本是否重新加载了内核模块:
grep r8169-refresh /var/log/syslog
答案2
这是另一个简单的解决方案:创建一个 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,所以(作为 root):(我手写输入,所以有延迟)
sudo modprobe -r r8169
sudo modprobe -i r8169
我第一次尝试时也删除了 mii。不过没有必要。
答案4
它检测到以太网连接吗?
然后
打开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