局域网唤醒工作3次,然后不再工作

更新:我现在的主要理论是(详见下文):

  • Ubuntu系统在待机模式下关闭NIC电源?
  • 用于64位机器的Realtek RTL8111驱动程序不起作用?

任何人都可以确认或否认吗?


我几天前安装了Ubuntu 12.04,并通过桌面菜单将Ubuntu机器置于待机状态后,通过从另一台PC发送Magic Packets来启动Wake-on-lan。 我这样做了3次,效果很好。 然后突然它不再起作用了! 这怎么可能呢?!

我知道当WOL不起作用时可能有1000件事可能是错误的,但它连续工作3次的事实排除了大部分。 它工作了3次(相隔几分钟),之后从未奏效。 在它工作的3次和随后的10次不成功的尝试中,我唯一想要的是PC上发送魔术包的防火墙,我很快关闭防火墙以消除这个潜在的问题,并且还validation了数据包通过使用wireshark(当然还有Ubuntu机器)。 我在测试开始前几个小时对Ubuntu进行了全面更新。

大多数时候我觉得我只是盲目地测试各种事物。 例如,是否有任何方法可以检查NIC的电源是否未关闭? 并且“cat / proc / acpi / wakeup”不是“禁用”意味着什么是错的吗?

我知道WOL上有很multithreading,但没有一个在10分钟内完美运行然后无缘无故地停止工作。 一些线程在安装12.04之后提到了WOL的问题。 我现在唯一剩下的想法是安装Ubuntu 10.但这只是一个测试,而不是一个永久的解决方案,而且是一个非常耗时的测试。 而且我确定RTL8111 / RTL8168在较旧的Ubuntus上没有得到适当的支持(那些使用旧版Ubuntus的NIC存在重大问题),这使得这样的测试更加复杂。


您只需阅读上面的文字即可了解我的问题。 但是对于深入的信息,这里有一些我已经完成的事实和测试:

  • 我尝试将“pci = noacpi”,“pci = noapic”,“acpi = force”和“apm = on apm = power-off”添加到/ etc / default / grub(我validation了grab.cfg中的更改)。 当然是一次一个(每次重启后)。
  • 我看到在cat / proc / acpi / wakeup中禁用了NIC,使用命令“echo -n LAN | sudo tee / proc / acpi / wakeup”启用它,现在列表中启用了LAN
  • 防火墙已禁用
  • ethtool显示wol处于“g”状态(我尝试将其设置为“pumbag”,并且还将“d”设置为“g”)。
  • 它是一个带有Realtek RTL1111 / R8168B的华硕主板(驱动程序R8169附带内核,它与该驱动程序一起工作了3次;最近我改为驱动程序R8168,这不容易,但我看不出任何差异,人们似乎报告R8169应该现在用于所有)。
  • 我还尝试在Ubuntu机器上使用wireshark来validation魔术包通过PC
  • 尝试重置CMOS RAM(通过跳线和取出电池5分钟)。
  • 处于睡眠状态时,NIC LED不会亮起,但在睡眠状态下也不会在我的其他PC上点亮,WOL也适用于该PC。
  • 我尝试在BIOS中启用“在击中PS / 2空格键时唤醒”,启动Ubuntu,从菜单中选择“待机”,使其进入待机状态,按下空格键,然后启动。 在终端命令pm-suspend和halt -p之后也工作(虽然关闭并重新启动)但在命令停止后没有唤醒。 暂停使操作系统关闭但硬件继续运行。 在所有情况下仍然忽略WOL。
  • 在待机状态下,电源LED指示灯闪烁,风扇和硬盘静音,WOL尝试后保持不变
  • 用于发送魔术包的程序是:magicpacket(点)free(dot)fr在不同的(Windows)PC上
  • Magic Packet发送器的设置是UDP端口80子网掩码255.255.255.255,这是它使用的设置,但我也尝试了端口9,7和0,TCp和掩码0.0.0.0。 有双重检查MAC地址,但我通过复制粘贴输入它,并且它已经使用这些设置3次,如我所提到的。
  • 我只使用了Ubuntu一周(从很久以前就有一些关于Linux和Unix系统的简短经验)
  • 我还没有将“ethtool -s eth0 wol g”(或“echo -n LAN | sudo tee / proc / acpi / wakeup”)添加到启动脚本中,因为我相信如果这些东西设置正确,WOL应该工作ONCE(脚本是需要在每次重启后使其工作)主板华硕AT5NM10T-I没有BIOS更新(是v0306)在这些页面上尝试了大多数事情:wiki.ubuntuusers.de/Wake_on_LAN – en.gentoo-wiki.com/wiki/ACPI / Fix_common_problems#Nothing_Works – wiki.xbmc.org/index.php?title=HOW-TO:Enable_Wake-On-Device_for_Ubuntu

更新:

  • 是的我在BIOS中启用了“PME上电”(PCI电源管理事件)。 我也启用了“开启电源”,因为有人建议在论坛中,但我不能相信它会影响WOL但也不会受到伤害。 由于它工作3 rimes这没有BIOS设置问题。
  • 我实际上尝试重新安装Ubuntu 12.04,然后它再次工作3次然后死了。 (实际上这次它工作了一次,然后没有工作,然后连续工作了2次,然后再也没有。)—这个新测试的一些细节可能没有意义:直到我才行正确启用Samba,以便在工作组中的PC之间共享文件。 它工作3次我没有发送sudo ethtool -s eth0 wol g(sudo ethtool eth0总是报告它处于wol模式“g”所以显然我的NIC以该模式启动)。 而sudo cat / proc / acpi / wakeup现在总是将LAN显示为“已启用”。 这次我使用下载的12.04没有更新(Ubuntu的桌面说没有更新),后来(很久它停止工作)它说有136个更新,我安装它们并重新绑定,仍然无法正常工作。
  • 显然这个网卡对Linux用户来说多年来一直很麻烦,但我认为它最近运行正常,内核带有驱动程序。 它是我认为最常见的NIC之一。

更新:

  • 我用Ubuntu 11.10测试过。 它有相同的问题,或它的一个版本:WOL似乎在4次中有1次工作。 不会突然停止工作,每次都不起作用(远离它)。
  • 使用Windows 7进行测试。安装了Realtek驱动程序。 在NIC设置(HW管理器)中勾选“仅允许魔术包唤醒”,它可以完美地工作,连续测试5次。 注意:首先我没有费心安装video和音频驱动程序,然后只有hibernate工作,但它确实响应WOL调用完美无缺。 安装的video和音频驱动程序以及“PC Probe II”似乎与ACPI驱动程序有关。 在我在维基百科上阅读ACPI后,如果系统中的一个设备不支持acpi,Windows可能不允许等待(S3)。
  • 在Windows中处于睡眠模式(或hibernate)状态时,我仍然可以在路由器的连接设备列表中看到此设备(但NIC上的LED指示灯已经熄灭)。 (正如我之前所说的,对于不同的PC,即使WOL工作,也不会在此列表中看到它,所以显然并非总是这样)。 但是,对于这台PC,它可能表明NIC没有任何电源,即此处的问题是Ubuntu关闭了NIC的电源。
  • 我忘了提到我的机器都是64位。 32位驱动程序工作并不常见,而64位驱动程序则不工作。 所以有人怀疑64位Realtek驱动程序仍然无法在带有RTL8111等的Linux上正常工作 – 我知道这些NIC多年来一直存在问题我最近解读过,但是有人可以确认他们有RTL8111 / RTL8168和RTL8168B等在64位计算机上使用WOL?

所以我现在的主要理论是:

  • Ubuntu系统在待机模式下关闭NIC电源?
  • 64位机器的Realtek驱动程序不起作用?

我有同样的问题。 但是在我的机器上安装了一个旧的Suse和Windows。 当我关闭那个操作系统的WakeOnLan工作正常。 但我想使用Ubuntu 1204LTS 64bit。 从Ubuntu关闭后,计算机不会在WOL上唤醒。 我用ethtool测试了设置。 但一切都经过调整。

解决方案:从realtek下载最新的驱动程序并进行安装。 这对我行得通。

http://www.realtek.com/downloads/下载此驱动程序:

LINUX driver for kernel 2.6.x and 2.4.x (Support x86 and x64) 8.030.00 2012/5/14 

然后在终端中输入以下内容:

 cd ~/Downloads tar -xvjf r8168-8.030.00.tar.bz2 cd r8168-8.030.00/ sudo ./autorun.sh 

就这样。

罗尔夫