rendered paste bodysub hwdetect_getvideo() {
print getStr('video_probe') . ": ";
my @probed_cards;
eval { @probed_cards = Xconfig::card::probe() };
print scalar(@probed_cards) . " " . getStr('found');
my $probed_card;
if (scalar @probed_cards) {
print_success();
foreach $card (@probed_cards) {
my ($probed_vendor, $_probed_desc) = split(/\|/, $card->{description});
my $module = 'unknown';
unless ($probed_card) { # one card only :(
$probed_card = $card;
if (defined($cmdline{xdrv})) {
$probed_card->{Driver} = $cmdline{xdrv};
$probed_card->{Driver2} = $probed_card->{Driver};
}
if ($probed_card->{Driver2} eq 'nvidia' &&
-e "/usr/X11R6/lib/modules/drivers/nvidia_drv.o" &&
-e "/usr/X11R6/lib/modules/extensions/libglx.so" &&
(-e "/lib/modules/$kernel_ver/kernel/drivers/char/nvidia.o.gz" ||
-e "/lib/modules/$kernel_ver/kernel/drivers/video/nvidia.ko" ||
-e "/lib/modules/$kernel_ver/kernel/drivers/video/nvidia.o")) {
$probed_card->{Driver} = $probed_card->{Driver2};
$probed_card->{DRI_GLX_SPECIAL} = 1;
$module = $probed_card->{Driver2};
$modules_conf->set_alias("/dev/nvidia*", $module);
}
if ($probed_card->{Driver2} eq 'fglrx' &&
-e "/usr/X11R6/lib/modules/dri/fglrx_dri.so" &&
-e "/usr/X11R6/lib/modules/drivers/fglrx_drv.o" &&
(-e "/lib/modules/$kernel_ver/kernel/drivers/char/fglrx.o.gz" ||
-e "/lib/modules/$kernel_ver/kernel/drivers/video/fglrx.ko" ||
-e "/lib/modules/$kernel_ver/kernel/drivers/video/fglrx.o")) {
$probed_card->{Driver} = $probed_card->{Driver2};
$probed_card->{use_DRI_GLX} = 1;
$module = $probed_card->{Driver2};
}
}
$card->{VideoRam} = $cmdline{xram} if defined($cmdline{xram});
hwdetect_loadmod($module, $probed_vendor, $card->{card_name});
print_hash($card) if $debug;
}
}
else {
print_warning();
$probed_card = {
Driver => 'fbdev',
description => 'Linux|Default Framebuffer Device',
VideoRam => 4096
};
my ($probed_vendor, $_probed_desc) = split(/\|/, $card->{description});
$probed_card->{Driver} = $cmdline{xdrv} if defined($cmdline{xdrv});
$probed_card->{VideoRam} = $cmdline{xram} if defined($cmdline{xram});
hwdetect_loadmod($module, $probed_vendor, $card->{card_name});
}
$probed_card;
}