Translation(s): English - Español - Français - Italiano


Wake On LAN

Voici quelques notes pour mettre en place la fonctionnalité Wake On LAN (WOL) avec un système Debian.

Matériel

La première étape pour pouvoir démarrer votre ordinateur à partir du réseau est de s'assurer que votre carte Ethernet et votre carte mère prennent en charge la fonction Wake On LAN. Les cartes -NM (non gérées) de 3Com en particulier ne prennent pas en charge le WOL tandis que les cartes -M (gérées) le font.

Il y a deux méthodes principales : la plus ancienne utilise un connecteur Wake On LAN à trois broches entre votre carte Ethernet et votre carte mère. Les deux connecteurs sont désignés 'wol'. Les systèmes plus récents utilisent une broche Wake On LAN sur le bus PCI, rendant inutile un câble supplémentaire. Quelques cartes mères prennent en charge les deux et fournissent juste le connecteur pour assurer la compatibilité avec les carte Ethernet qui n'ont pas la broche PCI.

Les cartes mères récentes avec un NIC (controleur d'interface réseau) intégré prennent en charge le Wake On LAN sans câble ni broche.

Firmware et BIOS

Avec un bon BIOS, sous l'onglet power management (gestion de l'alimentation) on devrait avoir une option claire et intuitive intitulée "Wake On LAN". Malheureusement sur certaines machines, ce n'est pas aussi clair et il y a une paire d'options offertes. Une semble fonctionner toujours, mais les autres ne fonctionnent que parfois. L'auteur a élaboré cette doumentation, partagée avec Mark Ivey, quand ils avaient tous les deux un Shuttle XPC SK41G et utilisaient l'option "PowerOn by PCI Card" avec succès.1

Logiciel

Configuration de l'interface

Après l'activation matérielle de Wake On LAN, une activation logicielle est aussi nécessaire. On peut le faire en utilisant le paquet ethtool qui dit à l'interface de répondre au paquet magique. Remplacer eth0 par le nom de l'interface de votre périphérique réseau :

$ su
# aptitude install ethtool
# ethtool -s eth0 wol g

Cela peut être automatisé en modifiant le fichier /etc/network/interfaces:

iface eth0 inet dhcp
        post-up /sbin/ethtool -s $IFACE wol g
        post-down /sbin/ethtool -s $IFACE wol g

Cela exécutera ethtool chaque fois que eth0 est activé et aussi quand il est désactivé, comme cela le WOL fonctionnera même si le réseau ne s'est pas désactivé correctement.

Avec Squeeze, les paramètre d'ethtool peuvent être configurés directement dans le fichier /etc/network/interfaces. Ce qui précède peut être réalisé ainsi :

iface eth0 inet dhcp
        ethernet-wol g

Le script /etc/network/if-up.d/ethtool s'occupera d'appeler ethtool à l'activation de l'interface. Voir /usr/share/doc/ethtool/README.Debian pour plus d'informations.

On peut maintenant éteindre son ordinateur et préparer l'autre ordinateur à le rallumer.

Envoyer les messages de WOL

On peut installer le paquet etherwake dans le système de contrôle pour que la commande etherwake envoie le "Paquet Magique" à l'autre ordinateur pour le rallumer. Le programme doit être exécuté en tant que super-utilisateur pour pouvoir envoyer le paquet (on peut utiliser sudo pour l'exécuter).

# aptitude install etherwake
# etherwake <mac address>

wakeonlan est aussi disponible : c'est un programme qui utilise les paquets UDP et pas TCP, et donc n'a pas besoin d'être exécuté en tant que super-utilisateur. Il est aussi légèrement plus configurable.

# aptitude install wakeonlan && exit
$ wakeonlan <mac address>

Sensibilité de WOL

L'auteur ne veut aucune des options de Wake On LAN sauf Wake on "Magic Packet" (g). afin que l'ordinateur s'allume quand on lui demande spécifiquement et non après un message unicast (point à point) (u), un message broadcast (b) ou "multidiffusé" (multicast) (m).

Rendre WOL Persistant

Le matériel en principe cherche spécifications et vous pensez que le BIOS est bien configuré, mais cela ne fonctionne pas sans quelques réglages avec un logiciel. Selon la FAQ du client Wake On Lan, la plupart des pilotes Linux drivers désactive la fonction WOL au démarrage2, donc il faut le maintenir en fonction.

Noyau 2.6

Avec le noyau 2.6, on peut utiliser le répertoire /etc/modprobe.d. Vous pouvez utiliser /etc/modprobe.conf, mais s'il n'inclut pas /etc/modprobe.d, vous aurez probablement un essage à chaque démarrage et certaines choses ne seront pas configurées correctement. Si on utilise /etc/modprobe.d, il faut ajouter un fichier local.conf dans le répertoire qui contient ceci :

install 8139too /sbin/modprobe -i 8139too; /sbin/ethtool -s eth0 wol g

ethtool est fourni par le paquet ethtool, donc vous devrez l'installer à moins que votre carte ne prenne en charge une option pour enregistrer la configuration de WOL. Si c'est le cas, on crée un fichier local.conf avec la ligne d'options appropriée qui peut ressembler à ceci :

options 3c59x enable_wol=1

Après le test d'une machine avec un C3905B-TXNM et un 3C905C-TXM que pilotent le module 3c59x, l'auteur constate que ethtool était incapable de leur envoyer une requête et de configurer le WOL, mais que la configuration enable_wol=1 était nécessaire et que cela fonctionnait.

Cependant on remarque que les modules 8139too et 8139cp sont chargés tous les deux, mais que charger seulement 8139cp ne fonctionne pas dans la mesure où le chipset n'est pas assez récent, aussi on peut le blacklister.

Debogage d'ethtool

Après une heure passée à comprendre pourquoi son ordinateur ne marchait toujours pas, l'auteur a commencé à lancer une commande de requête ethtool un peu partout pour voir ce qui se passait :

# ethtool eth0

ifup

Il a découvert (au moins avec le pilote 8139too et Debian 3.1/Sarge) la ligne d'installation fonctionnait quand on chargeait le module avec la commande modprobe 8139too, mais ifup reconfigurait le WOL, parce qu'il fallait ajouter une ligne au fichier /etc/network/interfaces sous le paragraphe eth0 :

iface eth0 inet dhcp
        up /sbin/ethtool -s $IFACE wol g

Il faut garder la commande ethtool dans le fichier /etc/modprobe.d/local.conf pour le cas où on démarre l'ordinateur et que ifup n'a pas été exécuté avant son extinction.

Conclusion

Le Wake On LAN fonctionne avec Debian et ouvre de nouvelles possibilités.

L'auteur a pu accéder à sa passerelle et à démarrer son ordinateur, y récupérer ce qu'il voulait puis à l'éteindre à distance. Il utilise DHCP avec le mappage MAC-vers-IP comme ça on peut regarder dans le fichier sur la passerelle pour connaître l'adresse MAC de l'ordinateur que l'on souhaite démarrer et on peut conserver cette information dans un fichier texte.

L'étape suivante est de pouvoir avoir ses machines non-essentielles complètement éteintes (non simplement arrêtées) lors d'une coupure de courant pour allonger la durée des batteries pour les machines essentielles, puis utiliser le WOL pour rallumer les autres machines quand le courant revient et que les batteries de sauvegarde ont retrouvés un certain niveau de charge. L'auteur pense que certaines configurations de halt, de APM ou de ACPI ne sont pas adaptées à ce type de système. Voir OffAndOnAgain.

Liens externes


CategoryNetwork | CategorySystemAdministration