[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