Come abilitare Wake On Lan (WOL) in Ubuntu 16.04


26

Come abilitare Wake On Lan (WOL) in Ubuntu 16.04 LTS?

Risposte:


21

Ho trovato un modo migliore che ha funzionato per me. Almeno un modo più pulito. A quanto pare ha cambiato Ubuntu upstart per systemd , in Ubuntu 15.04, Ubuntu 16.04 e presumibilmente prossime versioni troppo. Sono nuovo per entrambi i sistemi ma questo ha funzionato per me.

Sto pubblicando questo perché mentre cercavo su Google Ubuntu 16 wol e altre ricerche simili mi sono imbattuto in questo post diverse volte. Questo potrebbe aiutare qualcun altro.

Per far funzionare WOL, ho dovuto riattivarlo ogni volta che il sistema si avviava. Per evitare di farlo manualmente ho usato systemd per questo scopo. Questo è quello che ho fatto:

  1. Innanzitutto, crea il file /etc/systemd/system/wol@.service(mantieni il simbolo @). Mettici questo:

    [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. Abilitare questo per l'interfaccia all'avvio, eseguire il comando seguente (cambiare eth3 con l'interfaccia):

    systemctl enable wol@eth3
    

    Dovresti vedere qualcosa del genere:

    Created symlink from /etc/systemd/system/multi-user.target.wants/wol@eth3.service to /etc/systemd/system/wol@.service.
    
  3. Per verificare se è abilitato, esegui il seguente comando (cambia eth3 con la tua interfaccia) e dovrebbe restituire enabled:

    systemctl is-enabled wol@eth3
    
  4. Per testarlo, riavvia ed esegui (cambia eth3 con la tua interfaccia):

    ethtool eth3
    

    Dovresti vedere una riga con il seguente:

    Wake-on: g
    

fonti:


2
+1 questo è molto meglio. dovrebbe essere quello accettato.
Stefanos Kalantzis,

19

In Ubuntu 16.04 set WOL_DISABLE=Nin /etc/default/tlpper evitare di ottenere WOL disattivata per la gestione dell'alimentazione TLP.

http://linrunner.de/en/tlp/docs/tlp-configuration.html

Aggiungere NETDOWN=noin /etc/default/haltper evitare di spegnere la scheda di rete durante l'arresto

Abilita Wake on LAN in /etc/network/interfacesquando viene utilizzata la configurazione di rete statica.

# 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

Abilita wake on lan nel BIOS, accedi alla configurazione del BIOS e cerca qualcosa chiamato "Wake up on PCI event", "Wake up on LAN" o simile. Modificalo in modo che sia abilitato. Salva le tue impostazioni e riavvia.

https://help.ubuntu.com/community/WakeOnLan

Avvertenza: alcune schede madri / controller di rete non supportano WOL dall'avvio a freddo (stato S5, in cui l'alimentazione del sistema viene fisicamente spenta e riaccesa). In tal caso, deve essere eseguito almeno un ciclo di accensione (accensione, spegnimento). Per mitigare il problema, il BIOS può essere configurato per accendersi quando viene ripristinato CA e pianificare successivamente uno spegnimento all'interno di Ubuntu. Fare riferimento al manuale della scheda madre per ulteriori dettagli.


Questo ha funzionato per me il 14.04 LTS. Grazie!
TenLeftFingers

quei due commenti su WOL_DISABLE=Ne NETDOWN=nodovrebbero far parte di help.ubuntu.com/community/WakeOnLan
Alecz

3

Eseguire quanto segue nel terminale:

sudo ethtool -s {your network interface} wol g 
sudo ethtool {your network interface}

dovresti vedere una g accanto a wake on lan dopo aver scritto il secondo comando

fonte


3

Affinché WOL funzioni, assicurarsi che l'interfaccia Ethernet sia correttamente arrestata dal sistema quando si spegne.

Prova quanto segue:

  1. Crea uno script bash chiamato wol_poweroff.sh nella directory /etc/rc6.d/ :

    sudo nano /etc/rc6.d/wol_poweroff.sh
    
  2. Inserisci questo codice:

    #!/bin/bash
    ifconfig eth0 down
    poweroff
    
  3. Copiarlo nella /etc/rc0.d directory (quindi funziona anche con halt ):

    sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
    
  4. Renderli entrambi eseguibili:

    sudo chmod 755 /etc/rc6.d/wol_poweroff.sh
    sudo chmod 755 /etc/rc0.d/wol_poweroff.sh
    

Ora prova per vedere se funziona spegnendo la tua macchina con sudo shutdown nowo sudo poweroffe usando uno strumento WOL per inviargli un pacchetto magico.


Questa è stata l'unica cosa che ha funzionato per me. Ho trovato questi passaggi in una segnalazione di bug su launchpad.net.

Secondo l'autore, Robbie Williamson, questo funziona a causa di quanto segue:

Per far funzionare WOL, l'interfaccia Ethernet deve essere correttamente disattivata come parte dell'arresto del sistema. Questo dovrebbe essere eseguito come parte dei livelli di esecuzione rc0 e rc6, osservando che Linux ha in genere 7 diversi livelli di esecuzione (o modalità operative):

rc0.d - Sistema arrestato

rc1.d - Modalità utente singolo

rc2.d - Modalità utente singolo con rete

rc3.d - Modalità multiutente - avvio in modalità testo

rc4.d - Non ancora definito

rc5.d - Modalità multiutente - avvia in X Windows

rc6.d - Arresto e riavvio


Fonte: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/981461


2

Se si utilizza NetworkManager, è possibile abilitare WOL tramite nmcli:

nmcli connection show

Ricorda NAME della connessione del TIPO "802-3-ehternet" per DISPOSITIVO di interesse. Dì che il nome è "Connessione cablata 1". Quindi modificalo correttamente:

nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic

Per ottenere il suo indirizzo MAC:

nmcli connection show "Wired connection 1" | grep 802-3-ethernet.mac-address

Da adesso puoi spegnerlo e accenderlo da un'altra macchina sulla stessa LAN tramite wakeonlan 1a:2b:3c:4d:5e:6fcomando, dove si 1a:2b:3c:4d:5e:6ftrova l'indirizzo MAC della scheda LAN del passaggio precedente.


1

Oltre ai parametri suggeriti da @nkef puoi impostare le seguenti in / etc / network / interfaces se usi DHCP invece delle impostazioni IP statiche per l'adattatore LAN (qui chiamato eth0):

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
        ethernet-wol g

(testato su Ubuntu 16.04 LTS).


1

Questo mi ha morso troppo anche sotto Ubuntu 18.04 (installazione senza testa / minima), sfortunatamente le risposte già elencate qui, anche se a volte sembrano funzionare, non forniranno una soluzione affidabile in quanto creano condizioni di gara o combattono con artisti del calibro di systemd, netplan e udev.

All'inizio avevo provato anche questo approccio e sembrava funzionare, sto programmando un sistema per l'avvio ogni sera tramite WakeOnLan per eseguire i backup poiché il BIOS di sistema non fornisce un AC programmato all'opzione.

Avrebbe funzionato per alcuni giorni e poi avrebbe rifiutato di svegliarsi, accendendolo manualmente ed eseguendo ethtool ha rivelato che WoL era stato disabilitato:

    Wake-on: d

Quindi ho pensato che qualcos'altro avrebbe dovuto spegnerlo e aver avuto molti problemi di questo tipo negli ultimi anni con systemd che ha rilevato parti del sistema che ho deciso di iniziare qui, ecco:

WakeOnLan = .. .. Il valore predefinito è off.

https://www.freedesktop.org/software/systemd/man/systemd.link.html

Gli esempi online mostrano qualcosa sulla falsariga di:

/etc/systemd/network/50-wired.link

[Match]
MACAddress=<MAC ADDRESS>

[Link]
WakeOnLan=magic

Tuttavia, ciò non funzionava ancora. Poi mi sono imbattuto in questo:

udevadm test-builtin net_setup_link  /etc/systemd/network/50-wired.link

che ha portato a:

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

E cosa trovo in /run/systemd/network/10-netplan-eno1.link?

[Match]
MACAddress=<MAC ADDRESS>

[Link]
Name=eno1
WakeOnLan=off

Soluzione O:

  1. rimuovere netplan,
  2. configurare la rete tramite una configurazione netplan,
  3. oppure imposta il file .d di systemd per avere una priorità più alta.

Dato che avevo già il file systemd .link, l'ho semplicemente rinominato in 00-wired.link, riavviato e ora ettool eno1 riporta:

    Wake-on: g

Senza servizi extra al solo scopo di provare ad abilitare WoL.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.