summaryrefslogtreecommitdiffstats
path: root/perl-install/Xconfig
diff options
context:
space:
mode:
authorThierry Vignaud <tvignaud@mandriva.org>2004-06-15 16:21:48 +0000
committerThierry Vignaud <tvignaud@mandriva.org>2004-06-15 16:21:48 +0000
commit0b301ec03002d356ffb5ea1192ac6ef7374f02fc (patch)
tree9ac4f81b360d5502cc09254b9e5d4d2f467706ae /perl-install/Xconfig
parent6ce7f32586bc6a9f22de14e3a11af242be0b64f3 (diff)
downloaddrakx-backup-do-not-use-0b301ec03002d356ffb5ea1192ac6ef7374f02fc.tar
drakx-backup-do-not-use-0b301ec03002d356ffb5ea1192ac6ef7374f02fc.tar.gz
drakx-backup-do-not-use-0b301ec03002d356ffb5ea1192ac6ef7374f02fc.tar.bz2
drakx-backup-do-not-use-0b301ec03002d356ffb5ea1192ac6ef7374f02fc.tar.xz
drakx-backup-do-not-use-0b301ec03002d356ffb5ea1192ac6ef7374f02fc.zip
handle case where both ATI and NVIDIA GLX packages are installed (use
new glibc's /etc/ld.so.conf.d/ and prevent loading NVIDIA's GLX module with ATI cards)
Diffstat (limited to 'perl-install/Xconfig')
-rw-r--r--perl-install/Xconfig/card.pm15
1 files changed, 14 insertions, 1 deletions
diff --git a/perl-install/Xconfig/card.pm b/perl-install/Xconfig/card.pm
index 79c29b36b..50ca60a2d 100644
--- a/perl-install/Xconfig/card.pm
+++ b/perl-install/Xconfig/card.pm
@@ -111,13 +111,16 @@ sub to_raw_X {
$raw_X->{xfree3}->set_load_module('glx-3.so', $card->{use_UTAH_GLX}); #- glx.so may clash with server version 4.
- $raw_X->{xfree4}->set_load_module('glx', !$card->{DRI_GLX_SPECIAL}); #- glx for everyone, except proprietary nvidia
+ $raw_X->{xfree4}->set_load_module('glx', !$card->{DRI_GLX_SPECIAL} && $card->{Driver2} ne 'fglrx'); #- glx for everyone, except proprietary nvidia
$raw_X->{xfree4}->set_load_module('dri', $card->{use_DRI_GLX} && !$card->{DRI_GLX_SPECIAL});
# This loads the NVIDIA GLX extension module.
# IT IS IMPORTANT TO KEEP NAME AS FULL PATH TO libglx.so ELSE
# IT WILL LOAD XFree86 glx module and the server will crash.
$raw_X->{xfree4}->set_load_module('/usr/X11R6/lib/modules/extensions/libglx.so', $card->{DRI_GLX_SPECIAL});
+ if ($card->{Driver2} eq 'fglrx') {
+ $raw_X->{xfree4}->set_load_module('/usr/X11R6/lib/modules/extensions/libglx.a', 1);
+ }
$raw_X->{xfree4}->remove_Section('DRI');
$raw_X->{xfree4}->add_Section('DRI', { Mode => { val => '0666' } }) if $card->{use_DRI_GLX};
@@ -377,6 +380,16 @@ sub install_server {
$card->{DRI_GLX_SPECIAL} = 1;
$card->{Options_xfree4}{IgnoreEDID} = 1;
}
+ my %driver_to_libgl_config = (
+ nvidia => "/etc/ld.so.conf.d/.conf.nvidia",
+ fglrx => "/etc/ld.so.conf.d/.conf.ati",
+ );
+ if (my $file = $driver_to_libgl_config{$card->{Driver2}}) {
+ if (-e $file) {
+ symlinkf($file, "/etc/ld.so.conf.d/GL.conf");
+ system("/sbin/ldconfig") if $::isStandalone
+ }
+ }
if ($card->{Driver2} eq 'fglrx' &&
-e "$::prefix/usr/X11R6/lib/modules/dri/fglrx_dri.so" &&
-e "$::prefix/usr/X11R6/lib/modules/drivers/fglrx_drv.o") {