diff options
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | lib/Xconfig/card.pm | 18 |
2 files changed, 23 insertions, 0 deletions
@@ -1,3 +1,8 @@ +- XFdrake: + o add support for xdriver=DRIVER kernel boot option that affects + non-interactive device autodetection, e.g. One boot + (special value xdriver=free disables proprietary drivers) + Version 0.70 - 20 March 2009 - mousedrake: 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); |