Réponses:
J'ai trouvé une meilleure façon de travailler pour moi. Au moins une façon plus propre. Apparemment, Ubuntu a changé par défaut pour systemd , dans Ubuntu 15.04, Ubuntu 16.04 et probablement les prochaines versions aussi. Je suis nouveau sur les deux systèmes mais cela a fonctionné pour moi.
Je poste parce que tout googler Ubuntu 16 wol et d' autres recherches similaires , je suis tombé avec ce poste à plusieurs reprises. Cela pourrait aider quelqu'un d'autre.
Pour que WOL continue de fonctionner, j'ai dû le réactiver à chaque démarrage du système. Pour éviter de le faire manuellement, j'ai utilisé systemd à cet effet. C'est ce que j'ai fait:
Créez d'abord le fichier /etc/systemd/system/wol@.service
(conservez le symbole @). Mettez ça 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 ceci:
Created symlink from /etc/systemd/system/multi-user.target.wants/wol@eth3.service to /etc/systemd/system/wol@.service.
Pour vérifier s'il est activé, exécutez la commande suivante (changez eth3 avec votre interface) et elle 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
Sources:
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 que le système fonctionne.
- upstart - démon init basé sur les événements
systemd:
systemd est une suite de blocs de construction de base pour un système Linux. Il fournit un gestionnaire de système et de service qui s'exécute en tant que PID 1 et démarre le reste du système. (...)
- systemd
Dans Ubuntu 16.04 ensemble WOL_DISABLE=N
dans /etc/default/tlp
pour éviter d' avoir WOL désactivé par TLP gestion de l' énergie.
http://linrunner.de/en/tlp/docs/tlp-configuration.html
Ajouter NETDOWN=no
à /etc/default/halt
pour éviter la mise hors tension de la carte réseau pendant l' arrêt
Activez Wake on LAN in /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 local dans le BIOS, entrez dans la configuration du BIOS et recherchez quelque chose appelé "réveil sur événement PCI", "réveil sur LAN" ou similaire. Modifiez-le pour qu'il soit activé. Enregistrez vos paramètres et redémarrez.
https://help.ubuntu.com/community/WakeOnLan
Attention, certaines cartes mères / contrôleurs réseau ne prennent pas en charge WOL à partir du démarrage à froid (état S5, où l'alimentation du système est physiquement coupée puis de nouveau sous tension). 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 s'allumer lorsque le CA est restauré et planifier un arrêt dans Ubuntu par la suite. Reportez-vous au manuel de la carte mère pour plus de détails.
WOL_DISABLE=N
et NETDOWN=no
devraient faire partie de help.ubuntu.com/community/WakeOnLan
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 se réveiller sur lan après avoir écrit la deuxième commande
Pour que WOL fonctionne, assurez-vous que votre interface Ethernet est correctement arrêtée par votre système lors de la mise hors tension.
Essayez ce qui suit:
Créez un script bash appelé wol_poweroff.sh dans le répertoire /etc/rc6.d/ :
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 (pour 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
Maintenant, testez pour voir si cela fonctionne en éteignant votre machine 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 fonctionnait 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 désactivée dans le cadre de l'arrêt du système. Cela devrait ê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-utilisateurs - démarrage en mode texte
rc4.d - Pas encore défini
rc5.d - Mode multi-utilisateurs - démarrage sous X Windows
rc6.d - Arrêt et redémarrage
Source: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/981461
Si vous utilisez NetworkManager, vous pouvez activer WOL via nmcli
:
nmcli connection show
N'oubliez pas le NOM de la connexion du TYPE "802-3-ehternet" pour le DISPOSITIF qui vous intéresse. Dites que son nom est "Connexion filaire 1". Modifiez-le ensuite 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 à partir d'une autre machine sur le même LAN par la wakeonlan 1a:2b:3c:4d:5e:6f
commande, où 1a:2b:3c:4d:5e:6f
est l'adresse MAC de la carte LAN de l'étape précédente.
Outre les paramètres suggérés par @nkef, vous pouvez définir les paramètres suivants dans / etc / network / interfaces si vous utilisez DHCP au lieu des 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).
Cela m'a juste mordu aussi sous Ubuntu 18.04 (installation sans tête / minimale), malheureusement, les réponses déjà répertoriées ici, bien qu'elles semblent parfois fonctionner, ne fourniront pas de solution fiable car elles créent des conditions de course ou se battent avec des gens comme systemd, netplan et udev.
J'avais également essayé cette approche au début et cela semblait fonctionner, je planifie un système pour démarrer chaque soir via WakeOnLan pour exécuter des sauvegardes car le BIOS du système ne fournit pas d'AC planifié en option.
Cela fonctionnerait pendant quelques jours, puis refuserait de se réveiller, en l'allumant manuellement et en exécutant ethtool a révélé que WoL avait été désactivé:
Wake-on: d
J'ai donc pensé que quelque chose d'autre devait le désactiver et avoir eu beaucoup de problèmes au cours des dernières années avec la prise en charge par systemd de certaines parties du système, j'ai décidé de commencer ici, voilà:
WakeOnLan = .. .. La valeur par défaut est off.
https://www.freedesktop.org/software/systemd/man/systemd.link.html
Les exemples en ligne montrent quelque chose comme:
/etc/systemd/network/50-wired.link
[Match]
MACAddress=<MAC ADDRESS>
[Link]
WakeOnLan=magic
Mais cela ne fonctionnait toujours pas. Puis je suis tombé sur ceci:
udevadm test-builtin net_setup_link /etc/systemd/network/50-wired.link
ce qui s'est traduit par:
Load module index
Parsed configuration file /lib/systemd/network/99-default.link
Parsed configuration file /etc/systemd/network/50-wired.link
Parsed configuration file /run/systemd/network/10-netplan-eno1.link
Et qu'est-ce que je trouve dans /run/systemd/network/10-netplan-eno1.link?
[Match]
MACAddress=<MAC ADDRESS>
[Link]
Name=eno1
WakeOnLan=off
Solution soit:
Comme j'avais déjà le fichier systemlink .link, je l'ai simplement renommé 00-wired.link, redémarré et maintenant ethtool eno1 rapporte:
Wake-on: g
Sans aucun service supplémentaire uniquement dans le but d'essayer d'activer WoL.