Reduzieren des Umschaltens des Videomodus während des Linux-Starts

12

Wenn ich meinen Desktop-Computer starte, auf dem nur Linux installiert ist, werden der Videomodus und / oder die Konsolenschriftart viermal umgeschaltet:

  • Wenn GRUB gestartet wird, wechselt es von 80x25-Text in einen grafischen Modus, sodass es einen hübschen Hintergrund hinter seinem Menü zeichnen kann.
  • GRUB kehrt dann zu 80x25-Text zurück, nachdem ich etwas aus dem Menü ausgewählt habe.
  • Wenn der KMS-Treiber für meine Grafikkarte geladen wird, wechselt er in einen Textmodus mit viel höherer Auflösung (ich weiß nicht, ob dies ein Hardware-Textmodus ist oder nicht).
  • Schließlich startet X und es geht Grafik und bleibt so. Ich denke, dieser letzte Schalter ändert nicht die Auflösung des Videomodus, sondern nur die Grafik.

Ich möchte so viele dieser Modusschalter wie möglich entfernen. Wenn GRUB das BIOS übernimmt, wechselt es im Idealfall direkt in denselben hochauflösenden Textmodus, den der KMS-Treiber auswählt, und die Anzeige bleibt in diesem Modus, bis X startet und Grafiken aufruft. Ich habe den Eindruck, dass dies möglich ist, indem ich mit der Kernel-Befehlszeile und / oder den Ladeparametern des GRUB-Konsolenmoduls herumfummle, aber ich kenne die Details nicht.

GRUB 1.98 + 20100706, Kernel 2.6.32.15 mit Nouveau-Grafiktreibern. Distribution ist Debian instabil. Bitte keine Antworten, bei denen irgendetwas neu kompiliert oder hochmoderne Kernel / Treiber-Kombinationen zusammengeschustert werden müssen. Das interessiert mich nicht genug, um so viel Ärger zu machen.

BEARBEITEN: Tobu schlägt vor GRUB_GFXMODE, die volle Pixelauflösung des Monitors einzustellen und GRUB_GFXPAYLOAD_LINUX=keepden Moduswechsel nach dem Verschwinden des Menüs zu vermeiden. Dies macht einen Teil von dem, was ich will, wird aber insgesamt schlechter. Es gibt keinen Modusschalter nach dem Menü, aber es gibt immer noch ein schmerzhaft langsames Repaint des Bildschirms (ich sollte wahrscheinlich einfach den gfxmode von GRUB aufgeben, er ist bei 1920x1200 zu langsam). Im Ernst, es gibt jetzt einen Doppelmodusschalter , wenn nouveaufb geladen wird, zusammen mit lustigen Fehlermeldungendmesg

[    5.923798] [drm] nouveau 0000:02:00.0: allocated 1920x1200 fb: 0x40250000, bo ffff8801ba5f4600
[    5.923802] fb: conflicting fb hw usage nouveaufb vs EFI VGA - removing generic driver
[    5.923821] [drm] nouveau 0000:02:00.0: PFIFO_INTR 0x00000010 - Ch 1
("PFIFO_INTR" message repeats 400+ times)
[    5.925609] Console: switching to colour dummy device 80x25
[    5.925802] Console: switching to colour frame buffer device 240x75
zwol
quelle
Ich bin gespannt, was "Grafik" ist.
Bis auf weiteres angehalten.
1
Für jede gegebene Pixelauflösung kann ein Videomodus grafisch (jedes einzelne Pixel ist adressierbar) oder Text (simuliert ein Zeichenzellen-Terminal aus früheren Tagen) sein. Was ich mit "Grafik" gemeint habe, war, dass der vierte Videomodusschalter, den ich aufgelistet habe, von Text zu Grafik wechselt, ohne die Pixelauflösung zu ändern, denke ich trotzdem.
zwol

Antworten:

2

Plymouth soll in dieser Hinsicht helfen:

Die Idee ist, dass zu Beginn des Startvorgangs der native Modus für den Computer festgelegt wird, Plymouth diesen Modus verwendet und dieser Modus während des gesamten Startvorgangs bis und nach dem Start von X erhalten bleibt. Idealerweise besteht das Ziel darin, jegliches Flimmern während des Startvorgangs zu beseitigen.

Da Sie nur ein einziges Betriebssystem installiert haben, würde das Deaktivieren der Änderungen der Grub-Auflösung (keine Hintergrundgrafik) und sogar des Menüs selbst bei einer Größe von 80 x 25 zu keiner Änderung führen, bis Plymouth die Kontrolle übernimmt.

chris
quelle
1

Prüfen Sie Ihre Auflösung und Ihre Farbtiefe:

xrandr -q
xdpyinfo | grep 'depth of root window' | awk '{ print $5 }'

Stellen Sie GRUB_GFXMODE=<width>x<height>x<depth>in /etc/default/grubso dass die Maden Menü Auflösung des KMS - Auflösung entspricht.

Fügen Sie möglicherweise auch GRUB_GFXPAYLOAD_LINUX=keepdie Standardeinstellungen hinzu, damit nach dem Grub-Menü und vor dem Einrichten von KMS kein Zwischenschritt erfolgt. X11 sollte behalten, was KMS verwendet, was bedeutet, dass es keinen X11-Switch gibt, über den man sich Sorgen machen muss.

Übernehmen Sie Ihre Änderungen mit

sudo update-grub
Tobu
quelle
Vielen Dank! Dies hat einen Teil meiner Wünsche erfüllt, hatte jedoch negative Nebenwirkungen, die es schlimmer machten als den Status Quo. Ich habe die Details zur Frage hinzugefügt.
zwol
0

Sie können KMS direkt nach GRUB aktivieren. Dies beinhaltet normalerweise einen Parameter in der Kernel-Befehlszeile, der es aktiviert. Für Intel ist es das i910.modeset=1, aber darüber hinaus müssten Sie die Dokumente Ihrer Distribution dazu überprüfen.

Daenyth
quelle
Ich glaube, KMS ist ab dem Zeitpunkt aktiv, an dem der Nouveau-Treiber geladen wird. Dies geschieht jedoch nur während des ersten Gerätescans von udev, einige Zeit nachdem der Userspace ausgeführt wurde. Ich habe ein bisschen mit den Befehlszeilenoptionen video = und vga = herumgespielt, aber kein Glück gehabt.
zwol
Sie können es
anweisen,
Kurz bevor nouveauich den Kernel mit dem kompilierten Modul neu aufgebaut habe (was zu viel Mühe ist), war das Beste, was ich tun konnte, den Jugendstil einzustecken /etc/initramfs-tools/modules... aber alles, was ich tun muss, ist, den Doppelmodusschalter früher von innen zu bewegen / dev muss nach "Laden, bitte warten ..." ausgefüllt werden. Ziel ist es , Moduswechsel zu eliminieren .
zwol
In diesem Fall müssen Sie einen KMS-fähigen Bootloader verwenden. Ich denke, dass grub2 dies tun kann, aber wenn dies nicht der Fall ist, haben Sie kein Glück.
Daenyth
grub2 setzt den Modus und lässt ihn gesetzt (das ist es, was GRUB_GFXPAYLOAD_LINUX = keep erreicht), aber das ist irgendwie nicht gut genug für Nouveau und / oder das fb-Subsystem, daher die Fehlermeldungen "Conflicting fb hw usage". Übrigens genau das gleiche Verhalten mit i915 auf meinem Laptop.
zwol