Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Fiches:Administration-fichewakeonlan


Comment démarrer un ordinateur à distance ?

par merlin8282

Il est possible de démarrer un ordinateur sans toucher à son bouton d'alimentation, simplement via le réseau. N'avez-vous jamais remarqué que les LEDs de la plupart des cartes réseau restent allumées même quand l'ordinateur est éteint ? Maintenant vous saurez pourquoi.

Comment ça fonctionne ?

L'idée est d'envoyer un «paquet magique» (magic packet en anglais) sur le réseau. La carte réseau reçoit ce paquet, vérifie sa validité et si tout est bon, elle fait démarrer l'ordinateur.

Oui mais encore...

Ce fameux paquet magique peut être envoyé via un certain nombre de protocoles en mode non-connecté. Généralement c'est UDP qui est utilisé. Le contenu de ce paquet est défini comme suit :

  • D'abord il y a 6 fois la séquence 0xFF : FF FF FF FF FF FF
  • Ensuite, il y a seize fois l'adresse MAC de la machine que l'on veut réveiller.
  • Enfin, on peut y mettre un mot de passe long de 4 ou 6 octets.

Compatibilité

Je ne parle ici que pour les ordinateurs du type PC. Je ne sais pas si cette fonctionnalité existe sur les autres architectures, comme les ordinateurs de Apple ou Sun par exemple.

Si vous avez une carte réseau intégrée à la carte-mère il est fort probable qu'il n'y ait simplement qu'à activer l'option dans le BIOS. Cette option se trouve dans la section de gestion d'énergie (Power management) sous un nom du genre Wake on LAN ou Remote wake up. Toutefois, il faut aussi éventuellement activer l'option permettant le démarrage autre que par le bouton : PME boot event ou similaire.

Si votre carte réseau est dans un port ISA ou PCI < 2.2, il faut utiliser un câble pour relier la carte réseau à la carte-mère. Eh oui, comment voulez-vous que la carte réseau soit alimentée sinon ?

Si votre carte réseau est compatible PCI 2.2 (évidemment, il en va de même pour votre port PCI) il n'y a normalement pas besoin de câble : l'alimentation de la carte réseau se fait par le bus PCI.

Mise en oeuvre

Première chose, activer les options dans le BIOS (Cf ci-dessus) et si besoin vérifier que le câble d'alimentation de la carte réseau soit en place.

L'utilitaire ethtool n'est pas forcément nécessaire mais est toutefois bien pratique pour voir si votre carte supporte le démarrage par le réseau :

$ sudo ethtool eth0

Settings for eth1: [...]

       Supports Wake-on: pumbg
Wake-on: mb

Le minimum est d'avoir un 'g' à la première ligne de cet exemple et autre chose qu'un 'd' à la seconde, en fonction de la manière dont vous voulez démarrer votre ordinateur. RTFM pour les détails (man ethtool).

Si la dernière ligne de cet exemple comporte un 'd', lancez ethtool avec l'option suivante qui a pour but d'activer le réveil sur réception de paquet magique :

$ sudo ethtool -s eth0 wol g

Relevez l'adresse MAC de votre carte réseau (si vous en avez plusieurs, prenez soin de noter la bonne adresse) à l'aide de la commande ifconfig :

$ sudo ifconfig eth0

eth0 Lien encap:Ethernet HWaddr 00:11:22:AA:CC:FF

[...]

Éteignez votre ordinateur. Attention, a priori il faudrait que ce soit fait de manière logicielle, via ACPI. Normalement toutes les distributions pas trop anciennes (i.e. de moins d'une demi-douzaine d'années) sont configurées pour procéder ainsi.

À présent il vous faut lancer à partir d'un autre ordinateur sur le réseau (ce peut être un ordinateur tout comme ce peut être un PDA) l'une des deux commandes suivantes, au choix :

$ sudo etherwake 00:11:22:AA:CC:FF $ wakeonlan 00:11:22:AA:CC:FF

...en adaptant évidemment l'adresse MAC.

Voilà, votre ordinateur doit normalement démarrer !

Résolution des problèmes

Tout d'abord, si votre ordinateur refuse de démarrer relisez cet article et vérifiez tout, point par point. Vérifiez aussi que les LEDs de votre carte réseau soient allumées quand l'ordinateur est éteint, ainsi que les options dans le BIOS. Essayez avec différentes options pour ethtool. Vérifiez aussi, cela va de soi, que le câble réseau soit bien branché, des deux côtés ! De toute manière, ethtool détecte s'il y a une liaison ou non.

Une subtilité: Certaines distributions (celle dont le nom signifie "Slackware is too hard for me" notamment) ont le mauvais goût de passer l'option -i à la commande halt, éteignant aisi les interfaces réseau.

Liens

L'article sur Wikipédia me semble suffisant, étant donné qu'il contient aussi des liens : Wake on LAN sur Wikipédia.



@ Retour à la rubrique Fiches pratiques

Copyright

© 2007 merlin8282

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike iconCreative Commons Noncommercial
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique, Contexte non commercial 2.0 :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
Affichages

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons CC-BY-SA