From c9d4c56e182ac78927008186f96aa4958efc5259 Mon Sep 17 00:00:00 2001 From: Anssi Hannula Date: Sun, 4 Dec 2011 02:24:03 +0000 Subject: service_harddrake: show proper warning when a proprietary driver is wrongly loaded --- perl-install/standalone/service_harddrake | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'perl-install/standalone/service_harddrake') diff --git a/perl-install/standalone/service_harddrake b/perl-install/standalone/service_harddrake index 236ed3c77..f29636753 100755 --- a/perl-install/standalone/service_harddrake +++ b/perl-install/standalone/service_harddrake @@ -424,12 +424,21 @@ if (!$reboot_needed && text2bool($cfg{HANDLE_KMS_BOOT_CONFIG})) { # or free driver loaded while vesa is configured). my $kms_changed = Xconfig::various::setup_kms(); $reboot_needed |= $kms_changed; - if (!$reboot_needed && cat_("/proc/cmdline") !~ /\bnokmsboot\b/) { - # Wrong driver loaded but fixing the bootloader configuration failed. - # Possibly a direct boot from another bootloader. - dialog_with_timeout("warn", N("Display driver issue"), - N("The display driver currently configured requires you to use the 'nokmsboot' boot option to prevent the KMS driver of the kernel from being loaded in the boot process. Startup of the X server may now fail as that option was not specified."), - 60, $plymouth); + if (!$reboot_needed) { + my $kms_allowed = system("display_driver_helper", "--is-kms-allowed") == 0; + if (!$kms_allowed && cat_("/proc/cmdline") !~ /\bnokmsboot\b/) { + # Wrong driver loaded and boot parameters incorrect, but fixing the + # bootloader configuration failed. + # Possibly a direct boot from another bootloader. + dialog_with_timeout("warn", N("Display driver issue"), + N("The display driver currently configured requires you to use the 'nokmsboot' boot option to prevent the KMS driver of the kernel from being loaded in the boot process. Startup of the X server may now fail as that option was not specified."), + 60, $plymouth); + } else { + # Wrong driver loaded even while boot parameters were correct. + dialog_with_timeout("warn", N("Display driver issue"), + N("Detected a loaded display driver kernel module which conflicts with the driver the X server is configured to use. Startup of the X server may now fail."), + 60, $plymouth); + } } } elsif (-e "/dev/.late_kms") { # initrd didn't load the KMS driver; non-fatal but ugly, fix it for next boot -- cgit v1.2.1