Zum Hauptinhalt Zur Navigation

Coreboot beschleunigt Rechnerstart

Quelloffenes Projekt zum Nachbau des BIOS macht Fortschritte. 26C3 Beim 26C3 hat Entwickler Peter Stuge über den aktuellen Stand des Projekts Coreboot berichtet, das eine quelloffene Version des BIOS erstellen will. Laut Stuge funktioniert Coreboot bereits auf über 200 Mainboards.
/ Jörg Thoma
62 Kommentare News folgen (öffnet im neuen Fenster)

Bei Coreboot handelt es sich um einen quelloffenen Ersatz für das proprietäre BIOS eines Mainboards. Das Projekt wurde 1999 ins Leben gerufen, um einen eigenen Bootloader in das BIOS als sogenanntes Payload zu integrieren. Daher betrachtet Coreboot auch die Hardware-Initialisierung und den Bootloader als separate Einheiten. Als Payload kann jeder Bootloader eingesetzt werden, der von der Größe her in den Flashchip auf dem Mainboard passt. Gegenwärtig wurden Payloads, bestehend unter anderem aus FILO, gPXE, Linux (hier mit Wifi und SSHFS), memtest86 oder der Bootloader von Windows CE getestet. Auch SeaBIOS kann über Coreboot gestartet werden und somit die Betriebssysteme BSD, DOS und Windows.

Die Vorteile eines quelloffenen BIOS-Codes sieht Entwickler Stuge darin, dass mit zusätzlicher Firmware die Hardwareunterstützung zur Bootzeit erweitert werden kann. Zusätzlich verkürzt ein integrierter Bootloader die Startzeit des Rechners enorm. Parallel zu den im Hersteller-BIOS bereits integrierten Zusatzfunktionen, etwa Expressgate, wären auch Opensource-Werkzeuge denkbar, die beispielsweise eine Internetverbindung benötigen.

Großer Fortschritt im Jahr 2009

Im Laufe des Jahres 2009 hat der Code laut Stuge einige Änderungen erlebt. Version 3 (v3) wird wenig weiterentwickelt, bleibt allerdings immer noch die bevorzugte Version im Zusammenspiel mit AMDs GeodeLX Prozessor. Aus dem v3-Zweig wurde Kconfig in den – auch Trunk genannten – Hauptzweig des Codes übernommen. Damit soll der Einstieg in die Konfiguration von Coreboot-Code vereinfacht werden. Ähnlich der Konfiguration für das Kompilieren des Linux-Kernels können mit dem Make-Config-Aufruf in einer zentralen Konfigurationsdatei Optionen aktiviert oder deaktiviert werden.

Das für v3 entwickelte komprimierte Dateisystem LAR (Little Archive) wanderte als CBFS (Coreboot File System) ebenfalls in den Trunk-Zweig. In dem Dateisystem können Firmware sowie Payloads als einzelne Dateien untergebracht werden. CBFS hat einen statischen Bootblock im letzten Sektor der 64 KByte belegt. Später soll dieser eine dynamische Größe erhalten. Zwei Coreboot-Dateien liegen ebenfalls in dem Dateisystem, die erste, sogenannte ROM-Boot-Stage, initialisiert Cached RAM und Arbeitsspeicher, die zweite mit Namen Coreboot_ram initialisiert die Hardware. In CBFS können dann auch ein VGA-BIOS oder Option-ROMs für die Zusammenarbeit von SeaBIOS untergebracht werden.

Im Rahmen des Google Summer of Code entstand dieses Jahr zudem ein funktionales GeodeLX VGA BIOS. Patches wurden auch von dem SeaBIOS-Projekt übernommen. Das Projekt USB Option ROM war allerdings weniger erfolgreich, es sollte es ermöglichen, auch auf älteren Mainboards ohne entsprechende Optionen von USB-Geräten booten zu können. Zudem gibt es AVATT (All Virtual All The Time), in dem der Linux-Kernel samt KVM-Werkzeugen (Kernel based Virtual Machine) als Payload im Flashspeicher untergebracht wurde. Allerdings benötigt diese Implementierung bislang meist einen größeren Flashspeicher als die auf den meisten Hauptplatinen verbauten.

Hilfe von Hardware-Herstellern

Hardwarehersteller trugen ebenfalls zu dem Projekt bei. AMD-Entwickler vervollständigten im Sommer 2009 die Unterstützung für die Chipsätze RS780/SB700, nachdem sie zuvor schon in der Coreboot-Maillingliste hilfreiche Hinweise geliefert hatten. Die bereits veröffentlichte Dokumentation des Herstellers zu den Chipsätzen war laut Stuge zwar hilfreich, aber nicht vollständig. Die Freigabe des Codes steht indes noch aus, die Rechtsabteilung von AMD muss der Veröffentlichung noch zustimmen. Stuge bedauerte, dass die Freigabe vermutlich erst erteilt werden wird, wenn die neuen Chipsätze RS880/SB800 Anfang 2010 erschienen sein werden.

Das OLPC-Projekt steuerte Code für die VX800-, VX855- und Nano-Prozessoren von VIA bei. Allerdings bemängelt Stube, dass der Quellcode auf einer veralteten Version und ohne Beteiligung des Coreboot-Projekts entwickelt wurde. So muss der zurückgeflossene Code von Coreboot-Entwicklern aktualisiert werden, bevor er in den gegenwärtigen Sourcetree wandert. Von Intel selbst kam noch keine Unterstützung, allerdings haben sich Entwickler anderer Firmen, die mit Intels Atom-Prozessor und dem entsprechenden i945-Chipsatz arbeiten, in der Mailingliste gemeldet. Stuge hofft auf zukünftige Rückmeldungen dieser Entwickler.

Coreboot wird unter der GPL v2 veröffentlicht, die libpayload Bibliothek unter der BSD-Lizenz. Auf der Webseite des Projekts(öffnet im neuen Fenster) stehen der Quellcode und weitere Tools(öffnet im neuen Fenster) zum Download bereit. Dort ist auch eine Liste aller unterstützten Mainboards(öffnet im neuen Fenster) und Chipsätze(öffnet im neuen Fenster) veröffentlicht.


Relevante Themen