summaryrefslogtreecommitdiffstats
path: root/os-plugins/plugins/xserver
diff options
context:
space:
mode:
authorBastian Wissler2009-08-27 16:22:10 +0200
committerBastian Wissler2009-08-27 16:22:10 +0200
commited1618f4aaa90fec2372c5b7cd3fa6373524bf32 (patch)
treefc9442ac11dffce7f0c60f7c9afc430787eff50f /os-plugins/plugins/xserver
parentMinor fixes, cosmetical changes (tested). (diff)
downloadcore-ed1618f4aaa90fec2372c5b7cd3fa6373524bf32.tar.gz
core-ed1618f4aaa90fec2372c5b7cd3fa6373524bf32.tar.xz
core-ed1618f4aaa90fec2372c5b7cd3fa6373524bf32.zip
Corrected nvidia-installation on suse-11.*, when the kernel version from
system is not 100% the same - without any API changes of course. git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@3137 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'os-plugins/plugins/xserver')
-rw-r--r--os-plugins/plugins/xserver/OpenSLX/Distro/Suse.pm28
1 files changed, 24 insertions, 4 deletions
diff --git a/os-plugins/plugins/xserver/OpenSLX/Distro/Suse.pm b/os-plugins/plugins/xserver/OpenSLX/Distro/Suse.pm
index 1ad6f163..4b1d1bc6 100644
--- a/os-plugins/plugins/xserver/OpenSLX/Distro/Suse.pm
+++ b/os-plugins/plugins/xserver/OpenSLX/Distro/Suse.pm
@@ -88,6 +88,10 @@ sub installNvidia
my @rpm = glob "$tmpdir/nvidia-gfxG01*.rpm";
my $rpm = @rpm;
+ $rpm[0] =~ /nvidia-gfxG01-kmp-$ksuffix-(.*?)_(.*?)-.*?\.$chost.rpm/;
+
+ my $nv_kver = $2;
+ $nv_kver =~ s/_/-/g;
if($rpm == 0) {
print "Could not download nvidia kernel module rpm!";
@@ -106,12 +110,12 @@ sub installNvidia
# ld -r -m elf_i386 -o ../modules/nvidia.ko lib/modules/2.6.25.20-0.4-pae/updates/{nv-kernel,nv-linux}.o
- if ( -f "$tmpdir/lib/modules/$kver-$ksuffix/updates/nv-kernel.o" ) {
+ if ( -f "$tmpdir/lib/modules/$nv_kver-$ksuffix/updates/nv-kernel.o" ) {
# we have to build our kernel module here
- system("ld -r -m elf_i386 -o $tmpdir/lib/modules/$kver-$ksuffix/updates/nvidia.ko $tmpdir/lib/modules/$kver-$ksuffix/updates/{nv-kernel,nv-linux}.o");
+ system("ld -r -m elf_i386 -o $tmpdir/lib/modules/$nv_kver-$ksuffix/updates/nvidia.ko $tmpdir/lib/modules/$nv_kver-$ksuffix/updates/{nv-kernel,nv-linux}.o");
}
- copyFile("$tmpdir/lib/modules/$kver-$ksuffix/updates/nvidia.ko",
+ copyFile("$tmpdir/lib/modules/$nv_kver-$ksuffix/updates/nvidia.ko",
"$repopath/nvidia/modules");
@@ -182,14 +186,30 @@ sub installAti
if($url2 eq '') {
# Taking more general kernel version (minus local suse version)
my $newkernvers = substr $kver_ati, 0, -4;
- print "RPM name is empty - taking kernel version $newkernvers!\n";
$url2 = `zcat $tmpdir/primary.xml.gz | grep -P -o "$chost/ati-fglrxG01-kmp-$ksuffix.*?$newkernvers.*?$chost.rpm"`;
chomp($url2);
if(! $url2 eq '') {
$kver = $newkernvers;
}
+ else {
+ # Minus local Suse version number - hoping, there was no ABI change
+ $newkernvers = substr $kver_ati, 0, -7;
+ $url2 = `zcat $tmpdir/primary.xml.gz | grep -P -o "$chost/ati-fglrxG01-kmp-$ksuffix.*?$newkernvers.*?$chost.rpm"`;
+ chomp($url2);
+ if(! $url2 eq '') {
+ $kver = $newkernvers;
+ }
+
+ }
}
+# print "KVER = $kver; CHOST = $chost; ksuffix=$ksuffix\n";
+# system("bash");
+
+ if($url2 eq '') {
+ print "No ATI module rpm for the chosen kernel version ($kver) found! Exiting!\n";
+ return;
+ }
system("wget -P $tmpdir -t2 -T2 $url/$url2 >/dev/null 2>&1");
my @rpm = glob "$tmpdir/ati-fglrxG01-kmp-$ksuffix*$chost.rpm";