giovedì 3 giugno 2010

Aspire One, Xubuntu: slot per schede di memorie SD

I primi modelli Aspire One prevedono due slot per le schede di memorie. Quello sul lato sinistro è perfettamente funzionante subito dopo l'installazione del sistema operativo. Quello sul lato destro, invece, non sembra funzionare bene. Solo se inseriamo una scheda di memoria SD prima di accendere l'Aspire One riusciamo poi a utilizzarne il contenuto all'interno, così come per tutte le altre schede che inseriamo nello slot a destra sempre nell'arco della stessa sessione!
Per risolvere questo problema occorre editare il file "/etc/default/grub" e aggiungere alla riga "GRUB_CMDLINE_LINUX_DEFAULT" la stringa "pciehp.pciehp_force=1":

light-kun@ryuk:~$ sudo mousepad /etc/default/grub


Xubuntu usa una nuova versione di grub, ogni modifica al file "/etc/default/grub" deve essere seguita dal comando "sudo update-grub", pertanto:

light-kun@ryuk:~$ sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-14-generic
Found initrd image: /boot/initrd.img-2.6.31-14-generic
Found memtest86+ image: /boot/memtest86+.bin
done
light-kun@ryuk:~$

Il nuovo file di configurazione è stato generato, non ci resta che avviare l'Aspire One e verificare il funzionamento di entrambi gli slot per schede SD!

martedì 1 giugno 2010

Android: installazione dell'SDK ed esecuzione dell'emulatore

Android è un sistema operativo open source pensato da Google per dispositivi mobili, recentemente è stata rilasciata la versione 2.2. Si basa su un kernel Linux, diverse librerie di supporto e di un ambiente run-time per l'esecuzione di applicazioni (Android usa la Dalvik Virtual Machine). Trovate altre informazioni su Android a questo indirizzo. Il team di Google mette a disposizione del programmatore/utente un ambiente di sviluppo: il service development kit, da ora in avanti SDK. Per provare le applicazioni viene poi fornito un emulatore, vi va di provarlo sul vostro computer?
Scaricate a questo indirizzo, nella sezione SDK, la versione per il vostro sistema operativo. Dovendo provare l'emulatore su una piattaforma Linux ho allora scaricato il file "android-sdk_r06-linux_86.tgz". Per abilitare il pulsante per il download applicate un segno di spunta nella casella in basso (per accettare i termini d'uso e le relative licenze). Il file scaricato, grande circa 16MB, è un archivio tar compresso con l'algoritmo gzip (gz) e va estratto con questi comandi:

light-kun@ryuk:~$ cd Scaricati/
light-kun@ryuk:~/Scaricati$ tar zxvf android-sdk_r06-linux_86.tgz

L'estrazione genera (all'interno della cartella che ospita lo stesso archivio) la cartella "android-sdk-linux_86" che, per comodità, sposto in "/opt" con:

light-kun@ryuk:~/Scaricati$ sudo mv android-sdk-linux_86/ /opt
[sudo] password for light-kun:
light-kun@ryuk:~/Scaricati$ rm android-sdk_r06-linux_86.tgz

Con l'ultima istruzione ho anche cancellato l'archivio tar scaricato in precedenza, tutto quello che ci occorre è in "/opt/android-sdk-linux_86". In questa cartella vengono organizzati in altre sotto cartelle: i tool (nella cartella "tools"), i plugin (nella cartella "add-ons") e le varie piattaforme per Android (nella cartella "plattforms"). Subito dopo l'estrazione l'unica cartella che contiene qualcosa di utile è la cartella "tools"! Spostiamoci all'interno di questa ed eseguiamo Android SDK and AVD Manager:

light-kun@ryuk:~$ cd /opt/android-sdk-linux_86/tools
light-kun@ryuk:/opt/android-sdk-linux_86/tools$ ./android


Questa finestra ci ricorda che al momento non è presente nessun dispositivo da emulare. Non possiamo ancora crearne uno. L'unica cosa che possiamo fare è scaricare allora una versione di Android! Selezioniamo dalla colonna a sinistra la voce "Available Packages" e applichiamo un segno di spunta all'unica voce presente:


Di default il tool seleziona tutte le versioni di Android, dalla più recente all'ultima ancora disponibile. Non avendo molto spazio sul mio Aspire One mi accontento della sola versione 2.1 dell'SDK, degli esempi e delle relative API:


Per iniziare il download di quanto selezionato sopra clicchiamo su "Install Selected", una finestra ci chiede di confermare il download (spuntate la casella "Accept All" e cliccate su "Install", altrimenti questa finestra uscirà per ogni pacchetto da scaricare). Ha inizio il download:


Andate a prendere due caffè! Uno però lo conservate.
Al termine del download chiudete la finestra più piccola cliccando su "Close". Ora nella finestra di Android SDK and AVD Manager, selezionando la voce "Installed Packages", qui è possibile verificare la presenza dei pacchetti scaricati!


In "Virtual Devices", la prima voce nella colonna a sinistra, non è ancora presente nessun dispositivo Android da emulare. Tuttavia, adesso disponiamo delle API per crearne uno! Ecco come: selezionate la voce "Virtual Devices", quindi cliccate sul bottone "New" e date un nome al vostro dispositivo virtuale, specificate poi il "Target" (eventualmente potete aggiungere al vostro dispositivo altri componenti hardware da emulare).


Pronti? Cliccate sul bottone "Create AVD" (AVD sta per Android Virtual device), una finestra più piccola sintetizza le proprietà del dispositivo appena creato che adesso è nella lista "Virtual Devices":


E ora? Direi di selezionare il dispositivo appena creato e di cliccare sul bottone "Start" (nella finestra "Launch Options" cliccate poi su "Launch")!


Se siete sull'Aspire One qui ci vuole più tempo, direi di consumare l'altro caffè (dovrebbe essere ancora caldo). Occorrono circa 5-6 minuti prima di vedere qualcos'altro (cliccate eventualmente sui messaggi di errore che compaiono sullo schermo del dispositivo emulato).


L'emulazione sull'Aspire One purtroppo è lenta, non mi aspettavo comunque qualcosa di più veloce. Meglio provare l'emulazione su un computer con più potenza di calcolo. Osservate l'orologio in alto a destra e confrontate l'ora con la schermata successiva:


Visto? Ve l'avevo detto che l'emulazione è lenta. Sul PC di casa invece va decisamente meglio. Alcune funzioni sono emulate, quindi inutile provare a far squillare il vostro cellulare!

Aspire One, Xubuntu: il modulo "acerhdf"e la gestione della ventola

A partire dalle versioni 2.6.31 il modulo "acerhdf", di Peter Feurer, è parte integrante del kernel di Linux. La gestione della ventola, con il modulo "acerhdf", nei modelli 110L e 110X dell'Aspire One, permette di aumentare l'autonomia della batteria e di diminuirne la rumorosità. Chi avrà installato Ubuntu 9.10 (Karmic koala) sull'Aspire One avrà sicuramente notato il rumore emesso dalla ventola, quasi perennemente accesa. Il modulo per la gestione della ventola non viene caricato di default e la stessa viene allora azionata ad opportuni valori di default della temperature di cpu. I valori di default, essendo troppo bassi, costringono la ventola a restare accesa quasi subito dopo aver avviato il sistema operativo!
Con "acerhdf" possiamo ottimizzare l'uso e la durata della batteria andando ad azionare la ventola di raffreddamento a valori di temperatura più idonei al processore Intel Atom N270, continuate a leggere e vedremo come fare.
Per generalizzare un po il discorso accertiamoci in ogni caso della presenza del modulo "acerhdf" digitando in una finestra di terminal (che in Xubuntu è avviabile dal menù delle applicazioni oppure premendo i tasti "Alt" ed "F2", digitando "xfce4-terminal" e cliccando sul bottone "Esegui"):

light-kun@ryuk:~$ lsmod | grep acerhdf
acerhdf 8116 0
light-kun@ryuk:~$

Il comando "lsmod" ritorna un elenco, molto lungo, di tutti i moduli presenti nel kernel. Per questo motivo l'output generato viene poi passato e filtrato dal successivo comando "grep" che estrae dalla lista, se presente, la riga che contiene informazioni sul modulo "acerhdf" ("grep" è bravo e veloce nel fare questo genere di lavori, ricordatevelo). Se avete seguito l'installazione di Xubuntu 9.10 potete stare tranquilli, come dicevo all'inizio il modulo è stato integrato nel kernel!
Gli utenti che al momento usano altre distribuzioni Linux, prima di passare alla configurazione di "acerhdf", devono necessariamente aggiungere lo stesso nel kernel, compilandolo e installandolo. Esiste più di un modo per avviare il modulo "acerhdf", uno di questo prevede la modifica di un file di sistema (tranquilli, bisogna scrivere poca roba). Aprite il file "/etc/modules" e aggiungete la riga "acerhdf" (subito dopo la riga "lp"). Accedete (in scrittura) al file con questo comando:

light-kun@ryuk:~$ sudo mousepad /etc/modules

Vi verrà chiesta la password del super utente (gli utenti di altre distribuzioni potrebbero non avere Mousepad, in tal caso bisogna sostituire "mousepad" con il nome di un altro editor) che, se esatta, vi permetterà di accedere al file e di aggiungere quindi la riga "acerhdf":


l modulo si serve di un file di configurazione per impostare la temperatura (in gradi centigradi) di accensione e spegnimento della ventola (oltre all'intervallo, in secondi, di lettura della temperatura).
Creare, allora, il file "/etc/modprobe.d/acerhdf.conf" e scrivere all'interno la seguente riga "options acerhdf verbose=0 fanon=55 fanoff=50 interval=10 kernelmode=1". Potete fare quanto appena detto con Mousepad (copiate e incollate nell'editor la riga appena indicata). Apriamo l'editor con:

light-kun@ryuk:~$ sudo mousepad /etc/modprobe.d/acerhdf.conf


Attenzione, nelle nuove versioni del modulo "acerhdf" le temperature vengono indicate in millesimi! Se con i valori visti nell'esempio sentiamo la ventola sempre accesa provate allora a scrivere la riga per le opzioni in questo modo: "options acerhdf verbose=0 fanon=55000 fanoff=50000 interval=10 kernelmode=1".
Possiamo spostare l'intervallo di accensione e spegnimento della ventola modificando, rispettivamente, i valori di "fanon" e "fanoff" all'interno del file. La frequenza di lettura della temperatura può essere modificata attraverso il parametro "interval". Se all'avvio il caricamento del modulo non riesce, la gestione della ventola avverrà con i valori di default previsti nel kernel (quelli finora usati). Date il comando "dmesg | grep acerhdf" per verificare all'avvio del sistema operativo se il modulo "acerhdf" è in funzione, in caso affermativo riceverete una risposta di questo tipo:

light-kun@ryuk:~$ dmesg | grep acerhdf
[ 5.526999] acerhdf: Acer Aspire One Fan driver, v.0.5.16
light-kun@ryuk:~$

Non rimane, adesso, che chiarire quali valori di temperatura utilizzare. La scelta influenzerà inevitabilmente la durata della batteria e a seconda dell'utilizzo sentiremo partire prima o dopo l'accensione della ventola. Ho sperimentato diversi valori prima di fissare gli stessi, almeno nel mio caso. Se si impostano i valori di "fanon" e "fanoff" su valori troppo bassi c'è il rischio di tenere comunque sempre accesa la ventola di raffreddamento. Sul sito di Intel le specifiche termiche riferiscono di una temperatura massima, sopportabile dal processore, di 90°C. Il consiglio è quindi quello di restare lontani (molto lontani) da quel valore. Inutile, poi, far partire la ventola di raffreddamento già a 40°C, come avviene di default senza il modulo "acerhdf". Tale temperatura viene raggiunta in poco tempo dal processore, ecco perchè senza il modulo "acerhdf" sentiamo la ventola di raffreddamento accendersi subito. I valori da me proposti invece permettono di usare l'Aspire One (con un browser e un editor di testo in esecuzione) per i primi 15 minuti (circa) senza sentire la ventola di raffreddamento (tanto impiega il processore a raggiungere la temperatura di "fanon" scelta). Infine, se non volete sentire l'accensione della ventola con troppa frequenza meglio allora distanziare i valori di "fanon" e "fanoff". Ricordate però che più la temperatura di "fanon" è alta e più la ventola farà fatica a farla scendere al valore di "fanon" (la temperatura è una proprietà intensiva!). Non esistono dei valori buoni per tutti, molto dipende da come utilizzate l'Aspire One. Qui trovate le istruzioni per scrivere un script e integrare nel pannello di Xubuntu le informazioni sullo stato della ventola di raffreddamento e della temperatura del processore.