From ada4645d8e98d36b3dee1a1e8bf31e0b7cd34c62 Mon Sep 17 00:00:00 2001 From: Anssi Hannula Date: Thu, 2 Apr 2009 16:43:37 +0000 Subject: Add support for boot option xdriver=foo for overriding the driver in non-interactive probe. Allowed special values: auto = normal mode free = only use free drivers Last entry on commandline is used. --- lib/Xconfig/card.pm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'lib/Xconfig') diff --git a/lib/Xconfig/card.pm b/lib/Xconfig/card.pm index 6245798..f093323 100644 --- a/lib/Xconfig/card.pm +++ b/lib/Xconfig/card.pm @@ -218,6 +218,24 @@ sub configure_auto_install { } } + my ($boot_xdriver) = cat_("/proc/cmdline") =~ /.*\bxdriver=(\S+)/; + + $options->{freedriver} = 1 if $boot_xdriver eq 'free'; + + if (!$card->{Driver} && $boot_xdriver && !member($boot_xdriver, 'auto', 'free')) { + log::explanations("using driver $boot_xdriver from kernel command line"); + $card = { + Driver => $boot_xdriver, + description => "Set by boot parameter", + VendorName => "Custom", + BoardName => "Set by boot parameter", + }; + if ($force_driver =~ /^(nvidia.|fglrx)/) { + $card->{Driver} = "vesa"; + $card->{Driver2} = $boot_xdriver; + } + } + if (!$card->{Driver}) { my @cards = probe(); my ($choice) = multi_head_choices($old_X->{Xinerama}, @cards); -- cgit v1.2.1