All pastes #429302 Raw Edit

Someone

public text v1 · immutable
·published 2007-04-08 04:24 UTC
rendered paste body
sub 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;
}