staging.inyokaproject.org

Konsolen-Auflösung

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Dieser Artikel beschreibt die speziellen Boot-Parameter zur Änderung der Konsolen-Auflösung. Eine Übersicht über alle Bootparameter findet man im Artikel Booten.

Die Auflösung beim Booten beträgt nach der Installation immer 640x480 Pixel. In den virtuellen Konsolen wird dabei der VGA-Textmodus mit 80x25 Zeichen verwendet. Möchte man hier eine höhere Auflösung einstellen, so müssen die Terminals im Grafikmodus betrieben werden. Dies geschieht über ein sogenanntes "Framebuffer-Kernelmodul", welches dem System den Zugriff auf den Bildspeicher (Framebuffer) der Grafikkarte ermöglicht.

Dazu muss wie oben beschrieben ein Parameter hinzugefügt werden. Je nach eingesetzter Ubuntu-Version lauten diese Parameter anders.

Vorbereitung

Auswahl eines Kernelmoduls

Zunächst muss man sich für eines der Framebuffer-Module entscheiden.

  • Für die meisten Anwender dürfte das Modul uvesafb das Optimum darstellen. Es ist der Nachfolger des älteren vesafb-Moduls. Genau wie dieses unterstützt es praktisch alle Grafikkarten, ermöglicht es im Gegensatz zum Vorgänger aber auch, die Bildwiederholfrequenz einzustellen. Außerdem ist es einfacher zu konfigurieren und funktioniert auch auf nicht-x86-Rechnern. Allerdings benötigt es das Programm v86d, welches erst ab Ubuntu 8.10 in den Paketquellen enthalten ist.

  • vesafb ist unter Ubuntu 8.04 etwas einfacher einzurichten als uvesafb, da es v86d nicht benötigt. Es ist einen Versuch wert, wenn uvesafb aus irgendeinem Grund nicht eingesetzt werden kann. Allerdings hat es Probleme mit einigen Auflösungen (z.B. bestimmte Breitbild-Formate wie 1024x600).

  • nvidiafb ist für die Besitzer von Nvidia-Grafikkarten gedacht. Es ist nicht mit dem offiziellen X.org-Treiber von nvidia kompatibel, so dass Anwender dieses Treibers auf uvesafb zurückgreifen sollten.

  • intelfb ist das Modul für Intel-Grafikchips. Dieses Modul hat sich als äußerst "unkooperativ" erwiesen, so dass Intel-Grafikchip-Besitzern zu uvesafb geraten wird.

  • eine Liste weiterer Module erhält man durch einen Blick in den Ordner /lib/modules/<kernelversion>/kernel/drivers/video/. Bei den in diesem Ordner und seinen Unterordnern enthaltenen .ko-Dateien handelt es sich um die Module.

Hat man das Paket linux-doc installiert, so findet man unter /usr/share/doc/linux-doc/fb/ Informationen zu einigen der Module. Auch kann man mittels modinfo Informationen über ein Modul erhalten (siehe Kernelmodule).

Laden des Moduls

Man startet einen Editor mit Root-Rechten [3], und öffnet die Datei /etc/initramfs-tools/modules. Hier fügt man den Namen des ausgewählten Moduls, bspw. uvesafb oder nvidiafb, hinzu. Außerdem muss man in /etc/modprobe.d/blacklist-framebuffer.conf den Namen des Moduls auskommentieren, also ein Raute-Zeichen # davor setzen. Danach liest man die Änderungen ein [1]:

sudo update-initramfs -u  

Wenn man sich für uvesafb entschieden hat, sollte man nun noch das Paket

  • v86d

Befehl zum Installieren der Pakete:

sudo apt-get install v86d 

Oder mit apturl installieren, Link: apt://v86d

installieren.

Kernel-Parameter ermitteln

Damit beim Start des Rechners der richtige Grafikmodus eingestellt wird, müssen dem Kernel beim Start bestimmte Parameter übergeben werden. Dies geschieht, indem man die Parameter in der GRUB-Konfiguration verankert.

Für uvesafb, nvidiafb, radeonfb und weitere

Der Parameter folgt dem Schema video=<modul>:mode_option=<Auflösung>-<Farbiefe>@<Wiederholfrequenz>. Die Wiederholfrequenz kann hierbei weggelassen werden. Beispiele wären video=uvesafb:mode_option=1024x600-16 oder video=nvidiafb:mode_option=1280x1024-24@85.

Hinweis:

Je nach ausgewähltem Modul können die Parameter auch anders lauten; insbesondere erwarten vesafb und intelfb andere Parameter. Der folgende Befehl gibt eine Liste der Module aus, die die hier vorgestellte Syntax unterstützen:

find /lib/modules/$(uname -r)/kernel/drivers/video -name *.ko | while read x; do if /sbin/modinfo $x | grep -q mode_option; then echo $(basename $x .ko); fi; done 

Für vesafb

Um die korrekten Parameter für vesafb herauszufinden, installiert [5] man am besten das Programm hwinfo aus den Ubuntu-Paketquellen. Dieses kann Hardwaredaten auslesen.

Befehl zum Installieren der Pakete:

sudo apt-get install hwinfo 

Oder mit apturl installieren, Link: apt://hwinfo

Ist das Programm installiert, können die Informationen über den Framebuffer ausgelesen werden [1]:

Hinweis:

Dieser Befehl gibt nur die gewünschten Informationen aus, falls der Nvidia-Treiber geladen ist!

sudo hwinfo --framebuffer 

Die Ausgabe ähnelt dieser. Gegen Ende stehen die relevanten Daten.

...
  Mode 0x0300: 640x400 (+640), 8 bits
  Mode 0x0301: 640x480 (+640), 8 bits
  Mode 0x0303: 800x600 (+800), 8 bits
  Mode 0x0305: 1024x768 (+1024), 8 bits
  Mode 0x0307: 1280x1024 (+1280), 8 bits
  Mode 0x0340: 1400x1050 (+1400), 8 bits
...

Alternativ kann man sich auch an folgender Tabelle orientieren.

vga-Parameter für den Framebuffer*
Farbtiefe640×480800×6001024×7681280×10241440×9001600×1200
8 bit,
256 Farben
769
(0x0301)
771
(0x0303)
773
(0x0305)
775
(0x0307)
864
(0x0360)
796
(0x031C)
16 bit,
65.536 Farben
785
(0x0311)
788
(0x0314)
791
(0x0317)
794
(0x031A)
866
(0x0362)
798
(0x031E)
24 bit,
16,7 Mio Farben
786
(0x0312)
789
(0x0315)
792
(0x0318)
795
(0x031B)
867
(0x0363)
799
(0x031F)
*Man kann entweder die dezimalen oder die hexadezimalen Werte wählen, das macht keinen Unterschied.

Neben den beschriebenen Werten gibt es noch vga=normal (normaler 80x25-VGA-Modus ohne Framebuffer), vga=ext (80x50) und vga=ask (Nachfragen).

Diesen Modus, also z.B. 0x0307, trägt man in den Bereich defoptions der /boot/grub/menu.lst ein [3]:

915resolution

(Dieser Abschnitt betrifft nur Nutzer von Intel-Grafikchips. Andere können beim Abschnitt GRUB-Konfiguration weiterlesen.)

Achtung!

Der folgende Abschnitt zu 915resolution und initramfs ist komplex und kann unter Umständen zu einem nicht mehr ordnungsgemäß startenden System führen. Entsprechend sollten Einsteiger diese Anleitung nicht auf Produktivsystemen ausprobieren.

Aufgrund einer Eigenheit im VESA-BIOS zahlreicher Intel-Grafikchips ist es auf einigen Computern nicht ohne weiteres möglich, bestimmte Auflösungen einzustellen. Dies betrifft insbesondere Geräte mit Breitbildauflösungen wie 1024x600 u.ä. Um dem entgegenzuwirken, muss vor dem Laden des Grafiktreibers das Tool 915resolution mit den passenden Optionen gestartet werden. Im X.org-Treiber für Intel-Hardware ist dessen Funktionalität zwar mittlerweile enthalten, aber auf der Konsole muss man nach wie vor auf 915resolution zurückgreifen.

Folgende Schritte sind nötig:

Installation

Man lädt sich von mango.lang.org 🇬🇧 915resolution herunter und entpackt es. In dem Ordner führt man dann den Befehl

sudo make install 

aus.

Bestimmen der notwendigen Optionen

Mittels

sudo 915resolution -l 

lässt man sich eine Liste der Videomodi ausgeben. Normalerweise sollte 915resolution den vorhandenen Grafikchip automatisch erkennen. Sollte dies nicht der Fall sein, so kann man mit der Option -c explizit einen Grafikchip, hier als Beispiel für einen 945GM-Chip:

sudo 915resolution -c 945GM -l 

Die unterstützten Chipsätze sind in der README.txt aufgeführt.

Die Ausgabe des Befehls sollte etwa so aussehen:

Intel 800/900 Series VBIOS Hack : version 0.5.3

Chipset: 945GM
BIOS: TYPE 1
Mode Table Offset: $C0000 + $269
Mode Table Entries: 36

Mode 32 : 800x600, 8 bits/pixel
Mode 34 : 1024x768, 8 bits/pixel
Mode 38 : 1280x1024, 8 bits/pixel
Mode 3a : 1600x1200, 8 bits/pixel
Mode 3c : 1920x1440, 8 bits/pixel
Mode 41 : 1024x600, 16 bits/pixel
Mode 43 : 800x600, 16 bits/pixel
Mode 45 : 1024x768, 16 bits/pixel
Mode 49 : 1280x1024, 16 bits/pixel
Mode 4b : 1600x1200, 16 bits/pixel
Mode 4d : 1920x1440, 16 bits/pixel
Mode 50 : 1024x600, 32 bits/pixel
Mode 52 : 800x600, 32 bits/pixel
Mode 54 : 1024x768, 32 bits/pixel
Mode 58 : 1280x1024, 32 bits/pixel
Mode 5a : 1600x1200, 32 bits/pixel
Mode 5c : 1920x1440, 32 bits/pixel

Nun sucht man sich einen der Modi aus, den man nicht nutzen will, und ersetzt ihn mittels 915resolution durch den gewünschten. Als Beispiel kann man bei einem 945GM-Chip den Modus 5c (1920x1440, 32 bits/pixel) durch 1024x600, 24 bits/pixel ersetzen:

915resolution -c 945GM 5c 1024 600 24 

Einfügen ins initramfs

Experten-Info:

Hier werden die Schritte, die für die Integration von 915resolution in das initramfs nötig sind, beschrieben. Wer ein tieferes Verständnis für das Thema initramfs entwickeln möchte, sei auf die Manpage zu initramfs-tools verwiesen.

Nun erstellt man in /etc/initramfs-tools/scripts/init-top eine Textdatei namens 915resolution mit folgendem Inhalt:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#!/bin/sh
OPTIONS="-c 945GM 5c 1024 600 24"
case $1 in
prereqs)
    exit 0
    ;;
esac

if [ -c /dev/mem ]; then
    915resolution $OPTIONS
else
    mknod -m 640 /dev/mem c 1 1
    915resolution $OPTIONS
    rm /dev/mem
fi

Hierbei muss der Wert von OPTIONS in der zweiten Zeile an die zuvor ermittelten Parameter für 915resolution angepasst werden. Zuletzt muss die Datei ausführbar gemacht werden (siehe chmod):

sudo chmod +x /etc/initramfs-tools/scripts/init-top/915resolution 

Außerdem muss man in /etc/initramfs-tools/hooks/ eine Datei namens 915resolution mit folgendem Inhalt anlegen:

1
2
3
4
5
6
7
8
9
#!/bin/sh
case $1 in
prereqs)
    exit 0
    ;;
esac

. /usr/share/initramfs-tools/hook-functions
copy_exec /usr/sbin/915resolution /bin/915resolution

und ausführbar machen:

sudo chmod +x /etc/initramfs-tools/hooks/915resolution 

Zu guter Letzt muss man dem System mitteilen, dass 915resolution vor dem Laden des Framebuffer-Moduls gestartet werden soll. Dazu editiert man die Datei /usr/share/initramfs-tools/scripts/init-top/framebuffer (Root-Rechte werden benötigt) und ersetzt die Zeile PREREQS="" durch PREREQS="915resolution". Das schließt die nötigen Änderungen an den Konfigurationsdateien für das initramfs ab, so dass man die Änderungen mittels

sudo update-initramfs -u 

aktiv werden lassen kann.

GRUB-Konfiguration

Nun muss man die zuvor ermittelten Kernel-Parameter in die Archiv/menu.lst eintragen. Hierzu öffnet man die Datei /boot/grub/menu.lst in einem Editor mit Root-Rechten und sucht nach der Zeile, die mit # defoptions beginnt. Ab Ubuntu 9.10 wird GRUB 2 verwendet, hier muss man stattdessen die Datei /etc/default/grub mit Root-Rechten bearbeiten und die gewünschte Option an die Zeile GRUB_CMDLINE_LINUX_DEFAULT anhängen. Diese kann z.B. so aussehen:

  • GRUB 2:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=uvesafb:mode_option=1400x1050-32@60"
  • GRUB (Legacy):

    # defoptions=quiet splash vga=0x0307

Wenn ein vga=xxxxx- oder video=xxxx-Parameter vorhanden ist, so ersetzt man ihn durch die im Abschnitt Kernel-Parameter ermitteln ermittelten Parameter. Ist keiner vorhanden, so hängt man diese Parameter einfach an die vorhandenen an. Anschließend wird in einem Terminal (nur bei GRUB 2 notwendig!) der Befehl:

sudo update-grub 

eingegeben, um die Änderungen zu übernehmen. Nach einem Neustart sollte das Terminal in der gewünschten Auflösung erstrahlen.

Achtung!

Fehlerhafte Parameter können zu einem nicht mehr startenden System führen! Daher sollte man die gewünschten Parameter unbedingt temporär - wie unter Bootoptionen beschrieben - auszuprobieren, bevor man sie fest einträgt.

Problembehebung

vesafb auf ATI - Bildwiederholrate zu hoch

Bei einigen älteren Grafikkarten der ATI-Radeon Reihe wird im Framebuffer-Modus die Bildwiederholrate automatisch zu hoch für analog angeschlossene Flachbildschirme eingestellt. Abhilfe schafft hier die Installation des Paketes

  • fbset

Befehl zum Installieren der Pakete:

sudo apt-get install fbset 

Oder mit apturl installieren, Link: apt://fbset

oder die Verwendung von uvesafb mit expliziter Angabe der Wiederholfrequenz (z.B. video=uvesafb:mode_option=1280x1024-16@60).

Diese Revision wurde am 14. Februar 2020 07:11 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System, Booten, GRUB 2, Server, GRUB