Comment activer Wake On Lan (WOL) dans Ubuntu 16.04

26

Comment activer Wake On Lan (WOL) dans Ubuntu 16.04 LTS?

nkef
la source

Réponses:

21

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:

  1. Créez d'abord le fichier /etc/systemd/system/[email protected](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
    
  2. 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/[email protected] to /etc/systemd/system/[email protected].
    
  3. 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
    
  4. 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:

loco.loop
la source
2
+1 c'est bien mieux. devrait être accepté.
Stefanos Kalantzis
19

Dans Ubuntu 16.04 ensemble WOL_DISABLE=Ndans /etc/default/tlppour é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/haltpour éviter la mise hors tension de la carte réseau pendant l' arrêt

Activez Wake on LAN in /etc/network/interfaceslorsque 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.

nkef
la source
Cela a fonctionné pour moi sur 14.04 LTS. Merci!
TenLeftFingers
ces deux commentaires sur WOL_DISABLE=Net NETDOWN=nodevraient faire partie de help.ubuntu.com/community/WakeOnLan
Alecz
3

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

la source

Marwan Nabil
la source
3

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:

  1. Créez un script bash appelé wol_poweroff.sh dans le répertoire /etc/rc6.d/ :

    sudo nano /etc/rc6.d/wol_poweroff.sh
    
  2. Mettez ce code dedans:

    #!/bin/bash
    ifconfig eth0 down
    poweroff
    
  3. 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
    
  4. 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 nowou sudo poweroffet 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

Edson Jr.
la source
2

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:6fcommande, où 1a:2b:3c:4d:5e:6fest l'adresse MAC de la carte LAN de l'étape précédente.

Orient
la source
1

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).

rpr
la source
1

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:

  1. supprimer netplan,
  2. configurer la mise en réseau via une configuration netplan,
  3. ou définissez le fichier systemlink .link sur une priorité plus élevée.

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.

Daniel Squires
la source