Grub2: Können Grafiktreiber über den Kernel-Startbefehl deaktiviert werden?

17029
Jonathan Voss

Fragen

Hier sind meine Fragen: Ist es möglich, den fglrx Linux-Treiber zu deaktivieren oder andere Funktionen (z. B. 3D-Beschleunigung) zu unterdrücken, die über eine Grub-Konfiguration nicht hardwarenkompatibel sind? Wenn ja, wie würde dies geschehen?

Insbesondere habe ich meine bevorzugte Softwareentwicklungsumgebung auf einer SSD eingerichtet, die ich auf mehreren Rechnern verwende, von denen nur einige über separate Radeon-GPUs verfügen - die anderen haben Intels iGPUs. Auf Maschinen mit Radeon-GPUs benötigt gmd einen reibungslosen Betrieb der fglrx-Treiber (die 3D-Beschleunigung ist ohne sie besonders janky). Ich muss Boot-Optionen in grub erstellen / auswählen können, mit denen ich auf einem Intel-Gerät mit der iGPU oder einem AMD-Gerät mit Radeon-GPUs booten kann.

Alle Informationen, die ich über das Ändern des Boot-Menüs von grub gefunden habe, sind veraltet, daher habe ich mich zur Klarstellung an SU gewandt.

Hintergrund

Ich habe auf meinem PC einen Dual-Boot-Setup: Windows 7 auf einer SSD und Ubuntu Gnome 14.04 auf einer anderen (ich verwende Ubuntu hauptsächlich für die Softwareentwicklung). Vor kurzem habe ich meinen PC von einigen Radeon HD 7700s auf einen AMD R9 280 aufgerüstet. Zu diesem Zeitpunkt hörten die Radeon-Treiber auf, für die 3D-Beschleunigung zu arbeiten, und alles stotterte. Ich wechselte dann zu fglrx, und alle Probleme hörten auf. Alles war gut im elektronischen Mikrokosmos meines Desktops.

Das einzige Problem ist, dass ich diese Ubuntu-SSD von Maschine zu Maschine transferiere, während ich zwischen Büros, Häusern und Städten hüpfe. Nicht alle Maschinen verfügen über Radeon-GPUs, was zu Problemen mit den fglrx-Treibern führen kann. Gerade heute bin ich zum Beispiel in ein Büro gegangen und habe meine SSD in den Computer gestellt, den ich dort bekommen habe; Es verfügt über eine Intel-CPU und keine separate GPU. Grub würde meine Startoptionen als normal anzeigen, aber meine Versuche, Ubuntu zu starten (selbst im "ausfallsicheren" Grafikmodus) würden fehlschlagen. Ich hatte das Glück, einen Live-USB-Stick bei mir zu haben, also bootete ich die Live-Distribution, montierte / chrootierte in die SSD, entfernte / löschte fglrx und startete dann neu.

Dies ist nicht wirklich eine optimale Lösung. Die ideale Lösung ist die Erstellung einer Grub-Menüoption zum Booten ohne fglrx-spezifische 3D-Beschleunigung.

Einige weitere Besonderheiten

root@toor:/$ grub-install --version grub-install (GRUB) 2.02~beta2-9ubuntu1.3 root@toor:/$ uname -orvp 3.16.0-50-generic #67~14.04.1-Ubuntu SMP Fri Oct 2 22:07:51 UTC 2015 x86_64 GNU/Linux 

Während die fglrx-Treiber installiert sind, führt das Booten auf einem Intel-Computer zu einem ziemlich ärgerlichen Phänomen: Auf dem Bildschirm wird der grüne Schriftzug "Start des Webserver-Apache ..." angezeigt, der dann ständig zurückkehrt, unabhängig davon, welches virtuelle Terminal ausgewählt ist . Das Einloggen dauerte etwa 5 Minuten und sudo rebootda der Bildschirm mit grünem Text alle 2-10 Sekunden dauerte (stark variierendes und unvorhersehbares Timing). Wenn Sie die Tastenkombination Strg + Alt + Entf drücken, wird der Computer gelegentlich nicht neu gestartet, oder es dauert manchmal eine halbe Minute, bis er antwortet. Wenn er jedoch reagierte, wurde der gdm-Begrüßungsbildschirm sehr kurz angezeigt, bevor er neu gestartet wurde.

4

1 Antwort auf die Frage

5
MariusMatutiae

Sie sollten den Parameter nomodeset verwenden :

Nomodeset

Die neuesten Kernel haben den Videomodus in den Kernel verschoben. Die gesamte Programmierung der hardwarespezifischen Taktraten und Register auf der Grafikkarte erfolgt also im Kernel und nicht im X-Treiber, wenn der X-Server gestartet wird. Dies ermöglicht hochauflösende, gut aussehende Begrüßungsbildschirme und ein Flimmern freie Übergänge vom Boot-Splash zum Anmeldebildschirm. Leider funktioniert das auf einigen Karten nicht richtig und Sie erhalten einen schwarzen Bildschirm. Durch das Hinzufügen des Parameters nomodeset wird der Kernel angewiesen, keine Grafiktreiber zu laden und stattdessen BIOS-Modi zu verwenden, bis X geladen wird.

Auf diese Weise können Sie sicher booten und anschließend X die Entscheidung treffen, das für Ihre Anforderungen geeignete Laufwerk auszuwählen. Sie können sich sogar dafür entscheiden, überhaupt keine Programmierung vorzunehmen, und sehen, ob der einfache Befehl vorliegt

 dpkg-reconfigure xserver-xorg 

(Dies funktioniert auf Debian und Derivaten, was in Ihrem Fall der Fall ist).

BEARBEITEN:

Es ist möglich, einen grafischen Startvorgang vollständig zu deaktivieren. Kopieren

 cp /etc/default/grub /etc/default/grub-orig 

Bearbeiten Sie / etc / default / grub, kommentieren Sie diese Zeile aus,

 #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 

Ändern Sie diese Zeile so, dass sie aussieht

 GRUB_CMDLINE_LINUX="text" 

dann kommentieren Sie diese Zeile,

 GRUB_TERMINAL=console 

Speichern, rennen

 update-grub 

Wenn Sie beim Neustart keine fehlerhafte Installation haben, werden Sie sich im Textmodus befinden. Nach der Neukonfiguration von X starten Sie die grafische Sitzung mit

 startx 
Ich teste das jetzt. Wenn es funktioniert, mache ich Bearbeitungsvorschläge, damit die Antwort vollständiger ist. Jonathan Voss vor 9 Jahren 0
Das funktioniert nicht. Ich habe GRUB_CMDLINE_LINUX_DEFAULT = "nomodeset" `zu / etc / default / grub hinzugefügt und dann` update-grub 'anstelle von' dpkg-reconfigure` verwendet, da das xserver-xorg-Paket nicht gefunden wurde. (Meinen Sie damit xserver-xorg- *?) Das Ergebnis ist, dass der Ubuntu-Begrüßungsbildschirm durch einen nostalgischeren Textbildschirm ersetzt wird, der unweigerlich nach "Apache starten ... Wiederherstellen des Resolver-Status ..." beginnt. Sprachdispatcher ist deaktiviert ... "Der Bildschirm flackert dann auf die gleiche Weise, die ich im Hintergrund beschrieben habe. Irgendwelche Ideen? Jonathan Voss vor 9 Jahren 0
@ JonathanVoss Pls lesen meine Bearbeitung. MariusMatutiae vor 9 Jahren 0
Ich werde bis morgen keine Zeit haben, diese neue Lösung zu testen. Es sieht vielversprechend aus, aber ich werde einen Weg finden müssen, um dies zu einer sekundären Option zu machen (vielleicht unter "Erweiterte Startoptionen"). Jonathan Voss vor 9 Jahren 0
Ich habe es versucht und irgendwie hat es fast funktioniert. Es würde mich zu tty1 fallen lassen und ich könnte startx von dort ausführen. Das Problem ist, dass ich die Treiber noch deinstallieren muss, bevor ich mit einer Intel iGPU boote, und dass ich neu installieren und einen Neustart durchführen muss, bevor eine Maschine mit AMD-GPU ausgeführt wird. Ich müsste startx auch jedes Mal ausführen. Wie füge ich einen benutzerdefinierten Eintrag im modernen Äquivalent von "menu.lst" hinzu? Jonathan Voss vor 9 Jahren 0
@JonathanVoss Wenn Sie es geschafft haben, ohne Grafiken zu booten und in einer ** Konsole zu landen ** (kein Terminalemulator), sollte die Neukonfiguration Ihres X-Servers einfach sein. Lesen Sie hier: `https: // wiki.debian.org / Xorg` insbesondere der Abschnitt "Was ist, wenn ich keine Xorg-Konfigurationsdatei habe?". Wenn Sie einen GRUB-benutzerdefinierten Eintrag wünschen, stellen Sie bitte eine andere Frage, dies wird zu einer Telenovela. MariusMatutiae vor 9 Jahren 0