• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

FGLRX Treiberupdate automatisieren:

revealed

Guru
Hallo!

für die aktuellste Version:
obec schrieb:
Hi,

die aktuelle Version für openSuSE 10.3 32-Bit befindet sich nun hier: http://wiki.linux-club.de/opensuse/FGLRX_Treiberupdate_automatisieren#openSuSE_10.3_32-Bit

Gruß

obec

Hi achtung wem sein Treiber heilig ist, FINGER WEG!

hier im ersten Post:
Version für SuSE 10.2

hier in diesem Post:
http://www.linux-club.de/viewtopic.php?p=533405#533405
Version für SuSE 10.3

Alles auf eigene Gefahr!

Also ich hab für mein System einen Script geschrieben:

Dazu
Punkt 1 : FGLRX funktioniert bei mir
Punkt 2 : Ich habe eine funktionierende xorg.conf in "/etc/X11"
Punkt 3 : Ich installiere erst immer 1x das Paket und dann noch einmal normal mit dem Installer.
Punkt 4 : Jedesmal wenn ein neuer Treiber kommt bügel ich den neuen drauf und deinstalliere vorher den Alten. Dabei geht zwischendrin immer die xorg.conf flöten, deswegen erstelle ich vorher ein Backup und spiele es nach der Installation zurück.

Also Ausganssituation:

- Neuen Installer im Wurzelverzeichnis "/" abgelegt.
- Und funktionierende xorg.conf in "/etc/X11".
- Im Wurzelverzeichnis "/" befindet sich ein von mir erstellter Ordner "ATI Alt". Darin liegt immer als Backup das alte Zeugs.

Dann funktioniert der Script bei mir und meine Finger ham n bissl Pause:

Code:
su - -c fglrxupdater.sh
fglrxupdater.sh:
Code:
#! /bin/sh
### FGLRX Updatescript --wild-thing
# ins Wurzelverzeichnis wechseln
## Vorbereitung
echo ERSTELLE TEMPORÄRES VERZEICHNIS INSTSCRIPTTEMP
cd /
mkdir instscripttemp
cd /
echo VERSCHIEBE Installer!
cp ati-driver-installer-* /instscripttemp/atiinstaller.run
## Backup
# temporäres backup der guten xorg.conf
echo ERSTELLE BACKUP DER xorg.conf
cp /etc/X11/xorg.conf /ATI\ Alt/xorg.confTEMP
# deinstallieren des alten Paketes
echo DEINSTALLIERE alte fglrx Pakete
rpm -e $(rpm -qa | grep fglrx)
# deinstallieren des alten Installers
echo DEINSTALLIERE nicht-rpm-installation von FGLRX
cd /
cd /usr/share/ati/
sh fglrx-uninstall.sh
### Installation
# Generieren des Paketes für SUSE 10.2 32 Bit
echo ERSTELLE neues FGLRX RPM!
cd /
cd /instscripttemp
sh atiinstaller.run --buildpkg SuSE/SUSE102-IA32
# Installieren des erstellten Paketes
echo INSTALLIERE neues FGLRX RPM!
chmod +x *fglrx*
rpm -Uhv --force fglrx*.rpm
# Installieren via installer
cd /
cd /instscripttemp
chmod +x atiinstaller.run
sh atiinstaller.run  --install 
# Backup der xorg.conf an ihren alten Platz verschieben:
cd /
cp /ATI\ Alt/xorg.confTEMP /etc/X11/xorg.conf
# neue Packages in den ordner ATI ALT verschieben:
cd /
cd /instscripttemp
cp atiinstaller.run /ATI\ Alt/ati-driverinstaller-frisch.run
cp fglrx*.rpm /ATI\ Alt/fglrx-frisch.rpm
## Löschen des alten Backups des Installers sowie des vorher erstellten RPM
# In das Verzeichnis wechseln:
rm fglrx*.rpm
rm atiinstaller.run
cd /
rmdir instscripttemp/
cd /
echo lade FGLRX Modul
modprobe fglrx
lsmod |grep fglrx
echo Temporäres Zeug entfernt und neues installiert! -- FERTIG! -- BITTE NEUSTARTEN!
# /EOF

Ausgabe:
Passwort:
ERSTELLE TEMPORÄRES VERZEICHNIS INSTSCRIPTTEMP
VERSCHIEBE Installer!
ERSTELLE BACKUP DER xorg.conf
DEINSTALLIERE alte fglrx Pakete
DEINSTALLIERE nicht-rpm-installation von FGLRX
restore of system environment completed
Uninstall fglrx driver complete...
ERSTELLE neues FGLRX RPM!
Created directory fglrx-install.Nn6577
Verifying archive integrity... All good.
Uncompressing ATI Proprietary Linux Driver-8.40.4..............................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
...........
==================================================
ATI Technologies Linux Driver Installer/Packager
==================================================
Generating package: SuSE/SUSE102-IA32
/tmp/ati.Tp6707
Package /instscripttemp/fglrx_7_1_0_SUSE102-8.40.4-1.i386.rpm has been successfully generated
Removing temporary directory: fglrx-install.Nn6577
INSTALLIERE neues FGLRX RPM!
Preparing... ########################################### [100%]
1:fglrx_7_1_0_SUSE102 ########################################### [100%]
/usr/src/kernel-modules/fglrx /
rm: cannot remove `Modules.symvers': No such file or directory
rm: cannot remove `*.o': No such file or directory
rm: cannot remove `*.ko': No such file or directory
rm: cannot remove `*.mod.*': No such file or directory
make: Entering directory `/usr/src/linux-2.6.18.8-0.5'
LD /usr/src/kernel-modules/fglrx/built-in.o
CC [M] /usr/src/kernel-modules/fglrx/firegl_public.o
LD [M] /usr/src/kernel-modules/fglrx/fglrx.o
Building modules, stage 2.
MODPOST
WARNING: could not find /usr/src/kernel-modules/fglrx/.libfglrx_ip.a.GCC4.cmd for /usr/src/kernel-modules/fglrx/libfglrx_ip.a.GCC4
CC /usr/src/kernel-modules/fglrx/fglrx.mod.o
LD [M] /usr/src/kernel-modules/fglrx/fglrx.ko
make: Leaving directory `/usr/src/linux-2.6.18.8-0.5'
make: Entering directory `/usr/src/linux-2.6.18.8-0.5'
INSTALL /usr/src/kernel-modules/fglrx/fglrx.ko
DEPMOD 2.6.18.8-0.5-default
make: Leaving directory `/usr/src/linux-2.6.18.8-0.5'
/

*************************************************************
Please read "/usr/share/doc/packages/fglrx/README.SuSE" for
configuration details when using SaX2.
*************************************************************

Created directory fglrx-install.Zu7570
Verifying archive integrity... All good.
Uncompressing ATI Proprietary Linux Driver-8.40.4..............................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
...........
==================================================
ATI Technologies Linux Driver Installer/Packager
==================================================
Detected configuration:
Architecture: i686 (32-bit)
X Server: X.Org 7.1 and later releases
loki_setup: Can't create //usr/X11R6/lib/modules/dri/fglrx_dri.so: File exists
Removing temporary directory: fglrx-install.Zu7570
lade FGLRX Modul
fglrx 743328 17
agpgart 35528 2 fglrx,intel_agp
Temporäres Zeug entfernt und neues installiert! -- FERTIG! -- BITTE NEUSTARTEN!

Gruss

R
 

Z-City

Hacker
Hört sich gut an - ich mache das mal sticky.

Würde mich freuen, wenn hier ein paar "Beta-Tester" Ihre Erfahrungen dazu hinterlassen könnten.

Gruß BEN
 

obec

Advanced Hacker
Hi,

ich denke das HowTo wäre im Wiki wohl besser ausfgehoben. Reveald, hättest du Lust das ins Wiki zu übertragen, -wenn ja, dann wäre das wirklich super, -wenn nein, bitte ich dich das HowTo zum Übertragen freizugeben, dann würde ich das nämlich machen. Vielleicht ließe sich das auch irgendwie in das Wikibook einbringen.

Gruß

obec
 
OP
revealed

revealed

Guru
Ja :)

Punkt 3 : Ich installiere erst immer 1x das Paket und dann noch einmal normal mit dem Installer.
Ist eigendlich unnötig stimmt! Allerweil setzt das Script ja vorraus, das alles außenherum passt.

Es deinstalliert auch das RPM und führt vorher fglrx-uninstall.sh aus.

Beim nächsten neuen Treiber weiss ich spätestens obs wirklich klappt.

Die Ausgabe von dem Testkauf mit dem selben Treiber könnt ihr ja sehen. Meiner Meinung soweit funktioniert das.

was noch fehlen würde ist halt ein:
Code:
mkdir ATI Alt

Gruss

R
 
OP
revealed

revealed

Guru
Habe das mal für die SuSE 10.3 noch angepasst:

Falls jemand ein 64 Bit system hat, dann müsste halt die Zeile mit:
--buildpkg SuSE/SUSE103-IA32
auf
--buildpkg SuSE/SUSE103-AMD64
getweaked werden.

Das verzeichnis ATI Alt was ich bei der alten Version erwähnt hatte, ist nach "ATI" gewandert und wird zu Beginn auch erstellt.
Jetz aber:
Code:
#! /bin/sh
### FGLRX Updatescript --wild-thing
# ins Wurzelverzeichnis wechseln
## Vorbereitung
cd /
mkdir ATI
echo ERSTELLE TEMPORÄRES VERZEICHNIS INSTSCRIPTTEMP
cd /
mkdir instscripttemp
cd /
echo VERSCHIEBE Installer!
cp ati-driver-installer-* /instscripttemp/atiinstaller.run
## Backup
# temporäres backup der guten xorg.conf
echo ERSTELLE BACKUP DER xorg.conf
cp /etc/X11/xorg.conf /ATI/xorg.confTEMP
# deinstallieren des alten Paketes
echo DEINSTALLIERE alte fglrx Pakete
rpm -e $(rpm -qa | grep fglrx)
# deinstallieren des alten Installers
echo DEINSTALLIERE nicht-rpm-installation von FGLRX
cd /
cd /usr/share/ati/
sh fglrx-uninstall.sh
### Installation
# Generieren des Paketes für SUSE 10.3 32 Bit
echo ERSTELLE neues FGLRX RPM!
cd /
cd /instscripttemp
sh atiinstaller.run --buildpkg SuSE/SUSE103-IA32
# Installieren des erstellten Paketes
echo INSTALLIERE neues FGLRX RPM!
chmod +x *fglrx*
rpm -Uhv --force fglrx*.rpm
# Installieren via installer
cd /
cd /instscripttemp
chmod +x atiinstaller.run
sh atiinstaller.run  --install 
# Backup der xorg.conf an ihren alten Platz verschieben:
cd /
cp /ATI/xorg.confTEMP /etc/X11/xorg.conf
# neue Packages in den ordner ATI ALT verschieben:
cd /
cd /instscripttemp
cp atiinstaller.run /ATI/ati-driverinstaller-frisch.run
cp fglrx*.rpm /ATI/fglrx-frisch.rpm
## Löschen des alten Backups des Installers sowie des vorher erstellten RPM
# In das Verzeichnis wechseln:
cd /
rm -rf instscripttemp/
cd /
echo lade FGLRX Modul
modprobe fglrx
lsmod |grep fglrx
echo Temporäres Zeug entfernt und neues installiert! -- FERTIG! -- BITTE NEUSTARTEN!
# /EOF

Eventuell nutzt es ja doch jemand.

Ausgabe:
wild-thing:/ # sh fglrxupdater.sh
mkdir: kann Verzeichnis „ATI“ nicht anlegen: Die Datei existiert bereits
ERSTELLE TEMPORÄRES VERZEICHNIS INSTSCRIPTTEMP
VERSCHIEBE Installer!
ERSTELLE BACKUP DER xorg.conf
DEINSTALLIERE alte fglrx Pakete
DEINSTALLIERE nicht-rpm-installation von FGLRX
restore of system environment completed
Uninstall fglrx driver complete...
ERSTELLE neues FGLRX RPM!
Created directory fglrx-install.R19486
Verifying archive integrity... All good.
Uncompressing ATI Proprietary Linux Driver-8.443.1...........................................................................................
................................................................................................................
................................................................................................................
................................................................................................................
................................................................................................................
............................................................................
==================================================
ATI Technologies Linux Driver Installer/Packager
==================================================
Generating package: SuSE/SUSE103-IA32
/tmp/ati.c19600
Package /instscripttemp/fglrx_7_1_0_SUSE103-8.443.1-1.i386.rpm has been successfully generated
Removing temporary directory: fglrx-install.R19486
INSTALLIERE neues FGLRX RPM!
Preparing... ########################################### [100%]
1:fglrx_7_1_0_SUSE103 ########################################### [100%]
/usr/src/kernel-modules/fglrx /
make: Entering directory `/usr/src/linux-2.6.22.13-0.3-obj/i386/default'
make -C ../../../linux-2.6.22.13-0.3 O=../linux-2.6.22.13-0.3-obj/i386/default
LD /usr/src/kernel-modules/fglrx/built-in.o
CC [M] /usr/src/kernel-modules/fglrx/firegl_public.o
/usr/src/kernel-modules/fglrx/firegl_public.c: In Funktion »__ke_request_irq«:
/usr/src/kernel-modules/fglrx/firegl_public.c:2947: Warnung: »deprecated_irq_flag« ist veraltet (deklariert bei /usr/src/linux-2.6.22.13-0.3/include/linux/interrupt.h:66)
LD [M] /usr/src/kernel-modules/fglrx/fglrx.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: could not find /usr/src/kernel-modules/fglrx/.libfglrx_ip.a.GCC4.cmd for /usr/src/kernel-modules/fglrx/libfglrx_ip.a.GCC4
CC /usr/src/kernel-modules/fglrx/fglrx.mod.o
LD [M] /usr/src/kernel-modules/fglrx/fglrx.ko
make: Leaving directory `/usr/src/linux-2.6.22.13-0.3-obj/i386/default'
make: Entering directory `/usr/src/linux-2.6.22.13-0.3-obj/i386/default'
make -C ../../../linux-2.6.22.13-0.3 O=../linux-2.6.22.13-0.3-obj/i386/default modules_install
INSTALL /usr/src/kernel-modules/fglrx/fglrx.ko
DEPMOD 2.6.22.13-0.3-default
make: Leaving directory `/usr/src/linux-2.6.22.13-0.3-obj/i386/default'
/

*************************************************************
Please read "/usr/share/doc/packages/fglrx/README.SuSE" for
configuration details when using SaX2.
*************************************************************

Created directory fglrx-install.Y20563
Verifying archive integrity... All good.
Uncompressing ATI Proprietary Linux Driver-8.443.1...........................................................................................
................................................................................................................
................................................................................................................
................................................................................................................
................................................................................................................
............................................................................
==================================================
ATI Technologies Linux Driver Installer/Packager
==================================================
Detected configuration:
Architecture: i686 (32-bit)
X Server: X.Org 7.1 and later releases
loki_setup: Can't create //usr/X11R6/lib/modules/dri/fglrx_dri.so: Die Datei existiert bereits
Removing temporary directory: fglrx-install.Y20563
lade FGLRX Modul
fglrx 1502380 25
agpgart 35764 2 fglrx,intel_agp
Temporäres Zeug entfernt und neues installiert! -- FERTIG! -- BITTE NEUSTARTEN!

Gruß

R
 
OP
revealed

revealed

Guru
Hi!

Habe noch etwas hinzugefügt zum Artikel; Vielen Dank fürs Reinstellen :)

Und was ich überlege, ob es sich realisieren lässt..., was ich schon eine Weile am überlegen bin, "ein Script das mit dem rpm utility die Paketabhängikeiten prüft?

Gruß

R
 
OP
revealed

revealed

Guru
Für 11 hab ich den Script definitiv noch nicht getestet!

Aber für 10.3 inklusive FGLRX 8.8 bei mir so wie er ist unproblematisch. Mir gefällt der neue KDE noch nicht deswegen hab ich die 11 nur in einer VM. Und da würde es keinen Sinn machen glaub ich den Script auszuchecken.

Obendrein hatte ich kürzlich festgestellt, dass man unter 11 um Ausgaben von grep zu erhalten teilweise bestimmte Berechtigungen benötigt. Deswegen währe ich mit so crosscripting vorsichtig.

Wenn du dir des Risikos bewusst bist, kannst du den script selbst verfreilich gerne auf der 11 Testen.

Von den Befehlen her, die ausgeführt werden, sollte eigendlich nix um sein?

Vorraussetzung ist natürlich eine funktionierende FGLRX konfiguration.

Ein Sicherheitsrisiko birgt besonders beispielsweise die Verwendung von "rm" im Script, das währe eine leicht auszunutzende Stelle... Wobei das auch für 10.3 gilt.

Wenn jemand lust hätte das zu überarbeiten, immer ran ans Werk!

Eigendlich spiegelt der Script so quasi nur wieder, was ich händisch immer tippen musste bei einem neuen FGLRX release und das hat mich so genervt, dass ich quasi eine Stapelverarbeitungsdatei draus gemacht hab, um Zeit zu sparen.

Wirklich ideal is das so nicht.

Gruß,

R
 
Oben