我在新笔记本上安装了 Ubuntu 14.04,但网络连接出现了问题。当我启动电脑时,一切都运行正常,但使用右上角的按钮重启后(例如内核更新后),有线互联网就不再工作了。不过无线没有问题(但我主要使用 LAN)。这不可能是硬件问题,因为它在 Windows 上运行正常(它是双启动机器)。奇怪的是,如果我在重启前插入笔记本电脑,一切都会正常运行 - 即使我用电池重启(-> 坏了),然后再用交流电重启一次(-> 又修好了)。
我已经做了一些进一步的测试:如果我在重新启动之前切断连接(物理上,在网络管理器中或两者),则不会发生任何变化。sudo service networking restart
对输出也没有影响
stop: Job failed while stopping
start: Job is already running: networking
但是,sudo service network-manager restart
它会像重新启动一样终止连接,迫使我关闭计算机,然后进行冷启动才能使其再次运行,但只有当笔记本电脑使用电池供电时才会发生这种情况。
我一直在想_
造成这种行为的原因是什么?
进一步的命令输出:
lspci -knn | grep Eth -A2
:
05:00.1 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 12)
Subsystem: ASUSTeK Computer Inc. Device [1043:200f]
Kernel driver in use: r8169
在 LAN 上(工作或不工作)以及在无线上(预料之中,我只是想确定一下)。
ifconfig
:
eth0 Link encap:Ethernet HWaddr 08:62:66:b5:0f:78
inet addr:192.168.1.112 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a62:66ff:feb5:f78/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9907 errors:0 dropped:0 overruns:0 frame:0
TX packets:6660 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9730805 (9.7 MB) TX bytes:726284 (726.2 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2391 errors:0 dropped:0 overruns:0 frame:0
TX packets:2391 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:228361 (228.3 KB) TX bytes:228361 (228.3 KB)
答案1
我已经解决了这个问题:由于电池/交流电的情况,我查看了省电设置,powertop
发现插入笔记本电脑会切换网络唤醒设置。
无论如何,通过反复试验,我发现 LAN 在重新启动和sudo service network-manager restart
激活 LAN 唤醒后都可以工作(我不知道为什么,因为我很幸运地偶然发现了它 - 如果有人能提供任何见解,我会很高兴)。因此,我的解决方案是添加
sleep 1
sudo ethtool -s eth0 wol g
(睡眠的值可能与rc.local
机器有关 - 我已经用 SSD 替换了计算机附带的 HDD,因此对于其他机器,它可能需要更高;诀窍是必须执行命令后网络接口已配置)。这样,无论电源状态如何,wol 始终处于激活状态 - 但有一个例外:如果您在交流电上启动计算机并在一段时间后拔掉插头,它会恢复到关闭状态。通常,这不应该是一个太大的问题,因为您必须通过命令行重新启动网络管理器才能注意到它 - 如果确实有必要,重新启动也可能是一个好主意。不过,也可以通过添加一个小脚本来修复此行为/etc/pm/power.d/
(类似于此问题的第一个答案中的脚本)问题):在电池模式分支中,输入
sudo ethtool -s eth0 wol g
并且 ac-mode-branch 保持为空。