在对Intel 82579LM GigaBit以太网控制器( Intel DQ67SW主板的板载以太网控制器)进行ping操作后不久,在发送魔术数据包(用于LAN唤醒)时,我正在经历一个非常恼人和神秘的行为。
所以基本上,如果我发送icmp回应请求,并在发送一个魔术包之前等待一段时间dt,我会遇到以下情况:
dt <1秒:电脑不会因为魔法包而被唤醒
dt> = 1秒:计算机由于魔术包而被唤醒
这个脚本是我正在谈论的场景的一个最小的实现:
#!/bin/sh ping -q -c 1 -W 1 $1 sleep $3 wakeonlan -p 7 $2 # Could be wakeonlan or etherwake or similar
这个脚本就会像“wake.sh ip mac dt”一样被调用:
Jonas@whatever:~$ ./wake.sh 10.0.1.147 00:22:4D:82:28:30 1.2 PING 10.0.1.147 (10.0.1.147) 56(84) bytes of data. --- 10.0.1.147 ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms Sending magic packet to 255.255.255.255:7 with 00:22:4D:82:28:30
还有一个问题存在。 不pipedt(dt = 0,0.5s,2s)的值如果连续调用两次脚本,调用之间的时间间隔dt',计算机将会唤醒。 导致计算机唤醒的这个dt值是20-40秒。
这是非常可重复的。 我试过使用两个不同的设备来运行唤醒脚本,使用不同的Wake-on-lan-utilities(唤醒LAN和etherwake),结果是一样的。 我也使用tcpdump来看魔术数据包。 无论ping请求是否先执行,它们都格式良好。
我在这里忽略一些明显的东西? 在以太网控制器中,icmp请求可能会阻塞后续的魔术数据包,这似乎是一个不太可能的缺陷。
任何想法(额外的testing执行等)将非常感激之前,我去跟英特尔谈。
最好的问候乔纳斯
我们在Windows 7的新版英特尔卡上也遇到过与WoL类似的问题。这个问题是由于驱动程序的节能特性造成的:PME和EEE
使用英特尔NIC驱动程序时,Windows 7会在closures时禁用PME( Power Management Event ),从而导致WoL无法使用。 为NIC启用PME(通过在Device Manager的NIC设备设置的“ Advanced选项卡中执行此操作)将允许WoL运行。
实施高能效以太网标准的第二个特点是,如果工作站长时间通电而空闲,WoL将变得不可靠。 这可能是由于EEE与其他networking硬件的弱兼容性。
解决方法是禁用EEE并为registry中具有此设置的所有NIC启用PME。 这是我们用来实现这个function的PowerShell脚本:
$regkey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}' if (Test-Path $regkey) { Get-ChildItem $regkey -ErrorAction SilentlyContinue |% { if ($_.GetValueNames() -contains 'EnablePME') { Write-Host "PME value found in $_" [Microsoft.Win32.Registry]::SetValue($_, 'EnablePME','1') } } Get-ChildItem $regkey -ErrorAction SilentlyContinue |% { if ($_.GetValueNames() -contains 'EEELinkAdvertisement') { Write-Host "EEELinkAdvertisement value found in $_" [Microsoft.Win32.Registry]::SetValue($_, 'EEELinkAdvertisement', '0') } } }
这里描述$regkey使用的GUID。 请注意,修改此registry项中的设置是危险的,因为它可能导致您的NIC无法使用,在最坏的情况下。
我想我已经回答了(至less部分)我自己的问题。
尝试使用Linux作为操作系统,而不是(通过现场光盘)解决了这个问题。 我无法复制我的问题中描述的行为。
所以我认为这是一个Windows问题。 然而,我启动回窗口,看看我是否仍然可以复制的行为 – 而我不能。 所以我现在的猜测是,这是一个操作系统的问题,而不是以太网控制器的问题。 在testing的时候(结果在我原来的问题)机器已经运行了几个月没有重新启动,Windows可能已经开始performance愚蠢。