Unterschiedliche Grafikkartentreiber beim Booten von externen Medien

1414
Unreason

Ich boote ein bestimmtes System von mir mit Ubuntu 9.10 von einer externen Festplatte. Ich bin mit dem Setup zufrieden und es funktioniert gut, aber ich möchte es ändern, so dass ich auswählen kann, welche Grafikkartentreiber während des Startvorgangs geladen werden sollen. Speziell möchte ich wählen zwischen:

  • nvidia proprietärer Treiber
  • ati proprietärer Treiber
  • generischer Fahrer

Wenn ich proprietäre Treiber verwende, booten Sie nicht in X, löschen Sie xorg.conf, starten Sie gdm und konfigurieren Sie das System mit Jockey neu (für Hardwaretreiber).

Was wären die Schritte, um diese (Halb-) Automatik durchzuführen und X nicht neu zu starten?

Wo kann man Beispiele für solche Skripte finden?

0

4 Antworten auf die Frage

1
  1. Machen Sie 3 verschiedene grub Einträge für jeden Kernel mit driver1, driver2, driver3als Optionen.
  2. Machen Sie 3 verschiedene xorg.conf (jeweils mit einer der drei Fahrer) und nennen sie xorg.conf1, xorg.conf2, xorg.conf2.
  3. Schreib - Init - Skript, das ausgeführt wird, bevor die X greps /proc/cmdlinefür driver1, driver2oder driver3und dann symbolische Links xorg.conf1, xorg.conf2oder xorg.conf2zuxorg.conf

Ich habe etwas Ähnliches getan, um in der Zeit vor Xrandr zwischen zwei und zwei Bildschirmen umzuschalten. Leider sind die Skripte und die Dokumentation längst vorbei.

Mögliche Verbesserungen:

  • benutze udev-regeln
  • Lassen Sie das Initscript die aktuelle Grafikkarte automatisch erkennen
+1 scheint der richtige Weg zu sein. Wie würden Sie automatisch erkennen? (lspci dann insmod?) Unreason vor 13 Jahren 0
lspci ist schwierig ... Manchmal sind Grafikkarten "Display Controller", manchmal werden sie "VGA Controller" genannt. Das erste, was mir in den Sinn kam, war "lshw". Zum Beispiel: "lshw | grep -m1 - A5 display | grep vendor" oder "lshw -c display | grep vendor" vor 13 Jahren 0
1
Christoffer Madsen

Sie können immer ein Shell-Skript erstellen, das diesen Prozess für Sie automatisiert.

Ja, ich würde das tun, aber ich bin nicht sicher, was die Schritte sind. Ich habe zwei verschiedene xorg.conf-Dateien, aber reicht das aus? sollte ich vor dem Start von gdm auch einige insmods machen? Unreason vor 13 Jahren 0
X sollte alle in der Konfigurationsdatei definierten Module laden. Daenyth vor 13 Jahren 0
Wie in Lego399 vorgeschlagen, können Sie ein Skript ausführen, das verschiedene Xorg-Konfigurationsdateien lädt. Bereiten Sie einfach diese Konfigurationsdateien (xorg.conf.nv, xorg.conf.ati, xorg.conf.vesa) vor und kopieren Sie eine davon in die Originaldatei xorg.conf. Danach können Sie den Xorg-Server ausführen. Sie sollten dieses Skript also vor dem Start von gdm (oder einem anderen Login-Manager) ablegen. vor 13 Jahren 0
@Pier, eigentlich war es das, was ich getan habe (ich habe zwei funktionierende xorg.conf-Dateien, eine für jedes Hardware-Setup), aber das war nicht genug. Ich nehme an, das war nicht genug, da ich Jockey noch einmal laufen lassen muss, damit alles funktioniert. Unreason vor 13 Jahren 0
1

Im Folgenden finden Sie einige Hinweise, wie Sie mit grub möglicherweise das erreichen, was Sie möchten:

http://en.gentoo-wiki.com/wiki/Framebuffer

1

Erstellen Sie verschiedene Versionen Ihrer xorg.conf, je nachdem, was Sie möchten. Sagen:

/etc/X11/xorg.conf.nvidia /etc/X11/xorg.conf.ati /etc/X11/xorg.conf.generic 

Konfigurieren Sie dann mehrere Boot-Konfigurationen in /boot/grub/grub.cfg und geben Sie in jede Zeile, in der der Kernel angegeben ist, einen anderen Kernel-Parameter (z. B. xconfig = myconfig) ein. Irgendwo im Sinne von:

menuentry "Ubuntu, Linux 2.6.31-17 nvidia" { ... linux /vmlinuz-2.6.31-17 root=UUID=885a6a07-fd6c-4638-aa17-d38997d477e1 xconfig=nvidia ro single ... }   menuentry "Ubuntu, Linux 2.6.31-17 ati" { ... linux /vmlinuz-2.6.31-17 root=UUID=885a6a07-fd6c-4638-aa17-d38997d477e1 xconfig=ati ro single ... }  menuentry "Ubuntu, Linux 2.6.31-17 generic" { ... linux /vmlinuz-2.6.31-17 root=UUID=885a6a07-fd6c-4638-aa17-d38997d477e1 xconfig=generic ro single ... } 

Nicht erkannte Kernel-Parameter werden ignoriert, sind aber weiterhin in / proc / cmdline verfügbar. Basierend darauf können Sie ein kleines Shell-Skript schreiben, das die richtige Konfigurationsdatei auswählt:

#!/bin/bash rm -f /etc/X11/xorg.conf config=`cat /proc/cmdline |sed -e 's/.*xconfig=\([a-z]*\).*/\1/g' ln -s /etc/X11/xonfig.conf.$config /etc/X11/xconfig.conf 

Dann legen Sie dies irgendwo in Ihre Startreihenfolge, bevor gdm startet.

Hoppla .. Ich habe die Frage irgendwie falsch gelesen .. sowieso .. :) vor 13 Jahren 0