[OT] WakeOnLan funktioniert nicht

Antworten
mhaegele
Beiträge: 293
Registriert: 18 Aug 2010, 13:55

[OT] WakeOnLan funktioniert nicht

Beitrag von mhaegele »

Hallo,

in letzter Zeit gibt es vermehrt Probleme mit nicht funktionierendem Wake-On-LAN.
Dies betrifft hauptsächlich - aber nicht ausschliesslich relativ neue Lenovo Kisten.
(z.B. M73Z all in one)
Betriebsystem: Win7 32

Dachte immer daß das Betriebssystem für Wake On Lan relativ egal ist, zumindest wenn die Kiste aus ist?

Ich möchte also einen nicht hochgefahrenen Client anschalten, nicht ein eingeschlafenes Windows wecken ...

Durch Bioseinstellungen konnte es (teil)behoben werden.

Code: Alles auswählen

F1 - Bios
Karteireiter:
Power
After Power Loss [Power Off]
Enhanced Power Saving Mode [Disabled]

Automatic Power On (untermenü)
Wake On LAN [PRIMARY]
Afair funktioniert es z.B. mit dem WOL wenn ich am Client das Stromkabel ziehe und wieder
anstöpsele. Dann blinkt auch die Netzwerkkarte im ausgeschalteteten Zustand alle paar Sekunden
-> was den Empfang der WoL Pakete ermöglicht.
Wenn der selbe Client mit "Windows7 normal heruntergefahren" wird ist die Netzwerkkarte komplett aus ...

Nun ist es natürlich relativ sinnbefreit für ein funktionierendes WOL die PCs manuell stromlos zu setzen ;-).

Gab es für Windows 7 neuerdings irgendwelche euch bekannten Änderungen die ein "falsches Herunterfahren" verhindern bzw. evtl. irgendwelche
"tiefen Schlafzustände" beim Herunterfahren aktivieren sodaß WOL nicht mehr funktioniert.

Vielleicht setzt jemand von euch besagte Kisten ein und hatte ähnliche Probleme?

(Werde ggf. auch noch ein Biosupdate in Betracht ziehen, wobei das Bios von Ende 2014 ist ...)

Danke für jeden Hinweis

MH
Benutzeravatar
SisterOfMercy
Beiträge: 1556
Registriert: 22 Jun 2012, 19:18

Re: [OT] WakeOnLan funktioniert nicht

Beitrag von SisterOfMercy »

mhaegele hat geschrieben:Dachte immer daß das Betriebssystem für Wake On Lan relativ egal ist, zumindest wenn die Kiste aus ist?
No, it also needs OS settings. Don't ask me why.

You also need BIOS settings, as you found out. Stuff such as "PME enable" or "Disable deep power down" also helps. Or "Wake on PCIe", sometimes it's hidden in a different meaning.

The WOL settings are set by the drivers of the network card. Some manufacturers are not that smart, and have it disabled by default. So, then we would have to enable it. Aaaaaand, of course every manufacturer thinks he's the best so there's not one right setting. :(

Here's a script I use to enable WOL:
Ok, well, I use it for more things, but I cut those functions out. So you'd better check the DefVar things for missing and unneeded stuff. At least this WORKS :D :D :D

Code: Alles auswählen

[Actions]
requiredWinstVersion >= "4.10.8.6"

DefStringList $FileInfo$

DefVar $LogDir$
DefVar $ProductId$  
DefVar $MinimumSpace$
DefVar $ExitCode$
DefVar $INST_SystemType$
DefVar $INST_MsVersion$

DefStringList $result$
DefVar $RegistryKey$
DefVar $testName$

Set $INST_MsVersion$ = GetMsVersionInfo
Set $INST_SystemType$ = GetSystemType
Set $LogDir$ = "%SystemDrive%\tmp"

Set $ProductId$       = "gce-settings"
Set $MinimumSpace$    = "150 MB"

if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$))
	LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$
	isFatalError
	; Stop process and set installation status to failed
endif

comment "Set Wake-on-LAN settings"
Set $result$ = getRegistryKeyListSysnative("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}")
for $value$ in $result$ do Sub_network_wake_on_lan	

[Sub_network_wake_on_lan]
set $RegistryKey$ = "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\" + "$value$" + "]"
Set $testName$ = GetRegistryStringValueSysNative($RegistryKey$ + "DriverDesc")
if contains($testName$,"82579")
	Registry_install_Intel_82579
endif
if contains($testName$,"82574")
	Registry_install_Intel_82574
endif
if (contains($testName$,"I217") or contains($testName$,"I210"))
	Registry_install_Intel_217
endif
if contains($testName$,"I354")
	Registry_install_Intel_354
endif
if contains($testName$,"82566")
	Registry_install_Intel_82566
endif
if contains($testName$,"nForce")
	Registry_install_Nvidia_nForce
endif
if (contains($testName$,"AR8121") or contains($testName$,"AR8113") or contains($testName$,"AR8114"))
	Registry_install_Atheros_AR8121
endif
if contains($testName$,"Realtek PCIe")
	Registry_install_Realtek_PCIe
endif


[Registry_install_Intel_354]
openkey $RegistryKey$
set "EnablePME" = "1"
set "*WakeOnMagicPacket"="1"
set "*WakeOnPattern"="1"

[Registry_install_Intel_217]
openkey $RegistryKey$
set "EnablePME" = "1"
set "*WakeOnMagicPacket"="1"
set "*WakeOnPattern"="1"

[Registry_install_Intel_82579]
openkey $RegistryKey$
set "EnablePME" = "1"
set "WakeOn"="118"

[Registry_install_Intel_82574]
openkey $RegistryKey$
set "EnablePME" = "1"
set "WakeOn"="118"
;set "WakeOnSlot" = "0"
;set "EnableWakeOnManagmentOnTCO" = "0"

[Registry_install_Intel_82566]
openkey $RegistryKey$
set "EnablePME" = "1"
set "WakeOn"="118"

[Registry_install_Nvidia_nForce]
openkey $RegistryKey$
set "EthWOLFromPowerOff" = "1"
set "WakeUpMagic" = "1"
set "WakeUpPattern" = "1"

[Registry_install_Atheros_AR8121]
openkey $RegistryKey$
set "ShutdownWake" = "1"
set "WakeUpCapability" = "6"
; Needed for windows 7?
set "WakeUpCapabilities" = "3"

[Registry_install_Realtek_PCIe]
openkey $RegistryKey$
set "S5WakeOnLan" = "1"
set "WolCap" = "3"

Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
trabs-ol
Beiträge: 64
Registriert: 07 Dez 2011, 10:46

Re: [OT] WakeOnLan funktioniert nicht

Beitrag von trabs-ol »

Hi,

das Problem hatten wir auch bei unseren Dell Optiplex 780 (zugegeben sind die Dinger ziemlich alt!).

Im Bios ist alles sauber eingetragen, aber die Default-Einstellungen des Windows Teibers waren WOL=OFF. Somit funktionierte WOL nach dem starten und herunterfahren von Windows nicht mehr. Du musst herausfinden, an welcher Stelle der Treiber die Einstellungen speichert und dann manuell eingreifen. Bei uns war das:

Code: Alles auswählen

reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0007 /v EnablePME /d 1 /f
Viele Grüße
Lars
mhaegele
Beiträge: 293
Registriert: 18 Aug 2010, 13:55

Re: [OT] WakeOnLan funktioniert nicht

Beitrag von mhaegele »

SisterOfMercy hat geschrieben:
mhaegele hat geschrieben:Dachte immer daß das Betriebssystem für Wake On Lan relativ egal ist, zumindest wenn die Kiste aus ist?
No, it also needs OS settings. Don't ask me why.

You also need BIOS settings, as you found out. Stuff such as "PME enable" or "Disable deep power down" also helps. Or "Wake on PCIe", sometimes it's hidden in a different meaning.

The WOL settings are set by the drivers of the network card. Some manufacturers are not that smart, and have it disabled by default. So, then we would have to enable it. Aaaaaand, of course every manufacturer thinks he's the best so there's not one right setting. :(

Here's a script I use to enable WOL:
Ok, well, I use it for more things, but I cut those functions out. So you'd better check the DefVar things for missing and unneeded stuff. At least this WORKS :D :D :D
[...]
Wow,
Das Script funktioniert einwandfrei mit Intel I217-LV
NICs

Vielen Dank dafür!

MH

(Die Option um das händisch im Windows Client-Treiber [Reiter: Energieverwaltung der Netzwerkkarte]
zu setzen heisst "Akt. über Magic Packet aus ausgeschaltetem Zustand")
andré
Beiträge: 329
Registriert: 07 Jan 2014, 10:48

Re: [OT] WakeOnLan funktioniert nicht

Beitrag von andré »

SisterOfMercy hat geschrieben: Here's a script I use to enable WOL:
Ok, well, I use it for more things, but I cut those functions out. So you'd better check the DefVar things for missing and unneeded stuff. At least this WORKS :D :D :D
Thanks, funktioniert bei mir auch einwandfrei.
Ich habe hier einen Rechner mit einer Netzwerkkarte, die ihren Namen nur als "Intel(R) Gigabit CT Desktop Adapter" ausgibt. Nach entsprechenden Tests habe ich dann rausgefunden, dass die Intel 217 Einstellungen funktionieren.

Ergänzung war dann nur:

Code: Alles auswählen

if (contains($testName$,"I217") or contains($testName$,"I210") or contains($testName$,"Intel(R)"))
   Registry_install_Intel_217
Antworten