Dieser Artikel wurde archiviert, da er - oder Teile daraus - nur noch unter einer älteren Ubuntu-Version nutzbar ist. Diese Anleitung wird vom Wiki-Team weder auf Richtigkeit überprüft noch anderweitig gepflegt. Zusätzlich wurde der Artikel 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.
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).
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
mit apturl
Paketliste zum Kopieren:
sudo apt-get install v86d
sudo aptitude install v86d
installieren.
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.
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
.
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
Um die korrekten Parameter für vesafb herauszufinden, installiert [5] man am besten das Programm hwinfo aus den Ubuntu-Paketquellen. Dieses kann Hardwaredaten auslesen.
hwinfo (universe, bis einschließlich Ubuntu 13.04)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install hwinfo
sudo aptitude install hwinfo
Ist das Programm installiert, können die Informationen über den Framebuffer ausgelesen werden [1]:
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* | ||||||
Farbtiefe | 640×480 | 800×600 | 1024×768 | 1280×1024 | 1440×900 | 1600×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]:
(Dieser Abschnitt betrifft nur Nutzer von Intel-Grafikchips. Andere können beim Abschnitt GRUB-Konfiguration weiterlesen.)
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:
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.
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
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.
Nun muss man die zuvor ermittelten Kernel-Parameter in die 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.
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.
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
mit apturl
Paketliste zum Kopieren:
sudo apt-get install fbset
sudo aptitude install fbset
oder die Verwendung von uvesafb
mit expliziter Angabe der Wiederholfrequenz (z.B. video=uvesafb:mode_option=1280x1024-16@60
).
Diese Revision wurde am 20. Dezember 2015 09:52 von frustschieber erstellt.