[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[riminilug-general] WOL: mini HowTo
Ciao,
allego un mini HowTo per abilitare, configurare e utilizzare il
Wake-On-Lan (anche da smartphone), nel caso possa essere utile a
qualcuno.
Umberto Zappi
Come configurare il WOL (Wake On Lan) (nov/2014)
Autore
Questo breve HowTo e' stato scritto da Umberto Zappi (uzappi@xxxxxxxxxxxx)
E' possibile utilizzarlo liberamente e adattarlo alle proprie esigenze.
E' possibile modificarlo e ridistribuirlo liberamente.
Se il testo viene modificato, l'autore originale non puo' essere modificato
o eliminato.
Avvertenza
Questo HowTo e' fornito cosi' com'e', senza alcuna garanzia.
Ne l'autore e ne i contributors possono essere ritenuti responsabili per
ogni danno diretto o indiretto derivante dall'utilizzo di questo documento.
Caso trattato:
target: Debian wheezy 7.7
client: Debian jessie testing
smartphone: Android 4.4.2 (collegamento in WiFi)
client, target e smartphone si trovano sulla stessa sottorete.
Abstract:
Il WOL consente di accendere ("svegliare") un apparato sia esso un PC, un
Server o un altro apparato (es: NAS) che per qualche motivo sia gia' stato
abilitato per essere risvegliato.
L'apparato che deve essere svegliato lo chiameremo "Target".
Per poter svegliare un Target occorre (condizioni tutte necessarie):
1) che l'hardware (scheda di rete e scheda madre) supportino il WOL
2) configurare il BIOS per abilitare il WOL
3) installare il software per abilitare e configurare la scheda (o le
schede) di rete al riconoscimento del WOL
Occorre anche:
4) installare sugli apparati quali client, smartphone, ecc, il software
necessario per eseguire il risveglio del Target
1) Target:
1.a) Hardware.
1.a.1) scheda di rete
Le schede di rete piu' datate che supportano il WOL sono riconoscibili
per avere un piccolo connettore a 3 poli per l'innesto di un cavetto
da collegare alla scheda madre (MotherBoard); in questo caso occorre
procurarsi il cavetto ed effettuare il collegamento tra la scheda di
rete e la scheda madre.
Le schede di rete piu' recenti trasmettono i segnali direttamente sul
bus PCI, quindi non occorre collegare nessun cavetto.
Anche le schede di rete che sono integrate nelle schede madri sono
gia' pronte a livello hardware per l'utilizzo del WOL, che di solito
e' supportato.
1.a.2) scheda madre (MotherBoard)
A seconda dell'epoca, le schede madri che supportano il WOL possono
avere il connettore per il collegamento del cavetto a 3 poli con la
scheda di rete o riconoscere i segnali sul bus PCI o, per motivi di
compatibilita' con le schede di rete meno recenti, possono disporre
di entrambi i metodi (uso del cavetto esterno e riconoscimento dei
segnali sul bus PCI).
Spesso le mother boards dispongono di una scheda di rete integrata.
1.b) BIOS.
Per utilizzare la funzionalita' del WOL, se supportata dall'hardware, e'
necessario abilitarla dal BIOS.
E' possibile accedere al BIOS durante la fase di boot (accensione) del
sistema premendo un tasto che dipende dalla versione del BIOS presente
sul PC.
Di solito questo tasto corrisponde a <CANC> (<DEL> se abbiamo una
tastiera inglese) o <F2> o piu' raramente a <F12>.
Tipicamente (ma dipende sempre dalla versione del BIOS installata) tra
le schermate del BIOS e' presente una pagina per la gestione energetica,
per esempio potrebbe essere constrassegnata da "Power".
In questa sezione sono presenti una serie di opzioni che abilitano o
disabilitano l'accensione del PC in presenza di certi eventi quali ad
esempio ad un certo orario predefinito, ad una pressione di un certo
tasto sulla tastiera, o al ripristino della corrente elettrica, o altro
ancora.
Occorre individuare l'opzione che riguarda il WOL e abilitarla (qualora
non lo fosse gia').
Anche questa indicazione varia dal BIOS presente sul PC e potrebbe
essere riportata come: WOL, Wake-On-Lan, PowerOn by PCI, PCI Devices
Power On, o qualcosa di simile.
1.c) Software.
1.c.1) installazione
E' sufficiente installare il solo paccketto ethtool (circa 100KB):
apt-get install ethtool
NB: Per installare il software occorre avere i diritti di root (o
si effettua la login come root o si usa il comando sudo davanti
ad apt-get).
1.d.1) configurazione
Tramite il comando ethtool e' possibile abilitare o disabilitare il
wol su una interfaccia di rete e selezionare quale tipo di evento
dovra' effettuare il risveglio del target.
Sarebbe possibile impostare anche una password di 4 o 6 byte per una
maggiore sicurezza, ma non viene sempre gestita da tutte le schede di
rete o dal software che effettua il wol.
E' possibile sapere quali opzioni vengono gestite dalla scheda di
rete per il wol lanciando ethtool con il solo paramentro dell'
interfaccia di rete. Per esempio:
ethtool eth0
In risposta al comando vengono riportate una serie di righe fra cui:
Supports Wake-on: pumbg
Wake-on: g
La prima riga indica le opzioni supportate (vedere man ethtool per il
significato delle singole lettere 'p', 'u', 'm', 'b' e 'g').
Non compare 's' (non e' possibile abilitare la password "SecureOn' per
il "MagicPacket").
La seconda riga indica l'opzione impostata sull'interfaccia di rete.
'g' significa che la scheda di rete gestira' il WOL alla ricezione di
un MagicPacket.
Su un'altra scheda di rete potrebbe essere impostato il valore
Wake-on: d
e indica che il WOL e' disabilitato su quella scheda di rete.
Per abilitare su una scheda di rete il WOL all'arrivo del MagicPacket
dovremo digitare il comando (nel caso eth0)
ethtool -s eth0 wol g
La cosa migliore e' che questo comando sia inviato automaticamente
quando NetworkManager configura la rete.
In questa occasione vengono eseguiti gli script presenti in
/etc/NetworkManager/dispatcher.d
In questa directory possono essere messi degli script che vengono
eseguiti in ordine alfabetico in risposta a eventi di rete.
Gli script sono file eseguibili e devono appartenere a root e non
devono avere diritti di scrittura per il gruppo e per gli altri e non
avere il flag setuid; in altri termini devono essere impostati con il
modo = 755.
Ciascun script riceve 2 argomenti: il primo e' il nome dell'
interfaccia interessata dall'evento (es: eth0) e il secondo e'
l'azione eseguita (es: up, down, vpn-up, vpn-down, hostname, ...)
Per maggiori informazioni su NetworkManager consultare la man page:
man 8 networkmanager
Ora abbiamo tutte le informazioni per creare (con l'utente root) il
file che chiameremo /etc/NetworkManager/dispatcher.d/enable-wol e che
conterra' il testo:
#!/bin/bash
#
# This script enable WOL (Wake-On-Lan)
#
if [ -z "$1" ]; then
echo "$0: called with no interface" 1>&2
exit 1;
fi
INTERFACE="$1"
if [ "$INTERFACE" = "eth0" ]; then
/sbin/ethtool -s "$INTERFACE" wol g
fi
Salvare il file e digitare il comando
chmod 755 /etc/NetworkManager/dispatcher.d/enable-wol
Lo script, cosi' com'e', imposta il WOL solo se l'interfaccia e' eth0,
ma e' facile adattarlo ad altre interfacce, ad esempio per qualsiasi
interfaccia ethx
Una volta salvato il file ed eseguito chmod, se e' possibile,
riavviare il PC o il server e verificare che le interfacce di rete che
vogliamo utilizzare per risvegliare il sistema abbiano la riga
Wake-on: g
in risposta al comando ethtool.
Prima di spegnere il sistema e provare la riaccensione da remoto,
dobbiamo installare il software sul client e prendere nota del MAC
address (Hardware Address) della scheda di rete che e' stata abilitata
al WOL.
Per rilevare il MAC address di un'interfaccia di rete (per esempio
eth0), digitare il comando
/sbin/ifconfig eth0 | grep HWaddr
2) Client:
2.a) Installazione del software.
Ho trovato 2 pacchetti che possono essere utilizzati per svegliare un
sistema attraverso WOL: etherwake e wakeonlan.
Non escludo che ce ne siano altri, magari con interfaccia grafica.
Si possono installare entrambi visto che l'occupazione e' di pochi KB:
apt-get install etherwake
apt-get install wakeonlan
Per l'installazione occorre essere root o anteporre "sudo" ad "apt-get".
Entrambi forniscono comandi a linea di comando.
La differenza fra i 2 pacchetti e' che:
o) etherwake deve essere eseguito da root, mentre wakeonlan puo'
essere eseguito da qualsiasi utente.
o) etherwake supporta l'invio di password, mentre wakeonlan no.
o) wakeonlan accetta dei file con i MAC Address dei sistemi da
avviare.
2.b) Risvegliamo il sistema.
Usando wakeonlan (o etherwake) occorre fornire il MAC address
dell'interfaccia di rete abilitata a ricevere il MagicPacket.
Il comando da dare e' del tipo
wakeonlan 01:23:45:67:89:ab
dove 01:23:45:67:89:ab e' il MAC address della scheda a cui vogliamo
inviare il MagicPacket.
2.c) Tips (suggerimenti).
Sicuramente e' abbastanza difficile ricordarsi il MAC address di una
scheda di rete, occorre quindi trovare qualche altra soluzione.
2.c.1) icona di lancio
Se disponiamo di un ambiente grafico (KDE, Gnome, ...) e'
possibile creare una icona di lancio del programma che in questo
caso sara' il comando che avremo dovuto digitare in console
Per come creare l'icona di lancio, consultare l'ambiente
grafico utilizzato.
2.c.2) file contenente il MAC address
E' possibile creare dei file di testo contentente:
o) linee vuote: sono ignorate
o) linee che iniziano con un hash "#": sono commenti e vengono
ignorati
o) linee con MAC address, opzionalmente seguiti da un indirizzo
di broadcast (default 255.255.255.255) ed eventualmente da
una porta (default 9)
Supponendo di aver creato il file "myhost.txt", il comando da
digitare diventa:
wakeonlan -f myhost.txt
2.c.3) script file con il comando completo di MAC address
Si crea un file testo contenente il comando wakeonlan completo del
MAC address ed eventuali altri argomenti.
Si salva il file e si danno i diritti di esecuzione.
3) Smartphone (Android).
3.a) Installazione del software.
Anche nel caso degli smartphone sono disponibili diverse app che possono
essere utilizzate per effettuare il WOL dei sistemi.
Un'app che ho scaricato e testato con successo si chiama proprio "Wake On
LAN" ed e' disponibile gratuitamente su Google Play Store.
Si scarica l'app e la si installa come qualsiasi altra app.
3.b) Risvegliamo il sistema.
Lanciando l'app "Wake On LAN" appena installata, ci viene chiesto di
fornire in nome host del nostro sistema che viene utilizzata come
descrizione dell'elenco degli host configurati, e l'indirizzo IP.
Se l'indirizzo IP introdotto e' corretto e il sistema e' acceso, ci
viene proposto il MAC address rilevato. Abbiamo possibilita' di
correggerlo o di accettarlo.
Abbiamo anche la possibilita' di cambiare la porta dal valore di default
(9) spuntando su "more details".
Una volta inserito l'host (o gli host) possiamo accenderlo avviando l'app
a facendo tap sull'host.
3.c) Tips (suggerimenti)
Facendo tap sulla lente di ingrandimento dell'app, viene effettuata una
discovery della sottorete.
Per ogni host trovato viene mostrato IP e MAC address.
Troubleshooting
a) Visulaizzare il settaggio della prima scheda di rete (eth0):
ethtool eth0 (occorre essere root)
b) Visulaizzare le informazioni WOL della prima scheda di rete (eth0):
ethtool eth0 | grep -i wake (occorre essere root)
c) Rilevare il MAC address (Hardware address) per l'interfaccia eth0:
/sbin/ifconfig eth0 | grep HWaddr
Documentazione
o) man 8 networkmanager
o) man ethtool
o) man etherwake
o) man wakeonlan
o) https://wiki.debian.org/it/WakeOnLan
o) http://guide.debianizzati.org/index.php/Wake_On_Lan
o) https://wiki.archlinux.org/index.php/Wake-on-LAN
---------------------------------------------------------------------
Per cancellarsi, scrivi a: riminilug-general-unsubscribe@xxxxxxxxxxxx
Se vuoi conoscere altri comandi, scrivi a: riminilug-general-help@xxxxxxxxxxxx