Le but est d’activer le WoL sur un Dell Optiplex 3050.
https://www.dell.com/support/kbdoc/en-uk/000129137/wake-on-lan-wol-troubleshooting-best-practices
Il faut bien sûr que le matériel supporte le WoL. C’est le cas de l’Optiplex 3050.
Il est nécessaire de paramétrer le BIOS, mais également le pilote sous l’OS que l’on utilise, car il va déterminer le comportement de la carte réseau à l’extinction de l’OS.
Paramétrage BIOS
J’ai commencé par faire une mise à jour du BIOS vers la version la plus récente, pour limiter les risques de bug logiciel du BIOS.
Vérifier les paramètres suivants :
- System configuration -> Integrated NIC -> Enabled
- Power Management -> Wake on LAN/WLAN -> Lan Only (ou autre réglage qui active sur le WoL sur le LAN)
- Power Management -> Deep Sleep control -> Disabled
À ce stade, normalement le WoL est actif. Il se voit par l’allumage d’une des 2 LEDs de la carte réseau.
On peut “réinitialiser” le statut WoL en débranchant électriquement le poste puis en le rebranchant. Il devrait s’allumer un court instant, puis s’éteindre, mais la LED du NIC doit rester allumée.
Paramétrage Debian
Lorsqu’on éteint le poste via la commande sudo poweroff
, la carte réseau s’éteint complètement, car l’OS peut contrôler son comportement à l’extinction.
Il faut donc lui dire de maintenir la carte en fonctionnement.
On commence par installer ethtool, qui permet de voir/gérer l’état des cartes réseau :
apt install ethtool
On définit la carte à gérer :
iface=ethX
et on peut consulter une carte avec :
sudo ethtool $iface
ou
sudo ethtool $iface | grep -i Wake-on
et on a notamment les lignes :
Supports Wake-on: pumbg
Wake-on: d
Chaque lettre a une signification, trouvable dans man ethtool
, et qui sont :
p Wake on PHY activity
u Wake on unicast messages
m Wake on multicast messages
b Wake on broadcast messages
a Wake on ARP
g Wake on MagicPacket™
s Enable SecureOn™ password for MagicPacket™
f Wake on filter(s)
d Disable (wake on nothing). This option clears all previous options.
Le WoL implémenté généralement est le “MagicPacket™”, il faut donc avoir que la carte supporte “g”.
L’état “Wake-on” correspond à l’état actuel ; on voit ici qu’il est désactivé, donc si j’éteins le poste, la carte-réseau n’aura aucune LED allumée et il sera impossible de le rallmuer via WoL.
À ce stade, le WoL restera désactivé même si on va dans le bios, qu’on sauvegarde, qu’on ré-éteint le poste.
Il est nécessaire de débrancher/rebrancher électriquement le poste pour que le WoL recommence à fonctionner.
Pour activer le WoL, il faut entrer cette commande :
sudo ethtool -s $iface wol g
dont la réussite se voit dans la sortie de :
sudo ethtool $iface | grep -i Wake-on
Si on éteint le poste, le WoL restera activé.
Mais au prochain boot, le status WoL sera à nouveau défini sur d
!
Il faut donc l’activer à chaque démarrage.
Des infos ici : https://wiki.debian.org/fr/WakeOnLan
Je passe par la méthode de création d’un service systemd : On peut créer le fichier de définition du service avec cette commande, à lancer en root :
if [ -z "$iface" ] ; then echo -e '\nIl faut définir la variable $iface !\n' ; else echo "[Unit]
Description=Configure Wake-up on LAN
[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s $iface wol g
[Install]
WantedBy=basic.target" > /etc/systemd/system/wol.service ; fi
On active le service au démarrage, ainsi qu’immédiatement, et on recharge le démon systemd :
sudo systemctl enable wol
sudo systemctl start wol
sudo systemctl daemon-reload
On doit normalement avoir “g” sur le paramètre “Wake-on” à chaque démarrage, et donc pouvoir éteindre le poste via poweroff
en maintenant le status WoL actif.
Paramétrage Windows
https://www.dell.com/support/kbdoc/en-uk/000129137/wake-on-lan-wol-troubleshooting-best-practices
Il semblerait que ce soit via le gestionnaire de périph, aller dans les propriétés du NIC -> Power Management ->
Allow this device to wake the computer
Only allow a magic packet to wake the computer
advanced tab
Energy-Efficient Ethernet -> Disabled
config panel :
Turn on fast startup ?
Allumage à distance
On note l’adresse mac de la cible à réveiller :
distantmacaddr=00:11:22:33:44:55
Sous Debian il y a au moins 2 outils pour réveiller un poste via WoL :
sudo apt install etherwake wakeonlan
On peut utiliser etherwake, qui nécessite les droits root et de préciser explicitement l’interface qui envoie le paquet magique :
sudo etherwake -i ethX $distantmacaddr
ou bien wakeonlan :
wakeonlan $distantmacaddr
Consommation électrique
Sur l’Optiplex 3050, je constate environ 0.9W lorsque le poste est éteint avec WoL activé.
En phase de BIOS/démarrage, je constate environ 20W, et lorsque Debian est lancé mais sans aucune activité, je constate environ 9W.
En lançant quelques processus u peu gourmands en CPU/RAM/disque (mais sans être un test intensif non plus), je monte à 40W.