Repository 32bit  Forum
Repository 64bit  Wiki

Wake on Lan: differenze tra le versioni

Da Slacky.eu.
(Caricato i file esterni all'interno di wikislacky e aggiornati i link interni)
 
(29 revisioni intermedie di un utente non mostrate)
Riga 1: Riga 1:
[[Category:Networking]]
[[Category:Networking]]
= Wake on LAN =
+
= Wake On LAN =
== Come avviare un PC da remoto ==
== Come avviare un PC da remoto ==
Questa piccola guida nasce dall'esigenza di poter avviare a distanza computer che si trovino fisicamente distanti da noi, magari in una stanza diversa da quella in cui ci troviamo, o semplicemente dislocati in punti un po' ostici da raggiungere (...o per pura e semplice pigrizia).
+
Questa piccola guida nasce dall'esigenza di poter avviare a distanza computer che si trovano fisicamente distanti da noi, magari in una stanza diversa da quella in cui ci troviamo, o semplicemente dislocati in punti un po' ostici da raggiungere (...o per pura e semplice pigrizia).
Vediamo qui di seguito come possiamo procedere per raggiungere il nostro obiettivo. Tutti i passi di seguito descritti, sono stati effettuati con una Slackware 10.2.
+
Vediamo qui di seguito come possiamo procedere per raggiungere il nostro obiettivo. Tutti i passi di seguito descritti, sono stati effettuati con una "''Slackware 10.2''".
== Controlli e settaggi preliminari ==
== Controlli e settaggi preliminari ==
Per prima cosa, assicuriamoci che la nostra mainboard supporti il "''WOL''" (''Wake On LAN'', appunto...) dandogli un'occhiata superficiale e/o consultando il manuale d'uso ed installazione; a vista, potremmo dire che se la ssheda madre è equipaggiata di un piccolo connettore di colore bianco (in genere, ma non è detto...) accompagnato da una minuscola scritta "''WOL''", la scheda supporta il "''Wake on LAN''".<br />
+
Per prima cosa, assicuriamoci che la nostra [http://it.wikipedia.org/wiki/Mainboard mainboard] supporti il [http://it.wikipedia.org/wiki/Wake_on_LAN "''WOL''" (''Wake On LAN''], appunto) dandogli un'occhiata superficiale e/o consultando il manuale d'uso ed installazione; a vista, potremmo dire che se la scheda madre è equipaggiata di un piccolo connettore di colore bianco (in genere, ma non è detto...) accompagnato da una minuscola scritta "''WOL''", la scheda supporta il "''Wake on LAN''".<br />
A questo punto, procuriamoci una scheda di rete che supporti la medesima funzione, '''''scolleghiamo l'alimentazione del nostro PC''''', apriamo il case, inseriamola in uno slot PCI libero della nostra mainboard e, tramite il cavetto che dovrebbero averci fornito in dotazione con la scheda ethernet, colleghiamo quest'ultima al connettore della scheda madre visto in precedenza.<br />
+
A questo punto, procuriamoci una scheda di rete che supporti la medesima funzione, '''''scolleghiamo l'alimentazione del nostro PC''''', apriamo il [http://it.wikipedia.org/wiki/Case case], inseriamola in uno slot [http://it.wikipedia.org/wiki/Peripheral_Component_Interconnect "''PCI''" (''Peripheral Component Interconnect'')] libero della nostra mainboard e, tramite il cavetto che dovrebbero averci fornito in dotazione con la scheda [http://it.wikipedia.org/wiki/Ethernet ''ethernet''], colleghiamo quest'ultima al connettore della scheda madre visto in precedenza.<br />
Effettuata quest'operazione, richiudiamo ben benino il nostro case, ricolleghiamo il cavo di alimentazione al PC ed avviamolo; attendiamo che il computer effettui correttamente il "''POST''" (''Power On Self Test'') ed accediamo al "''BIOS''" (''Basic Input Output System'') della macchina premendo il tasto [''CANC''] (o [''F1''], [''F2''] ecc., dipende dalla macchina). A questo punto, andiamoci a cercare le voci "''Wake On LAN''" e "''Wake On PCI''" e le imposteremo su "''Enabled''" (o, se avete diciture differenti, quelle atte ad abilitarne l'utilizzo). Usciamo dal "''BIOS''", salviamo le impostazioni e facciamo partire il sistema.<br />
+
Effettuata quest'operazione, richiudiamo ben benino il nostro case, ricolleghiamo il cavo di alimentazione al PC ed avviamolo; attendiamo che il computer effettui correttamente il [http://it.wikipedia.org/wiki/Power-on_self-test "''POST''" (''Power On Self Test'')] ed accediamo al [http://it.wikipedia.org/wiki/BIOS "''BIOS''" (''Basic Input Output System'')] della macchina premendo il tasto [''CANC''] (o [''F1''], [''F2''] ecc., dipende dalla macchina). A questo punto, andiamoci a cercare le voci "''Wake On LAN''" e "''Wake On PCI''" ed impostiamole su "''Enabled''" o, se avete diciture differenti, quelle atte ad abilitarne l'utilizzo. Usciamo dal ''BIOS'', salviamo le impostazioni e facciamo partire il sistema.<br />
Chiaramente, per poter proseguire con le operazioni descritte in questa guida, dovremmo avere già installato e configurato il nostro sistema "''GNU/Linux''"; è importante che la scheda di rete sia attiva, che il rispettivo modulo sia stato caricato (se il drive è modulare) e che le sia stato assegnato un indirizzo di rete valido (magari assicuriamoci che risponda al "''ping''" localmente senza problemi...). Essendoci già un'enorme quantità di documentazione disponibile in rete, non mi dilungherò nella spiegazione di come configurare ed attivare una scheda di rete.
+
Chiaramente, per poter proseguire con le operazioni di seguito descritte, dovremmo avere già installato e configurato il nostro sistema [http://it.wikipedia.org/wiki/Gnu/Linux ''GNU/Linux'']; è fondamentale che la scheda di rete sia attiva, che quindi il rispettivo modulo sia stato caricato (se abbiamo un driver modulare) e che le sia stato assegnato un indirizzo di rete valido (magari assicuriamoci che risponda al [http://it.wikipedia.org/wiki/Ping "''ping''"] localmente senza problemi). Essendoci già un'enorme quantità di documentazione disponibile in rete, non mi dilungherò nella spiegazione di come configurare ed attivare una scheda di rete.
== Prime verifiche ==
== Prime verifiche ==
Passiamo ora ad effettuare il ''login'' come ''root'' e controlliamo quali parametri di "''wake-on''" la nostra scheda supporta; per fare questo, ci avvarremmo del comando "''ethtool''" (che di base è installato su tutti i sistemi, per cui, se non doveste trovarlo, preoccupatevi pure ed andate a recuperarlo da questo [http://packages.slackware.it/search.php?v=10.2&t=2&q=ethtool link].<br />
+
Passiamo ora ad effettuare il [http://it.wikipedia.org/wiki/Login ''login''] come ''root'' e controlliamo quali parametri di "''wake-on''" la nostra scheda supporta; per fare questo, ci avvarremo del comando [http://linux.die.net/man/8/ethtool "''ethtool''"] (che di base è installato su tutti i sistemi, per cui, se non doveste trovarlo, preoccupatevi pure ed andate a recuperarlo da questo [http://packages.slackware.it/search.php?v=10.2&t=2&q=ethtool link]).<br />
Digitiamo quindi :
Digitiamo quindi :
#ethtool eth0
#ethtool eth0
[''INVIO'']
[''INVIO'']
L'output del comando, dovrebbe restituirci una lista di informazioni molto ben dettagliata che riguardano la nostra scheda di rete come, ad esempio, la seguente :
+
L'output del comando, dovrebbe restituirci una lista di informazioni molto dettagliata che riguardano la nostra scheda di rete come, ad esempio, la seguente :
Settings for eth0:<br />
Settings for eth0:<br />
Supported ports: [ TP MII ]
Supported ports: [ TP MII ]
Riga 38: Riga 38:
Current message level: 0x00000007 (7)
Current message level: 0x00000007 (7)
Link detected: Yes
Link detected: Yes
Come molti avranno intuito, le due voci che maggiormente ci interessano in questo caso, sono "'''Supports Wake-on: pumbg'''" e "'''Wake-on: d'''". La voce "''Supports Wake-on''" ci informa sui parametri di "''wake-on''" che la nostra scheda ethernet supporta per poter avviare il sistema; in questo caso, i parametri in questione sono :
+
Come molti avranno già intuito, le due voci che maggiormente ci interessano in questo caso, sono "'''Supports Wake-on: pumbg'''" e<br />"'''Wake-on: d'''". La voce "''Supports Wake-on''" ci informa sui parametri di "''wake-on''" che la nostra scheda ''ethernet'' supporta per poter avviare il sistema; in questo caso, i parametri in questione sono :
; "'''p'''" : ("'''wake on phy activity'''") indica che se il sistema si dovesse trovare in "''stand-by''" o "''STR''" (''Suspend To RAM'') che dir si voglia, al ricevimento di un pacchetto o porzione di esso, il nostro device ethernet se ne accorgerebbe e ritornerebbe allo stato operativo: in poche parole, si "''risveglierebbe''".<br />
+
; "'''p'''" : ("'''wake on phy activity'''") indica che se il sistema si dovesse trovare in "''stand-by''" o "''STR''" (''Suspend To RAM'') che dir si voglia, al ricevimento di un pacchetto o porzione di esso, il nostro device ''ethernet'' se ne accorgerebbe e ritornerebbe allo stato operativo: in poche parole, si "''risveglierebbe''".<br />
; "'''u'''" : ("'''wake on unicast messages'''") indica che il nostro device ethernet avvierebbe il sistema se gli venisse inviato un qualsiasi pacchetto indirizzato da un altro computer espressamente ad esso.<br />
+
; "'''u'''" : ("'''wake on unicast messages'''") indica che il nostro device ''ethernet'' avvierebbe il sistema se gli venisse inviato un qualsiasi pacchetto indirizzato da un altro computer espressamente ad esso.<br />
; "'''m'''" : ("'''wake on multicast messages'''") indica che la scheda di rete è in grado di far partire il sistema se riceve un pacchetto indirizzato ad un gruppo di elaboratori al quale appartiene anche il nostro; questa funzione potrebbe tornare particolarmente utile in realtà quali, ad esempio, grandi reti "''LAN''" (''Local Area Network'') aziendali composte da più sotto-reti.<br />
; "'''m'''" : ("'''wake on multicast messages'''") indica che la scheda di rete è in grado di far partire il sistema se riceve un pacchetto indirizzato ad un gruppo di elaboratori al quale appartiene anche il nostro; questa funzione potrebbe tornare particolarmente utile in realtà quali, ad esempio, grandi reti "''LAN''" (''Local Area Network'') aziendali composte da più sotto-reti.<br />
; "'''b'''" : ("'''wake on broadcast messages'''") indica che la scheda ethernet può fare in modo che il sistema si avvii al momento della ricezione di un pacchetto indirizzato alla rete di broadcast alla quale l'elaboratore appartiene.<br />
+
; "'''b'''" : ("'''wake on broadcast messages'''") indica che la scheda ''ethernet'' può fare in modo che il sistema si avvii al momento della ricezione di un pacchetto indirizzato alla rete di broadcast alla quale l'elaboratore appartiene.<br />
; "'''g'''" : ("'''wake on MagicPacket&trade;'''") indica che il device è in grado di far avviare il sistema se gli si inviasse un tipo di pacchetto particolarmente strutturato per mezzo di un apposito programma chiamato "'''''etherwake'''''"; in seguito vedremo come fare.<br />
+
; "'''g'''" : ("'''wake on MagicPacket&trade;'''") indica che il device è in grado di far avviare il sistema se gli si inviasse un tipo di pacchetto particolarmente strutturato per mezzo di un apposito programma chiamato [http://linux.die.net/man/8/ether-wake "'''''etherwake'''''"]; in seguito vedremo come fare.<br />
Le opzioni che il programma "''ethtool''" supporta sono molteplici, per cui, una bella lettura alla relativa pagina di manuale risulterebbe comunque interessante, se non altro, per avere un'idea della quantità di parametri che è possibile impostare.
+
Le opzioni che il programma "''ethtool''" supporta sono molteplici, per cui, una bella lettura alla relativa pagina di manuale risulterebbe comunque interessante, se non altro, per avere un'idea della quantità di parametri che è possibile impostare.<br />
L'altra voce sulla quale dobbiamo porre la nostra attenzione, come detto in precedenza, è
L'altra voce sulla quale dobbiamo porre la nostra attenzione, come detto in precedenza, è
"''wake-on: d''"; quest'ultima ci indica le funzionalità attive, al momento, sulla nostra scheda di rete. Nel caso specifico, la lettera "''d''" sta ad indicare che tutti i parametri descritti sopra non sono attivi, sono "''disable''", disabilitati. Per poterli abilitare, facciamo un tentativo e cerchiamo di cambiarli scrivendo :
+
"''wake-on: d''"; quest'ultima ci indica le funzionalità attive, al momento, sulla nostra scheda di rete. Nel caso specifico, la lettera "''d''" sta ad indicare che nessuno dei parametri sopra descritti è attivo, sono quindi "''disable''", disabilitati. Per poterli abilitare, facciamo un tentativo e cerchiamo di cambiarli scrivendo :
#ethtool -s eth0 wol g
#ethtool -s eth0 wol g
[''INVIO'']
[''INVIO'']
Riga 68: Riga 68:
Current message level: 0x00000007 (7)
Current message level: 0x00000007 (7)
Link detected: Yes
Link detected: Yes
Come possiamo ben vedere, la funzionalità di "''wake-on''" del nostro device ethernet, che prima era impostato su "''d''", adesso supporta il parametro "''g''"; ciò significa che abbiamo istruito la nostra scheda di rete in modo che possa far avviare il sistema al ricevimento di quel particolare pacchetto visto precedentemente.
+
Come possiamo ben vedere, la funzionalità di "''wake-on''" del nostro device ''ethernet'', che prima era impostato su "''d''", adesso supporta il parametro "''g''"; ciò significa che abbiamo istruito la nostra scheda di rete in modo che possa far avviare il sistema al ricevimento di quel particolare pacchetto visto precedentemente.
== Salvataggio delle impostazioni ==
== Salvataggio delle impostazioni ==
Una volta verificato, quindi, che riusciamo ad impostare la nostra scheda di rete come meglio crediamo, dobbiamo fare in modo che queste impostazioni rimangano valide anche a PC spento: come fare? Dobbiamo passare il comando che abbiamo visto sopra dopo che il sistema abbia disattivato l'interfaccia di rete; dovremo quindi aggiungere tale comando allo script di ''shutdown/reboot'' (''/etc/rc.d/rc.6''). Andiamo quindi ad editare tale script :
+
Una volta verificato, quindi, che riusciamo ad impostare la nostra scheda di rete come meglio crediamo, dobbiamo fare in modo che queste impostazioni rimangano valide anche a PC spento: come fare? Dobbiamo passare al sistema il comando che abbiamo visto sopra, dopo che quest'ultimo abbia disattivato l'interfaccia di rete; dovremo quindi aggiungere tale comando allo [http://it.wikipedia.org/wiki/Script script] di ''shutdown/reboot'' (''/etc/rc.d/rc.6''). Andiamo perciò ad editarlo :
 
#nano /etc/rc.d/rc.6
#nano /etc/rc.d/rc.6
[''INVIO'']
[''INVIO'']
 
...e scorriamolo fino ad arrivare al punto in cui riteniamo giusto inserire il comando, come, ad esempio :
...e scorriamolo fino ad arrivare al punto in cui riteniamo giusto inserire il comando, come, ad esempio :
 
...<br />
...<br />
# Bring down the networking system, but first make sure that this
# Bring down the networking system, but first make sure that this
Riga 96: Riga 94:
fi<br />
fi<br />
...
...
Chiudiamo il nostro editor di testi salvando i cambiamenti effettuati e, per scrupolo, facciamo fare un reboot di verifica alla macchina :
+
Chiudiamo a questo punto il nostro editor di testi salvando i cambiamenti effettuati e, per scrupolo, facciamo fare un ''reboot'' di verifica alla macchina :
#reboot
+
#reboot & exit
[''INVIO'']
[''INVIO'']
Se durante lo shutdown ed il successivo riavvio tutto è andato bene, significa che la parte relativa al computer da "''risvegliare''" è stata egregiamente configurata e che tutto è perfettamente funzionante.
+
Se durante lo ''shutdown'' ed il successivo riavvio tutto è andato bene, significa che la parte relativa al computer da "risvegliare" è stata egregiamente configurata e che tutto è perfettamente funzionante.
== Installazione e configurazione del programma "''etherwake''" ==
== Installazione e configurazione del programma "''etherwake''" ==
A questo punto, possiamo passare ad occuparci del sistema che deve, invece, far partire il computer spento; per far ciò, la prima cosa è procurarsi il programma necessario visto in precedenza, ossia "''etherwake''". Preleviamolo (per quel poco che c'è da prelevare) da [http://aur.archlinux.org/packages/etherwake/etherwake.tar.gz qui] e scarichiamolo, ad esempio, nella home di ''root'', visto che al momento è questo l'utente col quale stiamo lavorando; di seguito, spostiamoci nella directory dei sorgenti :
+
Passiamo ora ad occuparci del sistema che deve, invece, far partire il computer spento; per far ciò, la prima cosa è procurarsi il programma necessario visto in precedenza, ossia "''etherwake''". Preleviamolo da [http://aur.archlinux.org/packages/etherwake/etherwake.tar.gz qui] e scarichiamolo, ad esempio, nella home di ''root'', visto che al momento è questo l'utente col quale stiamo lavorando; di seguito, spostiamoci nella directory dei sorgenti :
#cd /usr/src
#cd /usr/src
[''INVIO'']
[''INVIO'']
Riga 116: Riga 114:
#mkdir /usr/src/etherwake/src
#mkdir /usr/src/etherwake/src
[''INVIO'']
[''INVIO'']
...ed andremo a spostare all'interno della directory che abbiamo creato il file "''ether-wake.c''" :
+
Ora, andremo a spostare all'interno della directory appena creata il file "''ether-wake.c''" :
# mv ether-wake.c /usr/src/etherwake/src
# mv ether-wake.c /usr/src/etherwake/src
[''INVIO'']
[''INVIO'']
A questo punto, possiamo crearci il nostro eseguibile con :
+
A questo punto, possiamo compilarci il nostro eseguibile con :
#gcc src/ether-wake.c -o etherwake
#gcc src/ether-wake.c -o etherwake
[''INVIO'']
[''INVIO'']
Una volta creato l'eseguibile che ci serve, non dobbiamo far altro che installarlo in una directory adatta a poterlo lanciare ogni qual volta ci occorra di farlo, ad esempio :
+
Una volta creato l'eseguibile che ci serve, non dobbiamo far altro che installarlo in una directory adatta a poterlo lanciare ogni qual volta ci occorra, ad esempio :
#install etherwake -D /usr/sbin
#install etherwake -D /usr/sbin
[''INVIO'']
[''INVIO'']
Riga 128: Riga 126:
#cp etherwake /bin/sbin
#cp etherwake /bin/sbin
[''INVIO'']
[''INVIO'']
A questo punto, dovremmo avere tutto il necessario per poterci divertire a vedere come magicamente riusciamo ad avviare un elaboratore spento. Ciò che ci manca è semplicemente prendere nota dell'indirizzo "''MAC''" (''Media Access Control'') della scheda di rete che si trova all'interno della macchina che intendiamo provare a far partire; per far ciò, basta lanciare sulla suddetta macchina il famigerato "''ifconfig''" :
+
A questo punto, dovremmo avere tutto il necessario per poterci divertire a vedere come magicamente riusciamo ad avviare un elaboratore spento. Ciò che ci manca è semplicemente prendere nota dell'indirizzo [http://it.wikipedia.org/wiki/Indirizzo_MAC "''MAC''" (''Media Access Control'')] della scheda di rete che si trova all'interno della macchina che intendiamo provare a far partire; per far ciò, basta lanciare sulla suddetta macchina il famigerato [http://linux.die.net/man/8/ifconfig "''ifconfig''"] :
#ifconfig
#ifconfig
[''INVIO'']
[''INVIO'']
...l'output del comando ci mostrerà :
+
L'output del comando ci mostrerà :
eth0 Link encap:Ethernet HWaddr '''00:01:02:2F:BC:40'''
eth0 Link encap:Ethernet HWaddr '''00:01:02:2F:BC:40'''
inet addr:194.177.127.234 Bcast:194.177.127.255 Mask:255.255.255.0
inet addr:194.177.127.234 Bcast:194.177.127.255 Mask:255.255.255.0
Riga 140: Riga 138:
RX bytes:2858378779 (2.6 GiB) TX bytes:2524425895 (2.3 GiB)
RX bytes:2858378779 (2.6 GiB) TX bytes:2524425895 (2.3 GiB)
Interrupt:10 Base address:0x8800
Interrupt:10 Base address:0x8800
La parte evidenziata in grassetto di tale output è l'indirizzo "''MAC''" di cui abbiamo bisogno per "''risvegliare''" il PC dormiente, scriviamolo in un file di testo oppure appuntiamocelo semplicemente da qualche parte e spegniamo il nostro computer :
+
La parte evidenziata in grassetto di tale output è l'indirizzo "''MAC''" di cui abbiamo bisogno per "risvegliare" il PC "dormiente"; scriviamolo in un file di testo oppure appuntiamolo semplicemente da qualche parte e spegniamo il nostro computer :
#poweroff
+
#poweroff & exit
[''INVIO'']
[''INVIO'']
  +
  +
== Utilizzo del programma ==
  +
Bene, ad elaboratore spento, non c'è rimasto altro da fare che passare all'altro PC e verificare che effettivamente il lavoro fatto fin qui, sia valso a qualcosa; digiteremo :
Bene, ad elaboratore spento, non c'è rimasto altro da fare che passare all'altro PC e verificare che effettivamente il lavoro fatto fin qui, sia valso a qualcosa; digiteremo :
#etherwake 00:01:02:2F:BC:40
#etherwake 00:01:02:2F:BC:40
[''INVIO'']
[''INVIO'']
Magia! La procedura era particolarmente semplice, per cui spero che tutto sia andato per il meglio.<br />
+
Se poi volessimo ottenere qualche dettaglio in più sull'esito del comando lanciato, non dovremo far altro che passargli l'opzione "''D''" in questo modo :
  +
#etherwake -D 00:01:02:2F:BC:40
  +
[''INVIO'']
  +
  +
La procedura era particolarmente semplice, per cui spero che tutto sia andato per il meglio.<br />
  +
  +
Ciao!<br />
  +
  +
[[Media:Wake_On_LAN.pdf‎|Versione in PDF]].
  +
  +
Autore : Juri Carlini<br />
  +
  +
e-mail : juri@e-loft.eu
Ciao !<br />
+
== Altri link ==
[http://www.slacky.eu/wikislack/file/wake_on_lan/Wake_On_LAN.pdf Versione in PDF].
+
[[OpenMosix]]
Autore: Juri Carlini<br />
+
[[Installare_Slackware_tramite_pen_drive_USB|Installare Slackware tramite pen drive USB]]
e-mail: eth0@slacky.it
 

Versione attuale delle 17:07, 15 set 2012

Indice

[modifica] Wake On LAN

[modifica] Come avviare un PC da remoto

Questa piccola guida nasce dall'esigenza di poter avviare a distanza computer che si trovano fisicamente distanti da noi, magari in una stanza diversa da quella in cui ci troviamo, o semplicemente dislocati in punti un po' ostici da raggiungere (...o per pura e semplice pigrizia). Vediamo qui di seguito come possiamo procedere per raggiungere il nostro obiettivo. Tutti i passi di seguito descritti, sono stati effettuati con una "Slackware 10.2".

[modifica] Controlli e settaggi preliminari

Per prima cosa, assicuriamoci che la nostra mainboard supporti il "WOL" (Wake On LAN, appunto) dandogli un'occhiata superficiale e/o consultando il manuale d'uso ed installazione; a vista, potremmo dire che se la scheda madre è equipaggiata di un piccolo connettore di colore bianco (in genere, ma non è detto...) accompagnato da una minuscola scritta "WOL", la scheda supporta il "Wake on LAN".
A questo punto, procuriamoci una scheda di rete che supporti la medesima funzione, scolleghiamo l'alimentazione del nostro PC, apriamo il case, inseriamola in uno slot "PCI" (Peripheral Component Interconnect) libero della nostra mainboard e, tramite il cavetto che dovrebbero averci fornito in dotazione con la scheda ethernet, colleghiamo quest'ultima al connettore della scheda madre visto in precedenza.
Effettuata quest'operazione, richiudiamo ben benino il nostro case, ricolleghiamo il cavo di alimentazione al PC ed avviamolo; attendiamo che il computer effettui correttamente il "POST" (Power On Self Test) ed accediamo al "BIOS" (Basic Input Output System) della macchina premendo il tasto [CANC] (o [F1], [F2] ecc., dipende dalla macchina). A questo punto, andiamoci a cercare le voci "Wake On LAN" e "Wake On PCI" ed impostiamole su "Enabled" o, se avete diciture differenti, quelle atte ad abilitarne l'utilizzo. Usciamo dal BIOS, salviamo le impostazioni e facciamo partire il sistema.
Chiaramente, per poter proseguire con le operazioni di seguito descritte, dovremmo avere già installato e configurato il nostro sistema GNU/Linux; è fondamentale che la scheda di rete sia attiva, che quindi il rispettivo modulo sia stato caricato (se abbiamo un driver modulare) e che le sia stato assegnato un indirizzo di rete valido (magari assicuriamoci che risponda al "ping" localmente senza problemi). Essendoci già un'enorme quantità di documentazione disponibile in rete, non mi dilungherò nella spiegazione di come configurare ed attivare una scheda di rete.

[modifica] Prime verifiche

Passiamo ora ad effettuare il login come root e controlliamo quali parametri di "wake-on" la nostra scheda supporta; per fare questo, ci avvarremo del comando "ethtool" (che di base è installato su tutti i sistemi, per cui, se non doveste trovarlo, preoccupatevi pure ed andate a recuperarlo da questo link).
Digitiamo quindi :

#ethtool eth0
[INVIO]

L'output del comando, dovrebbe restituirci una lista di informazioni molto dettagliata che riguardano la nostra scheda di rete come, ad esempio, la seguente :

Settings for eth0:
Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100bastT/Half 100baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10base/Full 100baseT/Half 100base/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 32 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: d Current message level: 0x00000007 (7) Link detected: Yes

Come molti avranno già intuito, le due voci che maggiormente ci interessano in questo caso, sono "Supports Wake-on: pumbg" e
"Wake-on: d". La voce "Supports Wake-on" ci informa sui parametri di "wake-on" che la nostra scheda ethernet supporta per poter avviare il sistema; in questo caso, i parametri in questione sono :

"p
("wake on phy activity") indica che se il sistema si dovesse trovare in "stand-by" o "STR" (Suspend To RAM) che dir si voglia, al ricevimento di un pacchetto o porzione di esso, il nostro device ethernet se ne accorgerebbe e ritornerebbe allo stato operativo: in poche parole, si "risveglierebbe".
"u
("wake on unicast messages") indica che il nostro device ethernet avvierebbe il sistema se gli venisse inviato un qualsiasi pacchetto indirizzato da un altro computer espressamente ad esso.
"m
("wake on multicast messages") indica che la scheda di rete è in grado di far partire il sistema se riceve un pacchetto indirizzato ad un gruppo di elaboratori al quale appartiene anche il nostro; questa funzione potrebbe tornare particolarmente utile in realtà quali, ad esempio, grandi reti "LAN" (Local Area Network) aziendali composte da più sotto-reti.
"b
("wake on broadcast messages") indica che la scheda ethernet può fare in modo che il sistema si avvii al momento della ricezione di un pacchetto indirizzato alla rete di broadcast alla quale l'elaboratore appartiene.
"g
("wake on MagicPacket™") indica che il device è in grado di far avviare il sistema se gli si inviasse un tipo di pacchetto particolarmente strutturato per mezzo di un apposito programma chiamato "etherwake"; in seguito vedremo come fare.

Le opzioni che il programma "ethtool" supporta sono molteplici, per cui, una bella lettura alla relativa pagina di manuale risulterebbe comunque interessante, se non altro, per avere un'idea della quantità di parametri che è possibile impostare.
L'altra voce sulla quale dobbiamo porre la nostra attenzione, come detto in precedenza, è "wake-on: d"; quest'ultima ci indica le funzionalità attive, al momento, sulla nostra scheda di rete. Nel caso specifico, la lettera "d" sta ad indicare che nessuno dei parametri sopra descritti è attivo, sono quindi "disable", disabilitati. Per poterli abilitare, facciamo un tentativo e cerchiamo di cambiarli scrivendo :

#ethtool -s eth0 wol g
[INVIO]

Fatto questo, l'output che ci verrà mostrato, dovrebbe ora essere il seguente :

Settings for eth0:
Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100bastT/Half 100baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10base/Full 100baseT/Half 100base/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 32 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000007 (7) Link detected: Yes

Come possiamo ben vedere, la funzionalità di "wake-on" del nostro device ethernet, che prima era impostato su "d", adesso supporta il parametro "g"; ciò significa che abbiamo istruito la nostra scheda di rete in modo che possa far avviare il sistema al ricevimento di quel particolare pacchetto visto precedentemente.

[modifica] Salvataggio delle impostazioni

Una volta verificato, quindi, che riusciamo ad impostare la nostra scheda di rete come meglio crediamo, dobbiamo fare in modo che queste impostazioni rimangano valide anche a PC spento: come fare? Dobbiamo passare al sistema il comando che abbiamo visto sopra, dopo che quest'ultimo abbia disattivato l'interfaccia di rete; dovremo quindi aggiungere tale comando allo script di shutdown/reboot (/etc/rc.d/rc.6). Andiamo perciò ad editarlo :

#nano /etc/rc.d/rc.6
[INVIO]

...e scorriamolo fino ad arrivare al punto in cui riteniamo giusto inserire il comando, come, ad esempio :

...
# Bring down the networking system, but first make sure that this # isn't a diskless client with the / partition mounted via NFS: if ! /bin/mount | /bin/grep -q 'on / type nfs' ; then if [ -x /etc/rc.d/rc.inet1 ]; then . /etc/rc.d/rc.inet1 stop fi fi
ethtool -s eth0 wol g
# In case dhcpcd might have been manually started on the command line, # look for the .pid file, and shut dhcpcd down if it's found: if /bin/ls /etc/dhcpc/*.pid 1> /dev/null 2> /dev/null ; then /sbin/dhcpcd -k 1> /dev/null 2> /dev/null # A little time for /etc/resolv.conf and/or other files to # restore themselves. sleep 2 fi
...

Chiudiamo a questo punto il nostro editor di testi salvando i cambiamenti effettuati e, per scrupolo, facciamo fare un reboot di verifica alla macchina :

#reboot & exit
[INVIO]

Se durante lo shutdown ed il successivo riavvio tutto è andato bene, significa che la parte relativa al computer da "risvegliare" è stata egregiamente configurata e che tutto è perfettamente funzionante.

[modifica] Installazione e configurazione del programma "etherwake"

Passiamo ora ad occuparci del sistema che deve, invece, far partire il computer spento; per far ciò, la prima cosa è procurarsi il programma necessario visto in precedenza, ossia "etherwake". Preleviamolo da qui e scarichiamolo, ad esempio, nella home di root, visto che al momento è questo l'utente col quale stiamo lavorando; di seguito, spostiamoci nella directory dei sorgenti :

#cd /usr/src
[INVIO]

...ed andiamo a decomprimere l'archivio che ci siamo procurati :

#tar -xvzf /root/etherwake.tar.gz
[INVIO]

A questo punto, ci ritroveremo con una nuova directory in più con lo stesso nome dell'archivio decompattato. Entriamo nella directory :

#cd etherwake
[INVIO]

Come possiamo notare, altro non c'è che un file chiamato "ether-wake.c".
Ciò che dobbiamo fare ora è creare una sottodirectory all'interno di quella dove già ci troviamo, che ci permetta di creare ed installare il pacchetto che ci serve; per fare questo, cominciamo col creare la directory necessaria :

#mkdir /usr/src/etherwake/src
[INVIO]

Ora, andremo a spostare all'interno della directory appena creata il file "ether-wake.c" :

# mv ether-wake.c /usr/src/etherwake/src
[INVIO]

A questo punto, possiamo compilarci il nostro eseguibile con :

#gcc src/ether-wake.c -o etherwake
[INVIO]

Una volta creato l'eseguibile che ci serve, non dobbiamo far altro che installarlo in una directory adatta a poterlo lanciare ogni qual volta ci occorra, ad esempio :

#install etherwake -D /usr/sbin
[INVIO]

...oppure copiarcelo direttamente :

#cp etherwake /bin/sbin
[INVIO]

A questo punto, dovremmo avere tutto il necessario per poterci divertire a vedere come magicamente riusciamo ad avviare un elaboratore spento. Ciò che ci manca è semplicemente prendere nota dell'indirizzo "MAC" (Media Access Control) della scheda di rete che si trova all'interno della macchina che intendiamo provare a far partire; per far ciò, basta lanciare sulla suddetta macchina il famigerato "ifconfig" :

#ifconfig
[INVIO]

L'output del comando ci mostrerà :

eth0   Link encap:Ethernet  HWaddr 00:01:02:2F:BC:40  
       inet addr:194.177.127.234  Bcast:194.177.127.255  Mask:255.255.255.0
       UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
       RX packets:82075264 errors:0 dropped:0 overruns:0 frame:0
       TX packets:51585638 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:100 
       RX bytes:2858378779 (2.6 GiB)  TX bytes:2524425895 (2.3 GiB)
       Interrupt:10 Base address:0x8800

La parte evidenziata in grassetto di tale output è l'indirizzo "MAC" di cui abbiamo bisogno per "risvegliare" il PC "dormiente"; scriviamolo in un file di testo oppure appuntiamolo semplicemente da qualche parte e spegniamo il nostro computer :

#poweroff & exit
[INVIO]

[modifica] Utilizzo del programma

Bene, ad elaboratore spento, non c'è rimasto altro da fare che passare all'altro PC e verificare che effettivamente il lavoro fatto fin qui, sia valso a qualcosa; digiteremo :

#etherwake 00:01:02:2F:BC:40
[INVIO]

Se poi volessimo ottenere qualche dettaglio in più sull'esito del comando lanciato, non dovremo far altro che passargli l'opzione "D" in questo modo :

#etherwake -D 00:01:02:2F:BC:40
[INVIO]

La procedura era particolarmente semplice, per cui spero che tutto sia andato per il meglio.

Ciao!

Versione in PDF.

Autore : Juri Carlini

e-mail : juri@e-loft.eu

[modifica] Altri link

OpenMosix

Installare Slackware tramite pen drive USB

Strumenti personali
Namespace

Varianti