KMS
Migration abgeschlossen: Dieser Artikel wurde vollständig aus dem alten Wiki migriert. |
Was ist KMS?
KMS steht für Kernelbased Mode-Setting und ist wohl die größte Veränderung zwischen Xorg und dem Linux-Kernel seit Langem. Es handelt sich dabei um ein Subsystem des Linux-Kernels, der automatisch die Kontrolle über die Grafikkomponenten eines System übernimmt und die passende Auflösung einstellt. Dadurch muss sich der Xorg-Server nicht mehr darum kümmern, die richtige Auflösung zu finden. Für den User bedeutet das vor allem eins, nämlich ein schnelleres Umschalten zwischen Xorg und den virtuellen Terminals, ebenso wie zwischen mehreren grafischen Sitzungen. Außerdem wird so der Bootvorgang beschleunigt und vor allem flackerfrei. Auch kann man so schon beim Booten recht ansehnliche Bootsplashs anzeigen lassen.
Wird mein System unterstützt?
Die Antwort darauf hängt vor allem davon ab, welche Hardware, speziell welche Grafikkarte, in deinem System verbaut ist. Grundsätzlich kann man jedoch sagen, dass mit Debian Squeeze der Großteil (zumindest die meisten aller ATI, Intel und Nvidia Karten sollten unterstützt werden) aller Rechner KMS nutzen kann.
Für Squeeze gibt es allerdings eine kleine Besonderheit und zwar den Kernel 2.6.32, dazu siehe die Seite über den nouveau-Treiber. Für Debian Lenny hingegen wird KMS nicht funktionieren, da die Treiber im Xorg zu alt sind.
Wie wird KMS aktiviert?
KMS wird in den meisten Fällen vom Linux-Kernel selbst aktiviert. Danach muss man nur Xorg mitteilen, dass auch ein Treiber benutzt werden soll, der KMS unterstützt.
Für Intel-Karten muss man dafür nichts tun, der von Xorg standardmäßig gewählte Treiber xserver-xorg-video-intel unterstützt KMS. Bei ATI sieht dies ähnlich aus, da xserver-xorg-video-radeon KMS bereits unterstützt. Nur bei Nvidia-Karten muss man dafür sorgen, dass statt dem alten Treiber xserver-xorg-video-nv der neue Treiber xserver-xorg-video-nouveau benutzt wird. Eine Anleitung dafür gibt es hier.
Soll KMS möglichst früh beim Boot aktiviert werden, so muss das Modul mit dem passenden Parameter in die Initrd eingebaut werden. Dazu wird in die Datei /etc/initramfs-tools/modules der Name des passenden Kernel Moduls gefolgt von modeset=1 eingetragen und anschließend die Initrd neu gebaut mit folgendem Befehl:
root@debian:~# update-initramfs -u
Das passende Modul für NVIDIA Karten ist nouveau, für ATI Karten ist es radeon und für Intel ist es i915.
Wie wird KMS deaktiviert?
Damit KMS nicht automatisch gestartet wird, muss es schon vor dem Boot deaktiviert werden. Am besten geht das über Kernelparameter die man im jeweiligen Bootmanager einstellt. Man übergibt dem Kernel, je nach verwendetem Treiber radeon.modeset=0, nouveau.modeset=0 oder "i915.modeset=0" und dann wird kein KMS aktiviert.
Probleme
Wie alles, hat auch KMS seine negativen Seiten. So werden alle proprietären Treiber von KMS ausgeschlossen. Das große Problem daran ist, dass sie auch den Dienst verweigern, wenn KMS beim Boot aktiviert wurde. Für die Treiber fglrx, nvidia und nv muss also KMS bereits beim Start deaktiviert werden.
Todo
- Was ist mit anderen Grafikkarten als Intel, Nvidia oder Ati?