Comment activer Wake On Lan (WOL) dans Ubuntu 16.04 LTS?
J'ai trouvé un meilleur moyen qui a fonctionné pour moi. Au moins d'une manière plus propre. Je publie cela parce que tout googler Ubuntu 16 wol et d'autres recherches similaires que j'ai rencontrées poster plusieurs fois. Cela pourrait aider quelqu'un d'autre.
Apparemment, Ubuntu a changé en amont pour systemd , ceci dans Ubuntu 15, Ubuntu 16 et vraisemblablement les versions suivantes. Je suis nouveau dans les deux systèmes mais cela a fonctionné pour moi.
Pour que WOL continue de fonctionner, je devais le réactiver à chaque démarrage du système. Pour éviter de le faire manuellement, j'ai utilisé systemd à cette fin. C'est ce que j'ai fait:
Commencez par créer le fichier /etc/systemd/system/[email protected]
(gardez le symbole @). Mettez ceci dedans:
[Unit]
Description=Wake-on-LAN for %i
Requires=network.target
After=network.target
[Service]
ExecStart=/sbin/ethtool -s %i wol g
Type=oneshot
[Install]
WantedBy=multi-user.target
Activez ceci pour l'interface au démarrage, exécutez la commande suivante (changez eth3 avec votre interface):
systemctl enable wol@eth3
Vous devriez voir quelque chose comme ça:
Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected] to /etc/systemd/system/[email protected].
Pour vérifier s'il est activé, exécutez la commande suivante (changez eth3 avec votre interface) et il devrait retourner enabled
:
systemctl is-enabled wol@eth3
Pour tester cela, redémarrez et exécutez (changez eth3 avec votre interface):
ethtool eth3
Vous devriez voir une ligne avec ce qui suit:
Wake-on: g
parvenu:
Upstart est un remplacement basé sur les événements du démon/sbin/init qui gère le démarrage des tâches et des services pendant le démarrage, les arrête pendant l'arrêt et les supervise pendant le fonctionnement du système.
- pstart - démon init basé sur des événements
ststemd:
systemd est une suite de blocs de construction de base pour un système Linux. Il fournit un gestionnaire de système et de services qui s'exécute en tant que PID 1 et démarre le reste du système. (...)
- systemd
Dans Ubuntu 16.04, définissez WOL_DISABLE=N
dans /etc/default/tlp
pour éviter que WOL ne soit désactivé par la gestion de l'alimentation de TLP.
http://linrunner.de/en/tlp/docs/tlp-configuration.html
Ajoutez NETDOWN=no
dans /etc/default/halt
pour empêcher la mise hors tension de la carte réseau pendant l'arrêt.
Activez Wake on LAN dans /etc/network/interfaces
lorsque la configuration réseau statique est utilisée.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
up ethtool -s eth0 wol g
Activez le réveil sur réseau dans le BIOS, entrez dans la configuration du BIOS et recherchez un événement appelé "événement de réveil sur PCI", "réveil sur réseau local" ou similaire. Changez-le pour qu'il soit activé. Enregistrez vos paramètres et redémarrez.
https://help.ubuntu.com/community/WakeOnLan
Avertissement Certaines cartes mères/contrôleurs de réseau ne prennent pas en charge WOL à partir du démarrage à froid (état S5, où l'alimentation du système est physiquement désactivée, puis réactivée. encore). Dans ce cas, au moins un cycle d'alimentation (mise sous tension, arrêt) doit être effectué. Pour atténuer le problème, le BIOS peut être configuré pour se mettre sous tension une fois l'AC restauré et pour ensuite planifier un arrêt sous Ubuntu. Reportez-vous au manuel de la carte mère pour plus de détails.
Pour que WOL fonctionne, assurez-vous que votre système est correctement arrêté par votre système lors de la mise hors tension.
Essayez ce qui suit:
Créez un script bash appelé wol_poweroff.sh sur le /etc/rc6.d/ répertoire:
Sudo nano /etc/rc6.d/wol_poweroff.sh
Mettez ce code dedans:
#!/bin/bash
ifconfig eth0 down
poweroff
Copiez-le dans le répertoire /etc/rc0.d (de sorte qu'il fonctionne également avec halt ):
Sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
Rendez-les tous les deux exécutables:
Sudo chmod 755 /etc/rc6.d/wol_poweroff.sh
Sudo chmod 755 /etc/rc0.d/wol_poweroff.sh
Testez maintenant pour voir s'il fonctionne en éteignant votre ordinateur avec Sudo shutdown now
ou Sudo poweroff
et en utilisant un outil WOL pour lui envoyer un paquet magique.
C'était la seule chose qui a fonctionné pour moi. J'ai trouvé ces étapes dans un rapport de bogue sur launchpad.net.
Selon l'auteur, Robbie Williamson, cela fonctionne pour les raisons suivantes:
Pour que WOL fonctionne, l'interface Ethernet doit être correctement arrêtée dans le cadre de l'arrêt du système. Cela doit être effectué dans le cadre des niveaux d'exécution rc0 et rc6, en notant que Linux a généralement 7 niveaux d'exécution (ou modes de fonctionnement) différents:
rc0.d - Système arrêté
rc1.d - Mode mono-utilisateur
rc2.d - Mode mono-utilisateur avec mise en réseau
rc3.d - Mode multi-utilisateur - démarrer en mode texte
rc4.d - Pas encore défini
rc5.d - Mode multi-utilisateur - démarrer sous X Windows
rc6.d - Arrêt et redémarrage
Source: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/981461
Exécutez ce qui suit dans le terminal:
Sudo ethtool -s {your network interface} wol g
Sudo ethtool {your network interface}
vous devriez voir un g à côté de réveiller sur le réseau local après avoir écrit le second commander
Outre les paramètres suggérés par @nkef, vous pouvez définir les éléments suivants dans / etc/network/interfaces si vous utilisez DHCP au lieu de paramètres IP statiques pour l'adaptateur LAN (ici nommé eth0):
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
ethernet-wol g
(testé sur Ubuntu 16.04 LTS).
Si vous utilisez NetworkManager, vous pouvez activer WOL via nmcli
name__:
nmcli connection show
Rappelez-vous NOM de la connexion du type "802-3-ehternet" pour le périphérique d'intérêt. Dites-le nom est "Connexion filaire 1". Puis modifiez-le correctement:
nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic
Pour obtenir son adresse MAC:
nmcli connection show "Wired connection 1" | grep 802-3-ethernet.mac-address
À partir de maintenant, vous pouvez l'éteindre et l'allumer depuis une autre machine du même réseau local à l'aide de la commande wakeonlan 1a:2b:3c:4d:5e:6f
, où 1a:2b:3c:4d:5e:6f
est l'adresse MAC de la carte LAN de l'étape précédente.