Vorm booten von SUSE Grafiktreiber wählen

G

Gast123

Hallo, Community.

Ich möchte folgendes erreichen:
Ich möchte vor dem booten von openSUSE 11.1 x86_64 den zu verwendenden Grafikkartentreiber wählen.
Dazu habe ich bisher folgende Idee versucht:
Ich habe die /etc/init.d/rc5.d/ in die /etc/init.d/rc4.d/ kopiert und in der /etc/inittab das RL 4 aktiviert. Soweit so gut.
Nun habe ich des weiteren zwei Dateien /etc/X11/xorg.rl4.conf und /etc/X11/xorg.rl5.conf die SaX2 jeweils dazu konfigurieren einen entsprechenden Treiber zu verwenden: 4: fglrx von AMD/ATI, 5: radeon (FOSS).
Auch habe ich ein shellscript geschrieben, welches - je nach runlevel eine der o.g. Konfigurationsdateien auf /etc/X11/xorg.conf linkt.
Nun ist das Problem, dass das Skript, obwohl nach /etc/init.d/rc5.d/ und /etc/init.d/rc4.d/ verlinkt nicht aufgerufen wird, wenn der Runlevel erreicht wird.
Das ganze scheint mir zudem sehr umständlich und nicht ganz "korrekt".
Hat jemand eine Idee, wie ich mein Ausgangsziel am besten erreiche?

LG,
Richard
 
WTF? was machsten denn du da mit der libgl? himmel, hilf! das ist ja ganz abscheulich gefrickelt!

EDIT (nach dem ersten schock):

Auch habe ich ein shellscript geschrieben, welches - je nach runlevel eine der o.g. Konfigurationsdateien auf /etc/X11/xorg.conf linkt.
0. poste das script bitte
1. ist das ein init-script?
2. wieso erstellst du nicht zwei scripts, für jeden runlevel eins?

Nun ist das Problem, dass das Skript, obwohl nach /etc/init.d/rc5.d/ und /etc/init.d/rc4.d/ verlinkt nicht aufgerufen wird, wenn der Runlevel erreicht wird.
wie heißen denn die links?
die müssen glaube ich mit S<nummer><name> benannt sein.
habe leider keine ahnung von den neueren suse-versionen

Das ganze scheint mir zudem sehr umständlich und nicht ganz "korrekt".
full ack.
wobei ich keinen einfachen, korrekteren weg kenne. (init anpassen, so dass es einen weiteren parameter annimmt? beim booten nachfragen?)
 
Zuletzt bearbeitet:
Hi,

1. nein -.- das ist ein Shell-Skript.
Lass mich raten: das geht so nicht...?

Code:
#! /bin/bash
ln -s /etc/X11/xorg.rl5.conf /etc/X11/xorg.conf
Habe für jeden Runlevel eins...

EDIT:
Okay, habe ein wenig nach init-scripts gegoogelt.
Da werde ich mich wohl erst ein wenig reinarbeiten müssen.

Danke trotzdem.

LG,
Schard
 
Zuletzt bearbeitet von einem Moderator:
Wichtig ist, dass das Init-Skript die Parameter 'start' und 'stop' kennt und entsprechend damit agiert. Ausserdem muss ja der vorhandene Link auch irgendwann gelöscht werden, da er von 'ln' nicht überschrieben wird. Es kommt also zu einem Fehler, wenn er bereits existiert.

Code:
#!/bin/bash

case "$1" in
start)
    echo "Verlinke xorg.conf"
    # pruefen ob der link noch existiert
    if [ -e /etc/X11/xorg.conf ]
    then
        rm -f /etc/X11/xorg.conf
    fi
    # link anlegen
    ln -s /etc/X11/xorg.rl5.conf /etc/X11/xorg.conf
    ;;
stop)
    # beim runterfahren link entfernen, 
    # skript muss dafuer in die entsprechenden runlevel verlinkt werden!
    echo "Entferne xorg.conf"
    rm -f /etc/X11/xorg.conf
    ;;
*)
    # bei allen anderen parametern hilfe auf stderr ausgeben
    echo "Syntax: `basename $0` {start | stop }`" >&2
    exit 64
    ;;
esac

exit 0

So in der Art sollte es funktionieren. Hab's aber nicht getestet.
 
Ich gebe Dir mal 4 Buchstaben:

SCPM

... aka "die Lösung, die unter openSUSE solches Gefrickel mit eigenen Scripten unnötig machen soll" (und es hier™ z.B. seit Jahren zuverlässig tut).
 
SCPM

... aka "die Lösung, die unter openSUSE solches Gefrickel mit eigenen Scripten unnötig machen soll" (und es hier™ z.B. seit Jahren zuverlässig tut).
Und ein YaST-Interface hat das auch noch :)

Aber obwohl das völlig standardloser Bastelkram ist, ist die Idee, einen ungenutzten Runlevel dafür einzuspannen, nicht völlig von der Hand zu weisen: Man könnte, während das Grub-Startmenü beim booten erscheint, einfach "4" und "Enter" drücken, ohne erst zu starten und dann Profile umher zu schalten, so hab ich zumindest die Idee verstanden.

Das Init-Script wäre mal interessant zu sehen, das startet und stoppt ja nicht nur Dinge, sondern enthält im Kopf auch Abhängigkeiten, die sich auf die Startreihenfolge im Runlevel auswirken.

Sonst könnte man evtl was ganz anderes machen: In boot.local ein Script aufrufen, das einen fragt, ob man den seltener genutzten Treiber will. Wenn man innerhalb von 5 Sekunden "J" sagt, wird der Link entsprechend gesetzt, sonst auf den "normalen" und weiter (damit er immer gesetzt wird, egal welcher Link vorher noch im Dateisystem stand). Damit spart man sich das Gefummel mit den Runleveln.

Aber eigentlich gibt es tatsächlich extra Profile für sowas, RM. Da hast du wohl Recht.
 
Aber obwohl das völlig standardloser Bastelkram ist, ist die Idee, einen ungenutzten Runlevel dafür einzuspannen, nicht völlig von der Hand zu weisen: Man könnte, während das Grub-Startmenü beim booten erscheint, einfach "4" und "Enter" drücken, ohne erst zu starten und dann Profile umher zu schalten, so hab ich zumindest die Idee verstanden.

Prinzipiell ja, die Frage ist nur, wie sich dann das Ganze bei Updates entsprechender Dienste verhält, ich könnte mir vorstellen, daß sysconfig/chkconfig&co. da ungewollte Änderungen beim Update vornehmen, da sie ja für "saubere" Runlevel sorgen sollen.

Und dann auch eben, .. was macht man, wenn man ein weiteres Profil will?

Das Init-Script wäre mal interessant zu sehen, das startet und stoppt ja nicht nur Dinge, sondern enthält im Kopf auch Abhängigkeiten, die sich auf die Startreihenfolge im Runlevel auswirken.

ACK, was übrigens der Hauptgrund ist, wieso der erste Ansatz genau so wie das händische Verlinken "Bastelkram" sind, der Ansatz von Bitmuncher wäre schon deutlich näher dran, aber es fehlt immer noch der passende Header.

Sonst könnte man evtl was ganz anderes machen: In boot.local ein Script aufrufen, das einen fragt, ob man den seltener genutzten Treiber will. Wenn man innerhalb von 5 Sekunden "J" sagt, wird der Link entsprechend gesetzt, sonst auf den "normalen" und weiter (damit er immer gesetzt wird, egal welcher Link vorher noch im Dateisystem stand). Damit spart man sich das Gefummel mit den Runleveln.

Wäre auch eine Möglichkeit, wenn man wirklich basteln will.

Aber eigentlich gibt es tatsächlich extra Profile für sowas, RM. Da hast du wohl Recht.

es ist halt genau das Tool für diesen (und nicht nur diesen) Job, welches es schon "fix und fertig" gibt.

Und neben dem YaST-Interface gefallen mir daran zwei Dinge besonders:

a) Granulare Rechteverteilung, wer was mit SCPM machen darf (nichts, nur umschalten, umschalten und Profile erstellen/verändern)

b) Genau das, was der TE will, vor dem Start des Bootvorgangs mit einer F-taste das Profil auswählen, welches man will.

Greetz,

RM
 
was mich ja immernoch interessieren würde, ist, wie du gleichzeitig radeon und fglrx benutzt, fglrx hat doch eine proprietäre, zu radeon inkompatible libgl?
 
was mich ja immernoch interessieren würde, ist, wie du gleichzeitig radeon und fglrx benutzt, fglrx hat doch eine proprietäre, zu radeon inkompatible libgl?

Falls wirklich notwendig, kann man _hier_ ein Script einsetzen, welches die entsprechenden Symlinks (denn überschrieben wird da nichts) im Kontext von SCPM setzt und nicht mit irgendwelchen Frickelsripten, die den Job von SCPM übernehmen sollen (und mit Sicherheit nicht annähernd so gut können).
 

Ähnliche Themen

Can't adjust apache2 service.

Script beim Booten starten, but how?

Grafik und Sound gehen nicht (Suse 11.0)

HD Parameter setzen Suse 10.3, lahmer gehts kaum!

Init-Skript für Suse 10.0 zum Wake On Lan starten

Zurück
Oben