Funkenstrahlen Podcasting, Netzpolitik, App-Entwicklung

Turbo? Klingt gut.

Wie ihr sicher mitbekommen habt, bin ich stolzer Besitzer eine Raspberry Pi. Vor ein paar Tagen gab es dann nochmal ein kleines Geschenk von den Herstellern (Achtung Trommelwirbel): Der TURBO-Modus! Jetzt mit noch mehr Schnell.

Spaß beiseite. Die Hersteller haben festgestellt, dass man aus dem Raspberry Pi durch dynamisches Übertakten in Lastsituationen auf 1GHZ in etwa 50% mehr Performance herausholen kann ohne dass die Hardware zu sehr darunter leidet (Garantie bleibt erhalten). Dazu ist allerdings ein Kernel- und ein Firmwareupdate nötig. Im aktuellen Installationsimage ist die neue Firmware bereits enthalten.

Ich wollte allerdings nicht meine Raspberry Pi nochmal komplett neu aufsetzen. Denn das ist ganz schön viel Arbeit.

Es ist auch gar nicht so kompliziert die neue Firmware aufzuspielen, wenn ihr schon eine laufende Installation habt.

Zunächst solltet ihr alle Pakete auf den aktuellen Stand bringen.

sudo apt-get update && sudo apt-get upgrade -y

Jetzt solltet ihr euch die neuesten Firmware Daten aus dem Internet herunterladen. Das macht ihr am besten nicht auf dem Raspberry Pi, sondern an einem Rechner an dem ihr auch die SD-Karte mounten könnt, die in eurem Raspberry Pi steckt.

git clone https://github.com/Hexxeh/rpi-firmware.git

Ihr erhaltet dann folgende Daten:

rpi-firmware
├── COPYING.linux
├── LICENCE.broadcom
├── README.md
├── arm128_start.elf
├── arm192_start.elf
├── arm224_start.elf
├── arm240_start.elf
├── bootcode.bin
├── kernel.img
├── kernel_cutdown.img
├── kernel_emergency.img
├── loader.bin
├── modules
└── vc

Davon müsst ihr nun einige auf die SD-Karte kopieren, um die neue Firmware dort zu platzieren. Wenn ihr die SD-Karte in den Rechner schiebt, dann werdet ihr sehen, dass auf der SD-Karte 2 Partitionen sind. Eine Bootpartition (bei mir etwa 60MB groß) und die eigentliche Rootpartition. Die Bootpartition ist dabei die erste Partition auf der Karte. Die müsst ihr nun schreibbar mounten. Bei mir war die SD-Karte als /dev/sdd Device registriert, daher:

sudo mount --rw /dev/sdd1 /media/raspiSD

Das Verzeichnis /media/raspiSD müsst ihr natürlich vorher anlegen.

Ihr solltet nun folgende Dateien aus dem GIT Repository auf die SD-Karte kopieren:

arm128_start.elf
arm192_start.elf
arm224_start.elf
arm240_start.elf
bootcode.bin
kernel.img
kernel_cutdown.img
kernel_emergency.img
loader.bin

Nun könnt ihr euch noch für eine RAM-Aufteilung entscheiden, d.h. wie viel RAM die CPU bekommt und wie viel RAM der Grafikchip bekommt. Das erreicht ihr, indem ihr eines der arm*.elf Dateien nach “start.elf” kopiert. Das ist dann das Image das gestartet wird. Dabei bedeutet z.B. arm240_start.elf, dass 240MB RAM der CPU zugeteilt werden und 16MB dem Grafikchip. Das ist auch die Option die ich nutze, da ich die grafische Oberfläche nicht nutze.

sudo cp arm240_start.elf /media/raspiSD/start.elf

Als nächstes müssen noch die aktuellen Kernelmodule verfügbar gemacht werden. Die liegen allerdings auf der zweiten Partition auf der SD-Karte (sofern ihr die Standardaufteilung verwendet). Wir mounten also auch noch diese Partition:

sudo mount --rw /dev/sdd2 /media/raspiSD2

Im rpi-firmware Ordner findet ihr dann auch einen Ordner “modules”. Dort begebt ihr euch hinein und kopiert dann die Kernelmodule der entsprechend aktuellen Version auf die SD-Karte. Hier ist die aktuelle Kernelversion die 3.2.27. Vorsicht: Eventuell müsst ihr vorher(!) unter /media/raspiSD2/lib/modules die alten Module entfernen!

sudo cp -r 3.2.27+/ /media/raspiSD2/lib/modules

Das wars. Nach einem gepflegten “sudo umount /media/raspiSD” und “sudo umount /media/raspiSD2” könnt ihr die SD-Karte wieder in den Raspberry Pi stecken und booten. Die neue Firmware sollte jetzt funktionieren.

Damit ihr die Turbofunktion nutzen könnt, müsst ihr sie in “sudo raspi-config” noch aktivieren. Dazu braucht ihr aber erst einmal das aktuelle raspi-config Skript. Dazu startet ihr “sudo raspi-config” und wählt das Update aus:

Danach könnt ihr dort unter “overclock” den Turbo-Modus auswählen.

Fertig. Viel Spaß!