Translation(s): English - Español - Français - Italiano


Wake On LAN

Alcune indicazioni su come ottenere l'opzione Wake On LAN (WOL) funzionante su un sistema Debian.

Hardware

Il primo passo per l'avvio del computer tramite rete è quello di assicurarsi che la scheda Ethernet e la scheda madre gestiscano la funzionalità Wake On LAN. In particolare le schede -NM (not managed, non gestito) della 3Com non supportano WOL mentre le -M (managed, gestito) sì.

Ci sono due sistemi: il vecchio metodo usa un connettore Wake On LAN a tre pin tra la scheda di rete e la scheda madre, entrambi i terminali sono solitamente marchiati con 'wol'; il nuovo metodo usa un pin Wake On LAN sul bus PCI eliminando la necessità di utilizzare un cavo. Alcune schede madri supportano entrambi e forniscono il connettore solo per retrocompatibilità con le schede Ethernet che non supportano il pin PCI.

Le schede madri recenti, fornite di scheda di rete intgrata, supportano Wake On LAN senza il bisogno di alcun pin o cavo.

Firmware / BIOS

In un bel BIOS, nella sezione sulla gestione energetica si avrà una chiara e intuitiva opzione denominata "Wake On LAN". Purtroppo il sistema dell'autore non è così chiaro ed ha un paio di opzioni disponibili; una sembra funzionare sempre mentre l'altra funziona solo a volte. Ha risolto sulla base delle informazioni condivise da Mark Ivey in quanto anche lui ha uno Shuttle XPC SK41G e usa l'opzione "PowerOn by PCI Card" con successo. 1

Software

Configurazione dell'interfaccia

Dopo aver attivato il Wake On LAN sul lato hardware è necessario farlo dal lato software utilizzando ethtool, che dice all'interfaccia di rispondere all'invio dei Magic Packet. Sostituire eth0 con il device della propria interfaccia di rete:

$ su
# aptitude install ethtool
# ethtool -s eth0 wol g

L'operazione può essere automatizzata modificando il file /etc/network/interfaces:

iface eth0 inet dhcp
        post-up /sbin/ethtool -s $IFACE wol g
        post-down /sbin/ethtool -s $IFACE wol g

Questo esegue ethtool ogni volta che eth0 è attivata e ogni volta che è disattivata, perciò WOL dovrebbe funzionare anche se la rete non viene disattivata correttamente.

A partire da Squeeze i parametri di ethtool possono essere impostati direttamente in /etc/network/interfaces; quanto spiegato prima si ottiene in questo modo:

iface eth0 inet dhcp
        ethernet-wol g

Lo script /etc/network/if-up.d/ethtool richiamerà ethtool all'attivazione dell'interfaccia. Vedere /usr/share/doc/ethtool/README.Debian per maggiori informazioni.

Si può quindi spegnere il sistema e preparare l'altro che lo sveglierà.

Invio messaggi WOL

Installare il pacchetto etherwake nel sistema di controllo per avere il comando che invia i "Magic Packet" all'altro computer in modo da risvegliarlo; va eseguito da root o tramite sudo:

# aptitude install etherwake
# etherwake <indirizzo mac>

È inoltre disponibile wakeonlan, un programma leggermente più configurabile che utilizza pacchetti UDP anziché TCP e quindi non necessita di essere eseguito da root:

# aptitude install wakeonlan && exit
$ wakeonlan <indirizzo mac>

Sensibilità di WOL

L'autore non vuole nessuna delle opzioni Wake On LAN tranne Wake on "Magic Packet" (g), in modo da accendere la macchina solo quando esperessamente richiesto e non come conseguenza di messaggi unicast (u), broadcast (b) o multicast (m).

Persistenza di WOL

L'hardware sembra conforme alle specifiche, si pensa di aver impostato correttamente il BIOS ma ancora non funziona se non si fa qualche azione software. Secondo le FAQ del client di Wake On Lan la maggior parte dei driver per Linux disabilita la funzionalità WOL all'avvio2, quindi bisogna farla partire.

Kernel 2.6

Con un kernel 2.6 si usa la directory /etc/modprobe.d. In caso si stia usando il file /etc/modprobe.conf che non include /etc/modprobe.d, si viene probabilmente avvertiti di ciò ad ogni avvio e alcune cose possono non venire configurate correttamente. Usando /etc/modprobe.d, aggiungere un file local.conf nella directory contenente:

install 8139too /sbin/modprobe -i 8139too; /sbin/ethtool -s eth0 wol g

ethtool proviene dal pacchetto ethtool e va installato, a meno che che la scheda non supporti un'opzione per impostare WOL; in tal caso nel file local.conf si aggiungerà una riga options appropriata, come:

options 3c59x enable_wol=1

Provando su un'altra macchina con una C3905B-TXNM e una 3C905C-TXM e che usa il modulo 3c59x per controllarle entrambe si è scoperto che ethtool non era in grado di interrogarle o impostare WOL, ma che era richiesta l'opzione enable_wol=1 e che ha funzionato.

Nel mentre si è notato che venivano caricati entrambi i moduli 8139too e 8139cp, ma caricare solo 8139cp non funzionava dal momento che il chipset sulla scheda non era sufficientemente recente, perciò è stato inserito in blacklist.

Debug di ethtool

Dopo un'ora passata cercando di capire perché il sistema non funzionasse ancora, l'autore ha iniziato a lanciare richieste ovunque tramite il comando ethtool per vedere dove fosse il problema:

# ethtool eth0

ifup

Ha così scoperto che, almeno con il driver 8139too su Debian 3.1/Sarge, la riga d'installazione funzionava se si caricava il modulo con modprobe 8139too ma ifup azzerava le impostazioni WOL, perciò è stato necessario aggiungere una riga nel file /etc/network/interfaces nel blocco eth0:

iface eth0 inet dhcp
        up /sbin/ethtool -s $IFACE wol g

È stato inoltre lasciato il comando ethtool nel file /etc/modprobe.d/local.conf, nel caso si avvii la macchina e ifup non venga eseguito prima dello spegnimento.

Conclusioni

Wake On LAN funziona su Debian e fornisce nuove possibilità.

L'autore ad esempio può accedere al proprio gateway e avviare il suo sistema desktop, prelevare quello di cui ha bisogno e quindi spegnerlo a distanza. L'autore utilizza il DHCP con la mappatura MAC-to-IP in modo da poter guardare in quel file sul sistema gateway per sapere l'indirizzo MAC del sistema che vuole risvegliare; senza questo sistema sarebbe stato possibile tenere un file di testo con una lista.

Il suo passo successivo sarà quello far sì che i sistemi non essenziali vengano completamente spenti (non solo messi in halt) in seguito a un'interruzione di corrente per estendere la durata della batteria per sistemi essenziali e quindi utilizzare WOL per riaccendere gli altri sistemi dopo che è stata ripristinata l'alimentazione e la batteria ha raggiunto uno specifico livello di carica. L'autore ritiene che alcune configurazioni che usano halt o APM o ACPI non siano adatte su quel tipo di sistemi. Vedere Accendere e spegnere un sistema Debian.

Collegamenti esterni


CategoryNetwork | CategorySystemAdministration