eeepc-linux – overclockare Eee PC 701

eeepc-linux: questo adorabile pezzo di codice permette di portare la frequenza del processore dell’Eee PC a quella nominale, ossia 900MHz e vi assicuro che ne vale la pena! Permette inoltre di giocare con la velocità della ventola a piacimento, si intende che se qualcuno la spegne e brucia il processore non mi ritenga responsabile!

Installarlo su Arch è diventato meno banale da quando qualcuno ha smesso di aggiornare il pacchetto ufficiale.

Questa guida è per chi volesse provare l’ebrezza della velocità continuando ad usare il kernel stock di Arch Linux o ha deciso, come me, di farsi un kernel per conto suo e quindi deve ricompilare tutto il cucuzzaro ^_^

Per i sani di mente, consiglio di adoperare il kernel per Eee PC 701 che si trova in [edgy], fate riferimento alla guida all’installazione che ho faticosamente scritto qualche post fa!

Per gli altri, all’attacco! Da AUR, o tramite l’ottimo “yaourt”si possono reperire i file necessari:

yaourt -G eeepc-linux

Vengono creati questi file:

eeepc-linux.install

PKGBUILD

Con il comando makepkg verranno automaticamente tirati giù i sorgenti e inizierà la compilazione, che fallirà per due semplici motivi:

1) Non state usando il kernel stock (2.6.x-ARCH per intenderci)

2) Ci sono delle leggere modifiche da fare al sorgente

Il primo problema si risolve creando un link simbolico dalla cartella dei moduli del kernel che state usando a quella de sorgenti del kernel, da chiamare “build”:

ln -s /path/dei/sorgenti /lib/nome-del-kernel/build

Se non avete i sorgenti del vostro kernel perchè ad esempio avete installato e state usando quello di toofishes, NON dovreste riuscire ugualmente a far andare il tutto usando la cartella di quello stock, che è /usr/src/linux-2.6.26-ARCH. (grazie Aurox che mi segnala che così facendo si ottiene la compilazione ma il modulo non viene caricato nel kernel).

Il secondo problema invece si risolve entrando, dalla cartella in cui si sono salvati i due file di prima, in src/eeepc-linux/module. Adesso aprite il file eee.c e sostituite la stringa “&proc_root” con “NULL” (ci sono da fare tre sostituzioni). Se non fossi lo svogliato che sono, avrei scritto un file patch per applicare questa modifica e l’avrei magari messo qui… ma poi chi ha voglia di stare a vedere come si fa a patchare? 🙂

Tornati nella cartella di partenza, date:

makepkg -ei

L’opzione -e dice di usare la cartella src esistente, altrimenti perdiamo le modifiche fatte al file! L’opzione -i serve per installare quando tutto è stato fatto per bene.

A questo punto, se non ci sono problemi da segnalare ( e vi prego fatelo se ci sono!) non resta che usare:

sudo modprobe eee

Questo fa caricare il modulo. Ora in /proc/eee ci sono i file che permettono di modificare la frequenza del processore e la velocità della ventola. Per semplicità, incollo qui i comandi da dare (rigorosamente come root) per portare la frequenza al massimo:

cd /proc/eee

echo 85 24 1 > fsb

#sleep 5 (non serve se lo fate a mano, se volete usare questi comandi in uno script decommentate questa riga per evitare instabilità del sistema)

echo 100 24 1 > fsb

Nella mia esperienza non ho avuto molti problemi overclockando in questo modo, consiglio comunque di farlo quando il carico del sistema è basso.

Per la ventola, semplicemente si scrive 1 al posto di 0 in /proc/eee/fan_manual e poi si cambia il valore da 0 a 100 in /proc/eee/fan_speed.

Consiglio vivamente di utilizzare un monitor della temperatura del processore quando si gioca con queste cose.. non si sa mai! Io ho tirato il mio Eee PC col processore a 900MHz e a pieno carico fino a 67°C. In teoria si rompe ad 80°C, quindi occhio a non spegnere la ventola e lasciare il pc overclockato incustodito!

Cpufreqd.conf per Eee PC 701

Se avete seguito la mia guida all’installazione, probabilmente avrete notato che il pc tende ad essere molto lento quando la batteria si sta scaricando. Questo è dovuto essenzialmente alla politica di risparmio energetico che fa felici tutti gli smanettoni del mondo eccetto il sottoscritto che non apprezza particolarmente di trovarsi a lavorare su un pc che di botto si siede sui 113MHz, quale che sia il motivo.

Per questo ho modificato e vi invito a modificare a piacimento il file di configurazione che si trova in /etc/cpufreqd.conf

Naturalmente bisogna aver installato cpufreqd:

pacman -Sy cpufreqd

Particolarmente importante è capire come funziona questo file e valutare in base alle proprie esigenze le modifiche da fare. Qui di seguito incollo il mio, se qualcuno ha domande scriva pure un commento 😉

[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=2
verbosity=4
#enable_remote=1
#remote_group=root
[/General]

[acpi]
acpid_socket=/var/run/acpid.socket
[/acpi]

#[nforce2_atxp1]
#vcore_path=/some/path
#vcore_default=1500
#[/nforce2_atxp1]

#[sensors_plugin]
#sensors_conf=/some/file
#[/sensors_plugin]

[Profile]
name=On Demand High
minfreq=60%
maxfreq=100%
policy=ondemand
[/Profile]

[Profile]
name=On Demand Low
minfreq=40%
maxfreq=100%
policy=ondemand
[/Profile]

[Profile]
name=Performance High
minfreq=80%
maxfreq=100%
policy=performance
#exec_post=echo 8 > /proc/acpi/sony/brightness

[/Profile]

[Rule]
name=AC Rule
ac=on # (on/off)
profile=Performance High
[/Rule]

# conservative mode when not AC
[Rule]
name=AC Off – Low Battery
ac=off # (on/off)
battery_interval=0-10
#exec_post=echo 5 > /proc/acpi/sony/brightness
profile=Powersave Low
[/Rule]

# conservative mode when not AC
[Rule]
name=AC Off – Medium Battery
ac=off # (on/off)
battery_interval=10-70
#exec_post=echo 5 > /proc/acpi/sony/brightness
profile=On Demand Low
[/Rule][Rule]
name=AC Off – High Power
ac=off # (on/off)
battery_interval=70-90
#exec_post=echo 5 > /proc/acpi/sony/brightness
profile=On Demand High
[/Rule]

##
# Special Rules
##
# CPU Too hot!
[Rule]
name=CPU Too Hot
acpi_temperature=61-100
cpu_interval=61-100
profile=Performance Low
[/Rule]
# Special Rules
##
# CPU Too hot!
[Rule]
name=CPU Too Hot
acpi_temperature=61-100
cpu_interval=61-100
profile=Performance Low
[/Rule]

# use performance mode if I’m watching a movie
# I don’t care for batteries!
# But don’t heat too much.
[Rule]
name=Movie Watcher
programs=xine,mplayer,gmplayer,opera
battery_interval=0-100
acpi_temperature=0-60
cpu_interval=0-100
profile=Performance High
[/Rule]

Installazione di Arch Linux su Eee PC 701

Come promesso, libero da esami e rogne varie, torno a parlare dell’installazione di Arch Linux su Eee PC 701. Per i modelli 901 e 1000 ci sono alcune differenze – fuori dall’ambito di questo post – che sono trattate qui.

Per coloro che non avessero problemi con l’inglese, il mio consiglio è di tenere sempre presente e consultare questa guida. E’ la pagina del wiki ufficiale di Arch Linux che tratta l’installazione su Eee PC.

Come avevo anticipato qualche tempo fa, la creazione della chiavetta per l’installazione è diventata più semplice, per cui non seguite la guida che avevo iniziato a scrivere precedentemente. Si suppone che abbiate a disposizione una connessione internet decente con cavo ethernet. In caso abbiate solo il wifi, l’installazione è comunque possibile ma richiederebbe di premunirsi di tutti i pacchetti necessari e tenerli da parte, installarli manualmente in un secondo momento.. insomma se proprio siete degli irriducibili dello smanettamento scrivetemi nei commenti e vi darò qualche dritta 🙂

Ciò detto, possiamo incominciare.

Premessa

In rete si parla tanto della breve durata della vita degli SSD, l’hard disk a stato solido che monta l’Eee PC e che non è sostituibile in caso di rottura. Per questo proliferano consigli su come montare i file system in modo da massimizzare la vita del disco. Io mi permetto di dissociarmi parzialmente da queste voci, perchè da quanto ho potuto sperimentare l’usabilità di un pc sottoposto a tutte quelle “paranoie” viene davvero a decrescere sensibilmente.

Tanto per capirci, è paranoico tenere i log di sistema in ram e perderli ad ogni riavvio. Ed è pazzesco usare un file system senza journaling, perchè se il sistema crasha o si scarica mentre si è in batteria o necessita di un controllo del disco.. beh.. ce l’avete il rosario a portata di mano?

Io consiglio di accettare l’idea che l’Eee PC, o meglio il suo disco fisso, non debba sopravvivervi e quindi usatelo pure con un file system journaled e risparmierete sudori freddi!

Creazione della chiavetta di installazione

Assumo che chi legge non sia proprio un totale novellino, anche perchè altrimenti durante l’installazione di Arch mi maledirà annullando il tutto e installando ubuntu notebook remix 🙂

Scaricate l’ultima immagine della chiavetta di installazione da qui. Dovete prendere il file di installazione di Arch CORE con estensione .img. Ora inserite una chiavetta su cui non ci sia niente da salvare, almeno da 512 MB.

A chiavetta smontata, date questo comando:

dd if=/path/file/img/sul/pc of=/dev/della/chiavetta/senza/specificare/partizione

La chiavetta è pronta! Consiglio di creare e tenere da parte da subito un file che poi sarà quello di configurazione del server grafico, scorrendo questa guida lo trovate linkato più in basso.

Installazione di Arch Linux

Qui non ci sono scuse che tengano, una guida in italiano all’installazione esiste già e la trovate qui.

Nella scelta dei pacchetti da installare, abbiate cura di selezionare “atl2”: sono i driver della scheda ethernet dell’Eee PC. Se cannate questo passo, sarete offline a giocare con la shell di login..

Al momento di partizionare il disco, abbiate cura di non creare una partizione di swap sul disco SSD (piuttosto compratevi un giga di ram o due se siete dei pazzi maniaci che usano Eee PC per progetti su netbeans e glassfish come qualcuno che conosco ^_^). Usate l’opzione “noatime”! Questo è il dump del mio /etc/fstab:

#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
none /dev/pts devpts defaults 0 0
none /dev/shm tmpfs defaults 0 0
UUID=1749e793-bbe1-44a1-840d-e91633994b28 / ext3 noatime 0 0

La stringa UUID è generata automaticamente per individuare la partizione cui fa riferimento. E’ un metodo relativamente nuovo per riferirsi alle partizioni che si rivela particolarmente utile nel momento in cui il vostro /dev/sdb al riavvio si chiami /dev/sdc perchè nel frattempo avete collegato un disco o una chiavetta su usb..

E’ quindi cosa buona e giusta che anche nel file del menu di GRUB si faccia riferimento alla partizione root in termini del suo UUID.

Altra nota. In /etc/rc.conf bisogna blacklistare un modulo che si chiama “ath5k” altrimenti il wireless non funzionerà correttamente. Questo è necessario da agosto circa, e si spera che con i prossimi rilasci del kernel non sia più necessario. Qui il dump della parte dei moduli del mio rc.conf

MOD_AUTOLOAD=”no”
#MOD_BLACKLIST=() #deprecated
MODULES=(ath_pci wlan_wep wlan_tkip wlan_ccmp !ath5k)

Non c’è altro da sapere di vitale per un’installazione felice (mi raccomando solo di usare un mirror per pacman geograficamente vicino.. è un dottore in ingegneria delle telecomunicazioni che ve lo chiede, fatelo per pietà :D)

Nel file /etc/pacman.conf potete aggiungere questo repository fatto apposta da Dan McGee, il celebre utente toofishes, oppure (consigliato) quello che trovate più sotto:

[eee]
Server = http://code.toofishes.net/packages/eee

A questo punto un bel “pacman -Suy” e poi “pacman -S eee” per  aggiornarsi ed installare il tutto.

Attualmente è disponibile un repository che include tra le altre cose un kernel derivato da quello di McGee che ha già il supporto per l’overclock! Lo trovate qui:

[edgy]

Server=http://www.ihku.biz/arch/edgy

Il kernel che trovate in [edgy] SOSTITUISCE e quindi va in conflitto con il kernel di [eee]. Se volete l’overclock senza sbattimenti, è la scelta migliore. Dopo aver aggiunto il repo edgy in /etc/pacman.conf, un bel pacman -Sy kernel-eee è quello che ci vuole 🙂

In /boot/grub/menu.lst si dovrà aggiungere questo:

title Arch Linux Eee
root (hd0,0)
kernel /boot/vmlinuzeee root=/dev/sda1 ro quiet

Consiglio anche di installare con pacman -U il pacchetto per acpi che trovate qui. E’ richiesto di aggiungere in rc.conf un demone “eee”.

Suppongo sappiate come funziona il file /boot/grub/menu.lst di GRUB, in ogni caso vi dumpo  la sezione da aggiungere per usare il kernel di toofishes:

title Arch Linux Eee
root (hd0,0)
kernel /boot/vmlinuzeee root=/dev/sda1 ro quiet

A questo punto il sistema necessita solo di installare il server grafico e altre cosuccie inutili 😉

pacman -S xorg xf86-video-intel synaptics

Il file di configurazione del server grafico è bello che pronto, potete incollarlo in /etc/X11/xorg.conf da qui. Abbiate cura di cambiare la parte sul layout di tastiera per averlo in italiano!

Io uso un file xorg.conf leggermente diverso, perchè come forse qualcuno ha notato ho un display esterno da 19 pollici collegato ad Eee PC. In caso abbiate esigenze simili (ve lo auguro) scrivete pure un commento.

Non starò qui ad annoiare nessuno con la creazione dell’utente normale ed altre minuzie (installate sudo!), mi limito a suggerire di installare qualche software che io ritengo indispensabile:

wicd – ottimo gestione della rete wireless

opera – browser che vanta molte qualità tra le quali uno zoom formidabile delle pagine.

dbus e hal – ormai servono quasi a tutti i programmi

Ultimissima cosa, l’elenco dei demoni del mio rc.conf, ad imperitura memoria:

DAEMONS=(syslog-ng hal netfs crond fam eee autofs cpufreqd wicd kdm3)

Grossomodo è tutto quello che volevo dirvi, per aggiornamenti, aggiunte, commenti, insulti, a presto 🙂

Sante

Aggiornamenti in arrivo

Per coloro che non abbiano perso del tutto le speranze che questo blog riprendesse un ritmo decente di aggiornamenti e novità, buone notizie.. tempo due settimane e mi sarò tolto esami e trasloco dallo stomaco, ricomincerò a scrivere 😉

Nel frattempo, causa moltissimi cambiamenti che ci sono stati da giugno a questa parte, vi invito a non seguire la guida all’instalazione che avevo iniziato poichè è stato proposto un nuovo sistema per le chiavette usb molto semplice, di cui dirò prossimamente.

Saten