Old:Debian Lenny su ASUS eeePC 900A


Debian Lenny su ASUS eeePC 900A
Banner e-zine.png
La prima e-zine italiana sul mondo Debian

Installazione e configurazione di GNU/Linux Debian su uno dei netbook della famiglia Asus.

Questa guida mostra come è possibile installare e configurare la nostra distribuzione GNU/Linux preferita sul netbook per eccellenza: l'ASUS eeePc.

Cos'è un netbook?
Wikipedia recita:
«Il Netbook è un computer mobile minimale ed essenziale, destinato soprattutto alla navigazione in Internet e videoscrittura e pensato soprattutto per un pubblico non professionale.»
Potendo contare sulla potenza e sulla versatilità della nostra Debian, trasformeremo questo netbook in un notebook in miniatura, hardware permettendo!

Tratto dalla e-zine di Debianizzati.org

Link agli articoli:




Installazione di Debian Lenny su ASUS eeePC 900A

Premessa

Questa guida mostra come è possibile installare e configurare la nostra distribuzione GNU/Linux preferita sul netbook per eccellenza: l'ASUS eeePc.




Cos'è un netbook?

Wikipedia recita:

"Il Netbook è un computer mobile minimale ed essenziale, destinato soprattutto alla navigazione in Internet e videoscrittura e pensato soprattutto per un pubblico non professionale."

Potendo contare sulla potenza e sulla versatilità della nostra Debian, trasformeremo questo netbook in un notebook in miniatura, hardware permettendo!

Installazione

Il progetto debianeeePC [1] mette a disposizione una piccola immagine avviabile (solo 16 MB) che contiene il debian-installer di Lenny, personalizzato per l'eeePC [2]. Questo installer permette di scaricare tutto via rete, pertanto dovremo avere a disposizione un access point oppure un router ethernet. E' necessario poter disporre di una memoria USB vuota, che dovremo formattare per fare posto all'intaller e un computer (con GNU/Linux ovviamente!) con cui fare le operazioni preliminari. Per questo possiamo utilizzare l'eeePC stesso che viene fornito con una versione di Xandros GNU/Linux.

Prepariamo la chiavetta USB. La inseriamo e verifichiamo a quale device corrisponde con

dmesg|tail

Identificato il dispositivo (quello corrispondente all'intero volume e non a una sua partizione), trasferiamo l'installer sulla chiavetta:

dd if=debian-eeepc.img of=/dev/sdX ;sync

Adesso non resta che riavviare l'eeePC con inserita la chiavetta USB, salutando per l'ultima volta Xandros. All'avvio premiamo il tasto F2 per entrare nella configurazione del BIOS dove attiviamo come primo dispositivo di boot la chiavetta USB ed attiviamo pure la scheda wireless, se non lo abbiamo già fatto in precedenza. Il sistema riavviato fa boot direttamente sulla chiavetta USB che abbiamo preparato, senza bisogno di ulteriori azioni. A questo punto ci si presenta agli occhi il classico installer di Debian e procediamo come da nostra abitudine. Consigliamo a questo proposito l'articolo "Installare Debian Lenny" presente in questa rivista.


Alcuni consigli:

  • sia la scheda wireless che quella ethernet vengono rilevate correttamente e sono entrambe utilizzabili, grazie ai moduli del kernel fornito con l'installer. La connessione wireless può essere instabile, quindi se possibile è preferibile utilizzare l'ethernet.
  • in fase di partizionamento si può non riservare nessuna area di swap considerando che 1GB di RAM sia più che sufficiente per un normale utilizzo dell'eeePC.
  • Utilizzare un file system ext3 è la scelta migliore: i vantaggi del journaling valgono molto di più della piccola percentuale in più di scritture su disco che questo comporta: il disco a stato solido durerà comunque degli anni.
  • Il kernel più adatto è ovviamente il 2.6.26-1-686


ATTENZIONE : è possibile che GRUB venga installato sul device sbagliato! Una verifica può evitare spiacevoli inconvenienti. Prima di confermare l'installazione di GRUB, si apre una shell con alt+F2 e si controlla l'output di

df -a

Dobbiamo verificare che il device montato in /target sia effettivamente il disco interno, piuttosto che la chiavetta USB. Se non è così prendiamo nota del device corrispondente al disco e installiamo grub su questo. Al primo riavvio modificheremo grub opportunamente per poter avviare correttamente il sistema.


Arrivati alla scelta dei pacchetti da installare è conveniente selezionare solo "Sistema standard" e "computer portatile" per installare tutto ciò di cui abbiamo bisogno (e solo quello) dopo il primo riavvio.

Configurazione

Se tutto è andato a buon fine, al primo avvio ci ritroveremo al login testuale. Entriamo come root e ci accingiamo a completare l'installazione.

L'errore che abbiamo notato in fase di boot:

Error: Driver 'pcspkr' is already registered, aborting...

lo risolviamo semplicemente blacklistando il modulo pcspkr, assolutamente superfluo, dato che l'eeepc non è dotato di speaker interno.

/etc/modprobe.d/blacklist

aggiungiamo

blacklist pcspkr

Rete

01:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0)
02:00.0 Ethernet controller: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01)

I moduli Madwifi sono stati installati automaticamente e la scheda wireless è gia utilizzabile, il modulo atl1e , necessario alla scheda ethernet è presente nel kernel 2.6.26, quindi possiamo scegliere di collegarci in rete sia ethernet (eth0) che wireless (ath0) senza bisogno di intervento alcuno. Il sistema cercherà automaticamente di utilizzare lo stesso metodo utilizzato in fase di installazione.

I repository

Ci troviamo già impostati quelli ufficiali di Lenny e quelli del progetto DebianEeePC per Lenny che contengono molti pacchetti utili, personalizzati per il nostro eeePc. Possiamo aggiungerne eventualmente di personali (es. debian-multimedia).

Server X

Questo modello è equipaggiato con un display da 8.9" WSVGA ad una risoluzione di 1024x600 pixel e la scheda grafica è una

00:02.0 VGA compatible controller: Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03)

Per una installazione minimale di xorg (80 MB circa) è sufficiente:

aptitude install -R xserver-xorg-video-intel libgl1-mesa-dri xinit

Tutto il necessario viene installato come dipendenza.


Il touchpad e un Elantech, ma il driver elantech è disponibile solo per kernel superiori al 2.6.28 (o come patch per kernel inferiori)... Poco male dato che viene comunque riconosciuto e funziona perfettamente con il driver mouse di xorg. Entrando nei dettagli, possiamo contare su:

  • scroll verticale, agendo con due dita sul touchpad;
  • trascinamento, premendo con il dito e spostandosi senza rilasciare la pressione;
  • emulazione del tasto centrale del mouse, mediante tocco con due dita.


A questo punto non ci resta che scrivere il file di configurazione xorg.conf. Con la versione xorg 7.3 presente in Lenny, il file non sarebbe più necessario, ma scriverlo è comunque un buon esercizio per prendere pratica e conoscere meglio il sistema. Dato che ci siamo, possiamo abilitare lo schermo composito.

Section "InputDevice"
	Identifier	"Generic Keyboard"
	Driver		"kbd"
	Option		"XkbRules"	"xorg"
	Option		"XkbModel"	"pc105"
	Option		"XkbLayout"	"it"
EndSection

Section "InputDevice"
	Identifier	"Configured Mouse"
	Driver		"mouse"
EndSection

Section "Monitor"
        Identifier      "Integrato"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Device          "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
        Monitor         "Integrato"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Virtual         2048 2048
        EndSubSection
EndSection

Section "Device"
        Identifier      "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
        Driver          "intel"
        BusID           "PCI:0:2:0"
        Option          "EnablePageFlip"    "on"
        Option          "AccelMethod"        "EXA"
        Option          "MigrationHeuristic"   "greedy"
        Option          "AccelDFS"      "true"
        Option          "DynamicClocks"    "on"
        Option          "ColorTiling"       "on"
        Option          "FBTexPercent"       "95"
        Option          "XAANoOffscreenPixmaps" "true"
        Option          "AddARGBGLXVisuals"     "true"
EndSection


Section "DRI"
    Mode 0666
Endsection


Section "Extensions"
    Option              "Composite"     "Enable"
Endsection

Le prestazioni della scheda video non sono niente male, un test con glxgears indica:

7063 frames in 5.0 seconds = 1412.485 FPS
7045 frames in 5.0 seconds = 1408.881 FPS
7063 frames in 5.0 seconds = 1412.452 FPS
7043 frames in 5.0 seconds = 1408.592 FPS

Attivando il compositor integrato in xfwm4 (Xfce) le prestazioni però calano un po'...


3179 frames in 5.0 seconds = 635.725 FPS
3195 frames in 5.0 seconds = 638.996 FPS
3125 frames in 5.0 seconds = 624.923 FPS
3158 frames in 5.0 seconds = 631.504 FPS

Desktop environment

A questo punto installiamo il nostro DE preferito. Xfce può essere un'ottima scelta, dato che offre un DE completo ma minimale e bisognoso di poche risorse sia in termine di RAM e CPU che di spazio su disco. Niente esclude che si possa installare qualunque altro DE. Se vogliamo optare per Fluxbox, prima leggiamo l'articolo dedicato, presente in questa rivista.

Per Xfce:

aptitude install xfce4

Possiamo scegliere se installare o meno un gestore di login grafico. Possiamo scegliere tra slim, xdm o gdm. Se non lo vogliamo ma vogliamo comunque che Xfce venga avviato in automatico dopo il login testuale sulla tty1 possiamo aggiungere a ~/.basrc dell'utente:

if [ "`tty`" = "/dev/tty1" ]
then
  startxfce4 1>/tmp/startxfce.log 2>&1
fi

In questo modo registriamo anche un log in /tmp. Adesso possiamo arricchire il nostro desktop con le nostre applicazioni preferite.

Ricordiamo di aggiungere il nostro utente al gruppo powerdev per poter dare l'halt al sistema sfruttando hal e dbus, passando per l'interfaccia grafica.

adduser nomeuser powerdev

AUDIO

00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)


chip:  Realtek ALC269 

Con la versione alsa-base 1.0.17 disponibile in Lenny, il microfono integrato dà seri problemi di utilizzo. Per questo siamo costretti ad utilizzare una versione più aggiornata. Possiamo prelevare l'ultima versione dal sito ufficiale oppure più semplicemente, la preleviamo dai repository experimental di Debian, in cui è disponibile la versione 1.0.18. Abilitiamo il repository aggiungendo al sources.list:

deb ftp://ftp.debian.org/debian experimental main

Quindi:

aptitude update
aptitude install module-assistant
m-a prepare
aptitude -t experimental install alsa-source
m-a build alsa
m-a install alsa

Al riavvio avremo risolto i nostri problemi. L'alsamixer indica i seguenti canali:

PCM = canale delle casse integrate 
LineOut = canale delle cuffie
iSpeaker = interruttore mute/unmute

Capture = volume del microfono
Digital = amplificazione del microfono

Dopo una serie di prove sul microfono, il giusto livello dei canali che garantiscono un ottima resa di registrazione senza fruscii fastidiosi e distorsioni è risultato essere:

Capture = 87
Digital = 37

Noto quanto sopra ci prepariamo ad abilitare i controlli audio con i tasti funzione sfruttando il sistema acpi (indipendente dal DE scelto):

Installiamo gli script per il supporto acpi dell'eeePC

aptitude purge acpi-support
aptitude install eeepc-acpi-scripts 

In questo modo possiamo contare su ulteriori features quali, lo spegnimento del sistema in seguito alla pressione del tasto di accensione/spegnimento e l'ibernazione in seguito alla chiusura dello schermo (perfettamente funzionante).

Quindi modifichiamo opportunamente il file /etc/default/eeepc-acpi-scripts in modo che riporti al suo interno, tra le altre cose:

VOLUME_LABEL='PCM'
HEADPHONE_LABEL='iSpeaker'
I_SWITCH_LABEL='iSpeaker'

Così possiamo controllare i giusti canali audio con i tasti funzione.

Webcam

Bus 005 Device 004: ID 093a:2700 Pixart Imaging, Inc. 

La webcam da 0.3 megapixel è perfettamente riconosciuta e supportata dal driver uvcvideo già incluso nel kernel 2.6.26. E' necessario eventualmente caricare il modulo uvcvideo e attivare la webcam con:

echo "1" > /sys/devices/platform/eeepc/camera

Si può configurare e verificarne il corretto funzionamento mediante il programma luvcview avviabile dalla shell dell'utente con:

luvcview -f yuv

Batteria

La batteria in dotazione ha 4 celle per una capacità totale di 4,4 AH che consentono una durata media in condizioni operative normali di 4 ore circa. Xfce ne permette il monitoraggio e la gestione grazie all'applet xfce4-battery-plugin posizionabile sul pannello.


Processore: hyper-threading e scaling

A differenza degli altri modelli della stessa serie che montano un Celeron(TM), il 900A è equipaggiato con un processore Intel(R) Atom (TM) N270 Diamondville(TM) a 1,6 GHz con bus a 533 MHz, architettura X86 (32 bit) senza implementazione EM64T. Alimentato con una tensione di 1.2 V, questo processore dissipa solamente 2.5W, ideale per una lunga durata della batteria. Altre caratteristiche sono il supporto alla tecnologia hyper-threading e cache di L1=32KB e L2=512 KB. Il modulo del kernel acpi_cpufreq si occupa dello scaling del processore e viene caricato e attivato in automatico senza intervento alcuno. Ogni personalizzazione con il nostro strumento preferito (cpufrequtils è quello già installato di default) è ovviamente possibile. Come possiamo notare da /proc/cpuinfo il processore supporta due step, 800 e 1600 MHz. Notiamo che il kernel vede due processori, anziché uno, dimostrazione del fatto che l'hyper-threading è attivo e supportato dal kernel.


Da dmesg:

...
[    0.243959] CPU1: Intel(R) Atom(TM) CPU N270   @ 1.60GHz stepping 02
[    0.243997] checking TSC synchronization [CPU#0 -> CPU#1]: passed.
[    0.248015] Brought up 2 CPUs
[    0.248015] Total of 2 processors activated (6388.74 BogoMIPS)
...


Dispositivo di archiviazione dati

Il modello monta un SSD (solid state disk) da 8 GB. Il disco a stato solido presenta principalmente il vantaggio di non avere meccanica in movimento, con conseguente maggiore silenziosità di utilizzo, maggiore risparmio energetico e resistenza agli urti. Le ipotesi mosse contro questo tipo di tecnologia di avere un ciclo di vita piuttosto limitato sembrano essere recentemente smentite [3] e la vita di un SSD sottoposto ad un utilizzo normale si estende per diversi anni.

Un test con hdparm sul disco a stato solido restituisce le seguenti caratteristicge (valore medio di 10 repliche)

/dev/sda:
 Timing cached reads:   1208 MB in  2.00 seconds = 603.78 MB/sec
 Timing buffered disk reads:   86 MB in  3.07 seconds =  28.05 MB/sec

Possiamo comunque limitare al massimo la frequenza di scrittura su disco, con un guadagno anche in prestazioni, aggiungendo ad /etc/sysctl.conf la seguente opzione:

vm.dirty_writeback_centisecs = 1500

In questo modo impostiamo che i dati su disco (es. log) vengano scritti ogni 15 secondi anziché ogni 5.


Possiamo montare le directory /tmp, /var/run e /var/lock su fs temporaneo in RAM. L'ulteriore vantaggio risiede nel fatto che la scrittura/lettura su RAM è più veloce, ma ovviamente tutti i dati in queste directory verranno inevitabilmente persi ad ogni reboot. Si aggiunge ad /etc/fstab la seguente stringa:

tmpfs /tmp tmpfs defaults 0 0


Poi si modifica il file /etc/default/rcS in modo che riporti:

...
RAMRUN=yes 
RAMLOCK=yes 
...


Boot più snello

Valgono le stesse raccomandazioni per ogni altro sistema: non avviare i servizi e demoni che non sono necessari.

In particolare si può disabilitare lo script /sbin/hwclock con:

chmod -x /sbin/hwclock

Questo riduce il tempo di boot di molti secondi (circa 10) portandolo a circa 20 s, senza nessun effetto collaterale riscontrato.

Si può utilizzare dash (la Debian Almquist Shell) invece di bash in fase di boot, snellendo ulteriormente i tempi:

aptitude install dash
dpkg-reconfigure dash

La shell utilizzata dai vari utenti comunque non cambia dato che è impostata in /etc/passw.


Happy hacking & happy Debian!