Image Hosted by ImageShack.us

LessWatts e’ un sito web ideato dalla comunita’ opensources che ruota attorno ai prodotti Intel, e che si occupa di fornire guide, tips ed informazioni sull’ottimizzazione del Power Management sui sistemi GNU/Linux con hardware Intel.

Alcuni argomenti sono stati trattati piu’ volte su questo blog; Mi riferisco agli howto sul frequency scaling, sul risparmio energetico dei dischi e delle schede video.
Oggi vorrei focalizzare l’attenzione sul power management dei i dispositivi wireless, che consente non solo di diminuire i consumi della batteria ma anche di ottimizzare la qualita’ del segnale.

WiFi power saving mode (Power Save Poll, PS-Poll)

Questo protocollo e’ stato sviluppato per diminuire il tempo totale di consumo energetico da parte dei dispositivi radio.
PS-Poll consente agli adattatori WiFi di notificare all’ access point quando il dispositivo verra’ spento. Mentre il segnale radio e’ spento, l’access point manterra’ in cache tutti i pacchetti a lui destinati. Naturalmente, piu’ a lungo rimane spento il wifi e piu’ energia risparmieremo. I drivers, in questo caso, possono controllare quanto tempo intercorre prima che venga di nuovo ripristinato il segnale radio, per recuperare i pacchetti mantenuto dall’AP.

Il lato negativo di questa tecnica di Power Management

  • Il comportamento appena descritto aumenta la latenza della connessione. Questo non ha effetti “reali” nella normale navigazione web, bensi’ in alcune circostanze particolari dove e’ importante ridurre tale latenza (per esempio nei giochi online, nello streaming etc..). In questi casi l’abilitazione di PS-Poll non e’ raccomandato.
  • Il secondo problema e’ che non tutti gli AP supportano questa tecnologia. ed e’ molto facile che la connessione venga interrotta. Se, dopo aver abilitato PS-Poll, notiamo una perdita sostanziale di pacchetti che porta alla disconnessione dal network, controlliamo che il nostro AP (il router ad esempio) disponga di un firmware piu’ recente.
  • Il meccanismo utilizzato per abilitare/disabilitare il protocollo PS-Poll varia a seconda della scheda in dotazione al nostro laptop. Facciamo un esempio con una Intel che utilizza i driver ipw2200:

    sudo iwpriv eth1 set_power 5

    Eth1 sara’ la nostra interfaccia mentre la spiegazione del valore impostato e’ la seguente:

    1: Minore risparmio energetico in favore delle prestazioni (ed e’ anche quello che aumenta la latenza)
    5: E’ invece il valore meno aggressivo (piu’ risparmio energetico)
    6: Disabilita completamente il risparmio energetico.

    Power save level: 5 (Timeout 25ms, Period 1000ms)
    Power save level: 1 (Timeout 350ms, Period 400ms)

    Nei recenti dispositivi, quali gli iwl4965 e iwl3945, e’ possibile configurare manualmente PS-Polls tramite lo pseudo-filesystem sysfs sull’attributo power_level:

    sudo echo 5 > /sys/bus/pci/drivers/iwl4965/*/power_level

    Sostituiamo iwl4965 con la nostra scheda (nel mio caso iwl3945). Questi due modelli non supportano i comandi di power management “iwconfig”:

    dyve@n200:~$ sudo iwconfig wlan0 power on
    Error for wireless request “Set Power Management” (8B2D) :
    GET failed on device wlan0 ; Operation not supported.
    dyve@n200:~$

    Auto association

    La maggior parte dei network drivers sviluppati prima del subsystem mac8011 (riporto ancora come esempio i driver ipw3945 da me utilizzati), sono stati riunificati a partire dal kernel 2.6.23.
    Questa volta il problema e’ il seguente: Quando il dispositivo non e’ associato ad alcun Access Point:


    wlan0 IEEE 802.11g ESSID:””
    Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
    Tx-Power=27 dBm
    Retry min limit:7 RTS thr:off Fragment thr=2346 B
    Encryption key:off
    Link Quality:0 Signal level:0 Noise level:0
    Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
    Tx excessive retries:0 Invalid misc:0 Missed beacon:0

    ..entra in modalita’ di scansione “aggressiva” persino se l’interfaccia e’ down.
    Tale comportamento permette ad alcuni vecchi programmi in userspace di funzionare, perche’ considerano l’adattatore come se fosse “in cerca” di una rete.

    Questo sistema consuma molta piu’ energia di quando, nella situazione opposta, siamo invece regolarmente connessi. Esempio: connessione via cavo o access-point irraggiungibile.
    Nelle moderne distribuzioni Linux, nonostante questo comportamento sia stato in qualche modo ridimensionato, possiamo disabilitarlo del tutto in favore di un maggior risparmio energetico. Per fare questo dobbiamo passare il parametro associate=0 al modulo del kernel in questione:

    sudo rmmod ipw2200
    sudo modprobe ipw2200 associate=0

    Rendiamo permanente questo “escamotage” aggiungendo la seguente riga al file /etc/modprobe.conf :

    options ipw2200 associate=0

    NB: I driver che si appoggiano al subsystem mac8011 non hanno questa feature (iwl*)

    RFKill

    img

    RFkill, come da screen, e’ un modulo che consente ai laptop non equipaggiati con switch hardware o combinazione di tasti FN+, di spegnere completamente i dispositivi radio come, appunto, il wifi e il bluetooth .. in un colpo solo.
    Se rientriamo in questa categoria di utenti un po’ “sfortunati” potrebbero tornarci utili questi due comandi:

    Radio-off

    for i in `find /sys -name "rf_kill" ; do echo 1 > $i ; done

    Radio-on

    for i in `find /sys -name "rf_kill" ; do echo 0 > $i ; done

    Intervallo Beacon

    Gli AP annunciano la loro presenza ad intervalli regolari (possiamo monitorare il traffico con wireshark) inviando un pacchetto chiamato “beacon packet“. Con la maggior parte degli access points, il valore di default e’ impostato a 100 millisecondi. L’impatto dell’intervallo di beacon si fa piu’ marcato quando l’AP tenta di scovare un network ad esso associato. Questo processo associativo richiede un “tuning” su ogni canale fino a quando non viene trovato quello in ascolto per trasmettere il pacchetto beacon. Piu’ e’ lungo questo intervallo e piu’ a lungo l’onda radio si dovra’ soffermare su ogni canale, rischiando addiritturala perdita del pacchetto.

    Gestire un largo numero di beacon packets, oltre a problemi di saturazione, obbliga la CPU a “smuoversi” dallo stato di qiuetanza (idle..dallo stato C allo stato C0) per processare i pacchetti in arrivo. Se ci troviamo in una posizione molto vicina all’AP, possiamo ottenere piu’ risparmio energetico accedendo alla configurazione del nostro router e impostando l’intervallo di beacon su valori piu’ alti.
    Anche il firmware, caricato dal dispositivo durante l’inizializzazione del modulo, varia i C-states della CPU inviandole direttamente degli interrupts ogni qual volta viene rilevato un evento.
    La soluzione e’ quella di caricare l’interfaccia manualmente, con:

    sudo ifconfig wlan0 up

    Sono state realizzate alcune patch, a questo riguardo, per le schede ipw2100 e ipw2200. Nelle future release del kernel verranno adottate di default.

    Terminiamo questo approfondimento sul power management con il bluetooth.
    Allo stesso modo, lasciare abilitata un interfaccia radio come il BT puo’ influire negativamente sia sulle prestazioni del nostro laptop che sulla sicurezza.

    dyve@n200:~$ hciconfig
    hci0: Type: USB
    BD Address: 00:1D:D9:F5:8C:0F ACL MTU: 1017:8 SCO MTU: 64:8
    UP RUNNING PSCAN ISCAN
    RX bytes:960 acl:0 sco:0 events:26 errors:0
    TX bytes:354 acl:0 sco:0 commands:26 errors:0

    dyve@n200:~$

    Se il nostro dispositivo e’ interno al computer, e se quest’ultimo non e’ dotato di uno switch hardware, l’unico modo per disabilitare completamente l’interfaccia hci0 e’ quello di rimuovere i driver interessati:

    sudo hciconfig hci0 down
    sudo rmmod hci_usb

    [OT]

    Image Hosted by ImageShack.us

    Se vogliamo farci del male (anche fisico) questo modello di adattatore wireless da ben 500mW di potenza di output potrebbe mandare a quel paese tutte le tecniche di PM qui descritte..(vero RedShadow??). Da usarsi solamente dietro ricetta medica…(il rischio di mutazioni genetiche e’ molto alto).
    😀

  • LessWatts Projects
  • Related Posts Plugin for WordPress, Blogger...

    Il tuo indirizzo ip:
    34.201.121.213

    Valutazione 3.00 su 5
    happy wheels 2 demo

    Commenti via Facebook:

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    *