diff options
-rw-r--r-- | perl-install/harddrake/data.pm | 8 | ||||
-rw-r--r-- | perl-install/modules.pm | 12 | ||||
-rwxr-xr-x | perl-install/standalone/harddrake2 | 5 | ||||
-rwxr-xr-x | perl-install/standalone/service_harddrake | 2 |
4 files changed, 23 insertions, 4 deletions
diff --git a/perl-install/harddrake/data.pm b/perl-install/harddrake/data.pm index 7a3060908..c03550acb 100644 --- a/perl-install/harddrake/data.pm +++ b/perl-install/harddrake/data.pm @@ -71,7 +71,13 @@ our @tree = string => N("Zip"), icon => "floppy.png", configurator => "", - detector => \&detect_devices::zips, + detector => sub { + my ($options) = @_; + if ($options->{PARALLEL_ZIP_DETECTION}) { + modules::load_parallel_zip($modules_conf) and $modules_conf->write; + } + detect_devices::zips(); + }, checked_on_boot => 1, automatic => 1, }, diff --git a/perl-install/modules.pm b/perl-install/modules.pm index 4f4d3b3f2..eb1203ca5 100644 --- a/perl-install/modules.pm +++ b/perl-install/modules.pm @@ -122,7 +122,6 @@ sub load_category { my @try_modules = ( if_($category =~ /scsi/, - if_(arch() !~ /ppc/, 'parport_pc', 'imm', 'ppa'), if_(detect_devices::usbStorage(), 'usb-storage'), ), arch() =~ /ppc/ ? ( @@ -145,6 +144,17 @@ sub load_category { map { { driver => $_, description => $_, try => 1 } } @try_modules; } +sub load_parallel_zip { + my ($conf) = @_; + + arch() !~ /ppc/ or return; + + eval { modules::load('parport_pc') }; + grep { + eval { modules::load_and_configure($conf, $_); 1 }; + } 'imm', 'ppa'; +} + sub probe_category { my ($category) = @_; diff --git a/perl-install/standalone/harddrake2 b/perl-install/standalone/harddrake2 index b086e1a1e..ef6353d72 100755 --- a/perl-install/standalone/harddrake2 +++ b/perl-install/standalone/harddrake2 @@ -180,6 +180,7 @@ my %menu_options = ( 'PRINTERS_DETECTION' => [ $menus{options}, N("/Autodetect _printers") ], 'MODEMS_DETECTION' => [ $menus{options}, N("/Autodetect _modems") ], 'JAZZ_DETECTION' => [ $menus{options}, N("/Autodetect _jaz drives") ], + 'PARALLEL_ZIP_DETECTION' => [ $menus{options}, N("/Autodetect parallel _zip drives") ], ); @@ -194,6 +195,8 @@ my @menu_items = sub { $options{MODEMS_DETECTION} = $check_boxes{MODEMS_DETECTION}->get_active }, undef, '<CheckItem>' ], [ join('', @{$menu_options{JAZZ_DETECTION}}), undef, sub { $options{JAZZ_DETECTION} = $check_boxes{JAZZ_DETECTION}->get_active }, undef, '<CheckItem>' ], + [ join('', @{$menu_options{PARALLEL_ZIP_DETECTION}}), undef, + sub { $options{PARALLEL_ZIP_DETECTION} = $check_boxes{PARALLEL_ZIP_DETECTION}->get_active }, undef, '<CheckItem>' ], [ $menus{help}, undef, undef, undef, '<Branch>' ], if_(-x "/usr/sbin/drakhelp_inst", [ $menus{help} . N("/_Help"), undef, sub { unless (fork()) { exec("drakhelp --id harddrake") } }, undef, '<Item>' ], @@ -359,7 +362,7 @@ foreach my $hw_class (@harddrake::data::tree) { next if $Ident =~ /MODEM/ && !$options{MODEMS_DETECTION}; next if $Ident =~ /PRINTER/ && !$options{PRINTERS_DETECTION}; - my @devices = &$detector; + my @devices = $detector->(\%options); next unless @devices; # Skip empty class (no devices) push @classes, [ $Ident, $title, $icon, $configurator, @devices ]; } diff --git a/perl-install/standalone/service_harddrake b/perl-install/standalone/service_harddrake index 644bd56bc..fedd0fd58 100755 --- a/perl-install/standalone/service_harddrake +++ b/perl-install/standalone/service_harddrake @@ -92,7 +92,7 @@ foreach my $hw_class (@harddrake::data::tree) { my $i = $_; my $id = defined $i->{device} ? $i->{device} : join(':', map { $i->{$_} } qw(vendor id subvendor subid)); $id => $i; - } eval { &$detector }; + } eval { $detector->({}) }; $config{$Ident} = \%ID; next if !$is_globetrotter && !$force && is_empty_hash_ref($previous_config); # do not fsck on first run but if --force |