venerdì 27 maggio 2011

Asus eee pc 701 + wake on lan (Ubuntu 10.04)


Esigenza
Possiedo un eee pc 701 con installato una Ubuntu 10.04 LTS per netbook e mi sono sempre trovato molto bene. Ultimamente però ho rilegato il piccolo di casa Asus ad essere utilizzato come server casalingo. L'esigenza era quella di poterlo accendere on-demand con la tecnologia Wake-on-LAN.

Prerequisiti
1a. Un eee pc collegato ad un router via LAN con il cavo... quindi niente wireless!

1b. Installare per comodità sul eee pc il pacchetto ethtools, eventualmente con il classico comando da riga di testo

sudo apt-get install ethtools

oppure dal software center di Ubuntu

2a. Un pc collegato al suddetto router (la modalità è ininfluente)

2b. Installare per comodità sul pc il tool grafico scritto dall'italico Muflone: gWakeOnLan, eventualmente con il classico comando da riga di testo
sudo apt-get install gwakeonlan
oppure dal software center di Ubuntu

Procedimento
Dopo aver installato i pacchetti di prerequisito andiamo a mettere insieme tutti le parti che ci servono.

1. Per prima cosa dobbiamo conoscere il MAC address della scheda del nostro 701 con un bel:

ifconfig | grep HWaddr

da riga di comando. L'output dovrebbe essere più o meno così:

eth0      Link encap:Ethernet  HWaddr 01:23:45:67:89:ab

A noi interessa la stringa che segue a HWaddr e l'interfaccia di rete che nel mio caso è eth0 a inizio output

2. Lavoriamo come root, da riga di comando

sudo -i

3. installare ethtool, se non già installato nel sistema

apt-get install ethtool

controlliamo la configurazione della scheda di rete con questo comando

ethtool eth0

l'output dovrebbe contenere sul fondo queste informazioni

        Supports Wake-on: g
        Wake-on: d

La voce Supports Wake-on specifica i metodi di wake-on supportati dalla scheda di rete: g sta per Wake on MagicPacket™, mentre la d dell'ultima riga sta per la modalità attualmente impostata: d sta per disabled.

4. Ora abbiamo tutto quello che ci serve. Il comando che abilita il wake-on-lan è:

ethtool -s eth0 wol g

per disabilitare

ethtool -s eth0 wol d

Se vogliamo che questa funzionalità rimanga attiva ad ogni avvio dobbiamo crearci un piccolo script da far eseguire al boot. Come utente root creiamo un file di testo nella seguente maniera

cd /etc/init.d/
gedit wakeonlanconfig

Incolliamo nel file il seguente testo sostituendo eventualmente eth0 con l'interfaccia corretta trovata nel punto 1

#!/bin/bash

# Activate WOL on NIC
ethtool -s eth0 wol g
# Allow eth0 to wake up machine

echo enabled > /sys/class/net/eth0/device/power/wakeup
# Configure ACPI
grep `lspci -tv | grep -i ethernet | cut -d- -f2` \
    /proc/acpi/wakeup | cut -d' ' -f1 > /proc/acpi/wakeup

exit

Salvare e uscire da gedit. Infine rendiamo eseguibile lo script e impostiamo l'esecuzione automatica all'avvio con i seguenti comandi

chmod a+x wakeonlanconfig
update-rc.d -f wakeonlanconfig defaults

Dovrebbe comparire un output del genere:

 Adding system startup for /etc/init.d/wakeonlanconfig ...
   /etc/rc0.d/K20wakeonlanconfig -> ../init.d/wakeonlanconfig
   /etc/rc1.d/K20wakeonlanconfig -> ../init.d/wakeonlanconfig
   /etc/rc6.d/K20wakeonlanconfig -> ../init.d/wakeonlanconfig
   /etc/rc2.d/S20wakeonlanconfig -> ../init.d/wakeonlanconfig
   /etc/rc3.d/S20wakeonlanconfig -> ../init.d/wakeonlanconfig
   /etc/rc4.d/S20wakeonlanconfig -> ../init.d/wakeonlanconfig
   /etc/rc5.d/S20wakeonlanconfig -> ../init.d/wakeonlanconfig

Bene ora possiamo eseguire lo script con

/etc/init.d/wakeonlanconfig

5. Ora per fare un test basta spegnere il piccolo eee pc e da un'altra postazione con installato gWakeOnLan andare ad accendere l'eee pc. Per informazioni sull'uso di quest'ultimo rimando al blog dell'autore. (http://ubuntrucchi.wordpress.com/progetti-projects/gwakeonlan/)


Fonti:
http://ubuntuforums.org/showthread.php?t=234588
http://www.ibrado.org/post/366322800
http://ubuntrucchi.wordpress.com/progetti-projects/gwakeonlan/

Immagini:
http://www.flickr.com/photos/loudestnoise/1936095788/

2 commenti:

  1. uff...sto tentando di reperire un netbook eeepc usato da ebay, ma in giro trovo indicazioni contrastanti sulla presenza/assenza del WOL sugli eeepc...c'è o non c'e sta benedetta WOL nel bios?!?!

    http://forum.eeepc.it/viewtopic.php?id=6386

    http://forum.eeeuser.com/viewtopic.php?id=31911

    dipende forse dal modello di eeepc?

    RispondiElimina
  2. @argo: il Wake on lan non è presente come voce nel BIOS dell'eee pc 701, c'è invece il Boot on Lan che è un'altra cosa. Questo però non vuol dire che la scheda di rete non supporti tale opzione ne tanto meno il kernel di Linux. Il vincolo sull'eee pc è di usare il cavo ethernet e quindi la scheda di rete ethernet e non la scheda di rete wifi perchè quest'ultima non ha il supporto per il WOL. Altro accorgimento è quello di avvalersi dello script descritto nell'articolo altrimenti ad ogni avvio ti perdi il supporto per l'avvio successivo.

    RispondiElimina