EeePC: Overclocking

Mein “erster” EeePC, ein Testgerät mit US-Tastatur, PCIe-Slot und weissem Gehäuse lief auf 900MHz. Alle derzeit ausgelieferten Geräte scheinen aber aus 630MHz getaktet zu sein. Die Taktfrequenz ist das Ergebnis aus 70MHZ FSB-Frequenz und einem Multiplikator von 9. Gelingt es, die FSB-Frequenz auf 100MHz anzuheben, hat man wieder die 900MHz der Vorseriengerätes. Sourcen für ein Kernelmodul, dass die FSB-Änderung durchführt, finden Sie unter http://code.google.com/p/eeepc-linux/. Ich habe das Modul einmal ausprobiert und bin folgendermaßen vorgegangen:

  • Kompiliert wird das Modul mit einem simplen make
  • Ein make install gibt es nicht. Kopieren Sie das Modul einfach von Hand:
    cp eee.ko /lib/modules/$( uname -r )/kernel/drivers/misc
  • Erstellen Sie mit depmod -a alle Modulabhängigkeiten neu
  • Jetzt können Sie zuerst den I2C-Bus-Treiber und dann das Kontrollmodul laden:
    modprobe i2c_i801
    insmod /lib/modules/$( uname -r )/kernel/drivers/misc/eee.ko

    Das Laden von eee per modprobe funktionierte leider bei mir nicht, keine Probleme mit insmod

Die Verwendung ist recht simpel:

  • Anheben des FSB auf 75MHz
    echo 75 24 0 > /proc/eee/fsb
  • Anheben des FSB auf 100MHz und Anheben der Core-Spannung
    echo 100 24 1 > /proc/eee/fsb
  • Umschalten auf manuelle Lüftersteuerung
    echo 1 > /proc/eee/fan_manual
  • Abschalten des Lüfters
    echo 0 > /proc/eee/fan_speed
  • Auslesen der Temperatur
    cat /proc/eee/temperature

Natürlich sollte man hohe FSB-Geschwindigkeiten nicht mit einem abgeschalteten Lüfter kombinieren. Auch kann es bei hohen FSB-Geschwindigkeiten vorkommen, dass der Prozessor nicht mehr stabil läuft, ein Anheben der Corespannung hilft möglicherweise ab, verursacht aber 14% mehr Leistungsaufnahme und dementsprechend weniger Akkulaufzeit. Aufgefallen ist mir, dass sich der EeePC an zu großen FSB-Änderungen auf einmal verschluckt. Auf der sicheren Seite war ich mit:

for i in $( seq 73 3 91 )
do
    echo $i 24 0 > /proc/eee/fsb
    cat /proc/eee/fsb
    sleep 1
done

Mit abgeschaltetem Lüfter, 91MHz FSB, niedriger Core-Spannung und drei Minuten bzip2 landete bei mir die Prozessortemperatur bei 61°C, was wohl gerade noch im Rahmen liegt. Ich überlege, das Modul in das Xubuntu-Image aufzunehmen und per Startupscript eine FSB-Frequenz von 85 bis 91MHz einzustellen (3MHz-Schritte), ohne Änderungen an der Lüftersteuerung vorzunehmen, bräuchte dafür aber noch Erfahrungswerte von anderen Nutzern. Mittelfristig wäre natürlich an ein kleines, in Python geschriebenes Applet fürs XFCE-Tray zu denken.

Primitives Benchmarking mit bzip2:

(Absturz beim falschen seq und der daraus resultierenden schlagartigen Änderung des FSB)

Interessante Links

Nachtrag, 10. März: Läuft bei mir stabil bis 9x91MHz, also 819MHz, darüber sporadische Abstürze, ein Init-Script wird folgen — das wird dann die Bootzeile auslesen, so dass man den maximalen Takt per Bootparameter setzen kann, was bei Problemen eine leichte Behebung ohne Rettungssystem ermöglicht.

9 thoughts on “EeePC: Overclocking

  1. klaus

    Ich arbeite unter dem original xandros und bekam das Modul 0.2 nicht richtig kompiliert:

    make[1]: Entering directory `/usr/src/linux-source-2.6.21.4-eeepc’
    CC [M] /usr/src/eeepc-LINUX02/module/eee.o
    /usr/src/eeepc-LINUX02/module/eee.c: In function ‘eee_pll_read’:
    /usr/src/eeepc-LINUX02/module/eee.c:76: warning: implicit declaration of function

    ‘i2c_smbus_read_block_data’
    Building modules, stage 2.
    MODPOST 1 modules
    WARNING: “i2c_smbus_read_block_data” [/usr/src/eeepc-LINUX02/module/eee.ko] undefined!

    Das erzeugte Kernelmodul läesst sich aus selbem Grund auch nicht laden. Habe dann die version 0.1 kompiliert, disee kompiliert und funktioniert. Leider keine fan-regelung. Also weiter mit 0.2 rumgespielt.

    In den headerfiles vom kerneltree ist in der i2c.h i2c_smbus_read_i2c_block_data deklariert. Scheint mir auch gleichartige args zu erwarten, also im Quellcode des moduls ausgetauscht, kompiliert und geladen.

    Nach dem Boot zeigt fsb schon komische Werte an, z.B.
    -1 63 1

    Habe den “primitiven benchmark” nachgebaut und muss feststellen das es so einfach nicht funktioniert, fsb nimmt zwar die erwarteten Werte an, die cpu taktet aber wie im bios definiert.

    Sun Jun 15 17:28:47 CEST 2008
    Temperatur: 53
    Vom Bios kommend:0 0 0
    100+0 records in
    100+0 records out
    104857600 bytes (105 MB) copied, 281.627 seconds, 372 kB/s

    real 4m42.359s
    user 2m58.110s
    sys 1m27.130s
    Temperatur: 56
    64 24 0
    67 24 0
    70 24 0
    Temperatur: 56
    FSB jetzt 70: 70 24 0
    100+0 records in
    100+0 records out
    104857600 bytes (105 MB) copied, 286.608 seconds, 366 kB/s

    real 4m47.363s
    user 3m3.080s
    sys 1m27.280s
    Temperatur: 56
    70 24 0
    73 24 0
    76 24 0
    79 24 0
    82 24 0
    85 24 0
    FSB jetzt 85: 85 24 0
    100+0 records in
    100+0 records out
    104857600 bytes (105 MB) copied, 286.973 seconds, 365 kB/s

    real 4m47.732s
    user 3m3.660s
    sys 1m27.060s
    Temperatur: 56
    85 24 0
    88 24 0
    91 24 0
    94 24 0
    97 24 0
    100 24 0
    FSB jetzt 100: 100 24 0
    100+0 records in
    100+0 records out
    104857600 bytes (105 MB) copied, 286.365 seconds, 366 kB/s

    real 4m47.109s
    user 3m2.390s
    sys 1m27.650s
    Temperatur: 56

    Schade, irgendwelche infos bzgl. unterschied zwischen

    a) i2c_smbus_read_i2c_block_data
    b) i2c_smbus_read_block_data

    ???

    danke

    klaus

  2. klaus deiss

    Es stellt sich natürlich die Frage wie sich der erhöhte FSB Takt auf die Batterie auswirkt. Infolge der Probleme mit obigem Kernelmodul habe ich das BIOS 8804 aufgespielt (diese Version ermöglicht einem die Einstellung des FSB auf 70 oder 100 MHZ) und einen Praxistest durchgeführt.

    In beiden Fällen wurde der Akku bis zum Anschlag geladen, dann der EEEPC gebootet. Einzige aktive Anwendung war dann ein (echter – also nicht dieser Asuskrüppel) VDR der das Bild über den ShmClient auf den X-Desk
    ausgab, WLAN war auch aktiv, Ton runtergedreht.

    Die Ergebnisse sind ein wenig ernuechternd:

    FSB 100 MHZ / ShmClient
    Sun Jun 15 22:16:07 CEST 2008
    Sun Jun 15 23:41:55 CEST 2008

    1:25 Laufzeit

    FSB 70 MHZ / ShmClient
    Mon Jun 16 07:27:05 CEST 2008
    Mon Jun 16 09:58:12 CEST 2008

    2:31 Min Laufzeit

    Zur Ergaenzung noch Mitschnitt aus meinem LOG (gute Durchschnittswerte rausgesucht). Zunächst die 100MHZ Variante:

    Sun Jun 15 23:13:39 CEST 2008
    26001 root 18 0 1636 480 412 S 2.0 0.1 0:00.01 tac
    882 root 15 0 271m 9444 4980 R 2.0 1.9 5:48.42 Xorg
    15293 root 13 -2 137m 23m 5744 S 18.1 4.7 2:42.64 vdr
    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

    Swap: 0k total, 0k used, 0k free, 90600k cached
    Mem: 508328k total, 213920k used, 294408k free, 14528k buffers
    Cpu(s): 22.3%us, 3.0%sy, 0.3%ni, 68.3%id, 5.2%wa, 0.8%hi, 0.2%si, 0.0%st
    Tasks: 72 total, 2 running, 69 sleeping, 0 stopped, 1 zombie
    top – 23:13:39 up 58 min, 1 user, load average: 1.27, 1.12, 0.86

    TEMP:59
    Luefter:760

    Dann die 70MHZ Variante. Hier ist die CPU Last im Schnitt immer höher, das Erscheinungsbild der Bildausgabe ist (subjektiv) auch schlechter (ruckt schon mal öfters).

    Mon Jun 16 08:04:27 CEST 2008
    17624 root 20 0 1592 388 316 S 1.9 0.1 0:00.01 tail
    882 root 15 0 271m 9420 4964 S 5.8 1.9 1:43.76 Xorg
    2001 root 13 -2 129m 23m 5680 S 25.3 4.7 10:47.40 vdr
    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

    Swap: 0k total, 0k used, 0k free, 90744k cached
    Mem: 508328k total, 221140k used, 287188k free, 21724k buffers
    Cpu(s): 37.2%us, 4.6%sy, 0.4%ni, 52.6%id, 3.9%wa, 1.2%hi, 0.2%si, 0.0%st
    Tasks: 72 total, 1 running, 70 sleeping, 0 stopped, 1 zombie
    top – 08:04:27 up 38 min, 1 user, load average: 3.57, 3.13, 2.48

    Temp:52
    Luefter:710

    Fazit: 100MHZ fressen lecker viel Akku auf, wobei ich aber leider nicht weiss ob das ASUS Bios bei 100MHZ FSB auch die Corespannung erhöht (was aber zu vermuten ist). Hinzu kommt die höhere Wärme, ob das dem EEE auf Dauer gut tun wird weiss man auch nicht. Ich denke es gibt Gründe dafür das ASUS das wieder aus dem BIOS entfernt hat.

    Klaus

  3. klaus deiss

    Oh Schock, das mit den Umlauten ist ja leider sehr unschoen hier …..
    Ich bitte das zu entschuldigen

    klaus

Comments are closed.