diff options
-rw-r--r-- | perl-install/install2.pm | 1 | ||||
-rw-r--r-- | perl-install/modules.pm | 26 |
2 files changed, 10 insertions, 17 deletions
diff --git a/perl-install/install2.pm b/perl-install/install2.pm index 526c6c684..e2b45e7b0 100644 --- a/perl-install/install2.pm +++ b/perl-install/install2.pm @@ -390,6 +390,7 @@ sub miscellaneous { setVarsInSh($f, { MOUSE => bool2yesno($o->{mouse}{device} eq "usbmouse"), KBD => bool2yesno(int grep { /^keybdev\.c: Adding keyboard/ } detect_devices::syslog()), + ZIP => bool2yesno(-d "/proc/scsi/usb"), getVarsFromSh($f), }); diff --git a/perl-install/modules.pm b/perl-install/modules.pm index 4c85007c1..3cd097bc4 100644 --- a/perl-install/modules.pm +++ b/perl-install/modules.pm @@ -408,7 +408,7 @@ sub unload($;$) { my ($m, $remove_alias) = @_; if ($::testing) { log::l("rmmod $m"); - } else { + } else { run_program::run("rmmod", $m) && delete $conf{$m}{loaded}; } remove_alias($m) if $remove_alias; @@ -536,11 +536,18 @@ sub load_thiskind($;&$) { } if ($type eq 'scsi') { + #- hey, we're allowed to pci probe :) let's do a lot of probing! + + #- probe for USB SCSI. + if (my ($c) = grep { /usb-/ } map { $_->[1] } pci_probing::main::probe('')) { + eval { load($c, "SERIAL_USB"); load("usb-storage", $type); sleep(1); }; + -d "/proc/scsi/usb" ? push(@devs, [ "usb-storage", "usb-storage" ]) : unload("usb-storage"); + } + #- probe for parport SCSI. foreach ("imm", "ppa") { eval { load($_, $type); push @devs, [ $_, $_ ] }; last if !$@; } - #- hey, we're allowed to pci probe :) let's do a lot of probing! if (my ($c) = pci_probing::main::probe('AUDIO')) { add_alias("sound", $c->[1]) if pci_probing::main::check($c->[1]); } @@ -593,18 +600,3 @@ sub load_ide { load_multi(qw(ide-probe ide-disk ide-cd)); } } - -sub load_usbscsi { #- TODO - require pci_probing::main; - eval { - if (my ($c) = grep { /usb-/ } map { $_->[1] } pci_probing::main::probe('')) { - load($c, "SERIAL_USB"); load("usb-storage"); - sleep(1); - if (!$@ && -e "/proc/scsi/usb/0") { - return 1; - } - unload("usb-storage"); - } - }; - 0; -} |