Home

1seitig.de

Linbo und der Framebuffer

erstellt am 23.01.2012 um 18:35 von Florian in Linbo, Linux.

Schauplatz: Computerraum.

Zur Vereinfachung der Wartung wird in genanntem Computerraum Linbo eingesetzt, um Ubuntu in Version 10.04 auf allen Rechnern konsistent zu halten. Ein normaler Bootvorgang, in den Linbo in keinster Weise involviert ist, läuft problemlos bis zum Start des X-Servers durch. Werden die Rechner allerdings mittels PXE-Boot gestartet und die grafische Linbo-Oberfläche angezeigt, ist beim anschließenden Systemstart von Ubuntu aus Linbo heraus die Schrift auf den virtuellen Konsolen (tty1-6) nicht lesbar (siehe Foto).

Fehlerhafte Darstellung

Unleserliche Konsolenschrift

Der X-Server hingegen startete sowohl mit als auch ohne Linbo ordnungsgemäß und war nach dem Hochfahren einsatzbereit.

Erster Lösungsansatz (nicht erfolgreich)

Um dieses Problem in den Griff zu kriegen, wurden zunächst einige Versuche mit dem append-Eintrag in der start.conf der betroffenen Rechnergruppe durchgeführt. Diesen Eintrag kann man unter anderem dazu verwenden, den vga– bzw. vesa-Parameter zu setzen, aber leider war keiner der unterstützten Modi geeignet, die Schrift in der Konsole wieder lesbar zu gestalten. Tatsächlich sah es sogar so aus, als würde dieser Eintrag gänzlich ignoriert werden, da sich die Konsolenauflösung scheinbar nicht änderte.

Ein Blick auf die Log-Meldungen von Linbo bestätigte diese Vermutung: Unabhängig vom gesetzten vga-Parameter tauchte dort immer wieder die Meldung setup_linux_vesafb: 800x600x8 <at> f9000000 +ea600 auf.

Zweiter Lösungsansatz (nicht erfolgreich)

Die Auflösung des zu startenden Systems wird also offenbar von Linbo bestimmt und ist nicht abhängig von eventuell gesetzten Kernel-Parametern in der start.conf. Da aber auch Linbo mit eigenen Kernel-Parametern gestartet werden kann und diese Informationen in /tftpboot/pxelinux.cfg/default bereitgestellt werden, wurde in dieser Datei der vesa-Parameter mit den möglichen Werten angepasst: /tftpboot/pxelinux.cfg/defaultAPPEND initrd=linbofs.gz vesa=0x31B quiet

Das Resultat waren verschiedene Auflösungen der grafischen Linbo-Oberfläche sowie verschiedene Auflösungen der Konsole beim Systemstart von Ubuntu. Lesbar war die Konsolenschrift von Ubuntu allerdings noch immer nicht.

Dritter Lösungsansatz (erfolgreich)

Tiefergehende Analysen des Linbo-Startvorgangs brachten zutage, dass Linbo zum schnellen Starten eines linuxbasierten Betriebssystems kexec verwendet und dass dieses Programm auch für die Meldung setup_linux_vesafb: 800x600x8 <at> f9000000 +ea600 verantwortlich ist.

Nach einigen Recherchen kam dann endlich die Erleuchtung: Offensichtlich fehlte Ubuntu das vesafb-Kernel-Modul. Das Einfügen des Moduls in /etc/initramfs-tools/modulesvesafb
fbcon
und das Auskommentieren in der entsprechenden Blacklist /etc/modprobe.d/blacklist-framebuffer.conf#blacklist vesafb brachten schließlich das gewünschte Ergebnis: eine lesbare Konsolenschrift trotz Linbo-Start.

Fazit

Offensichtlich hat kexec versucht, Ubuntu seine Framebuffer-Einstellungen aufzuzwingen; Ubuntu war aber ob des fehlenden Kernel-Moduls nicht in der Lage, den Framebuffer ordentlich, d.h. wie von kexec vorgegeben, anzusteuern.

0 Kommentare - Permalink - Nach oben



Valid XHTML 1.0 Strict
Proudly powered by WordPress.