summaryrefslogtreecommitdiffstats
path: root/perl-install/modules.pm
diff options
context:
space:
mode:
authorFrancois Pons <fpons@mandriva.com>2000-05-29 17:16:56 +0000
committerFrancois Pons <fpons@mandriva.com>2000-05-29 17:16:56 +0000
commitd72ffade4e086fa3eb0f7904a4141dea3ad91705 (patch)
treebdbc9fce22747c2a19f980b087c2b5f0a3ae3618 /perl-install/modules.pm
parent436a081d985d376060908b1db436a6ad2691d593 (diff)
downloaddrakx-d72ffade4e086fa3eb0f7904a4141dea3ad91705.tar
drakx-d72ffade4e086fa3eb0f7904a4141dea3ad91705.tar.gz
drakx-d72ffade4e086fa3eb0f7904a4141dea3ad91705.tar.bz2
drakx-d72ffade4e086fa3eb0f7904a4141dea3ad91705.tar.xz
drakx-d72ffade4e086fa3eb0f7904a4141dea3ad91705.zip
*** empty log message ***
Diffstat (limited to 'perl-install/modules.pm')
-rw-r--r--perl-install/modules.pm22
1 files changed, 13 insertions, 9 deletions
diff --git a/perl-install/modules.pm b/perl-install/modules.pm
index 69b9a884e..a2cf61b2d 100644
--- a/perl-install/modules.pm
+++ b/perl-install/modules.pm
@@ -352,6 +352,7 @@ sub get_options {
sub add_alias($$) {
my ($alias, $name) = @_;
+ $name =~ /ignore/ and return;
/\Q$alias/ && $conf{$_}{alias} && $conf{$_}{alias} eq $name and return $_ foreach keys %conf;
$alias .= $scsi++ || '' if $alias eq 'scsi_hostadapter';
log::l("adding alias $alias to $name");
@@ -380,8 +381,6 @@ sub load {
} else {
$conf{$name}{loaded} and return;
-#- $type ||= ($drivers{$name} || { type => 'unknown'})->{type};
-
eval { load($_, 'prereq') } foreach @{$deps{$name}};
load_raw([ $name, @options ]);
}
@@ -421,8 +420,7 @@ sub unload($;$) {
}
sub load_raw {
- my @l = map { my ($i, @i) = @$_; [ $i, \@i ] } @_;
-
+ my @l = map { my ($i, @i) = @$_; [ $i, \@i ] } grep { $_->[0] !~ /ignore/ } @_;
my $cz = "/lib/modules" . (arch() eq 'sparc64' && "64") . ".cz"; -e $cz or $cz .= "2";
run_program::run("extract_archive", $cz, "/tmp", map { "$_->[0].o" } @l);
my @failed = grep {
@@ -528,17 +526,22 @@ sub read_stage1_conf {
sub load_thiskind($;&$) {
my ($type, $f, $pcic) = @_;
+ my %loaded_text;
require pci_probing::main;
my @pcidevs = pci_probing::main::probe($type);
log::l("pci probe found " . scalar @pcidevs . " $type devices");
+ require sbus_probing::main;
+ my @sbusdevs = sbus_probing::main::probe($type);
+ log::l("sbus probe found " . scalar @sbusdevs . " $type devices");
+
my @pcmciadevs = get_pcmcia_devices($type, $pcic);
log::l("pcmcia probe found " . scalar @pcmciadevs . " $type devices");
- my @devs = (@pcidevs, @pcmciadevs);
+ my @devs = (@pcidevs, @sbusdevs, @pcmciadevs);
- load("sd_mod") if $type eq 'scsi' && @devs;
+ load("sd_mod") if arch() !~ /sparc/ && $type eq 'scsi' && @devs;
my %devs; foreach (@devs) {
my ($text, $mod) = @$_;
@@ -547,6 +550,7 @@ sub load_thiskind($;&$) {
log::l("found driver for $mod");
&$f($text, $mod) if $f;
load($mod, $type);
+ $loaded_text{$mod} = $text;
}
if ($type eq 'scsi') {
@@ -558,17 +562,17 @@ sub load_thiskind($;&$) {
-d "/proc/scsi/usb" or unload("usb-storage");
}
#- probe for parport SCSI.
- if (arch() !~ /sparc|alpha/) {
+ if (arch() !~ /sparc/) {
foreach ("imm", "ppa") {
eval { load($_, $type) };
last if !$@;
}
}
- if (my ($c) = pci_probing::main::probe('AUDIO')) {
+ if (my ($c) = (pci_probing::main::probe('AUDIO'), sbus_probing::main::probe('AUDIO'))) {
add_alias("sound", $c->[1]) if pci_probing::main::check($c->[1]);
}
}
- @{$loaded{$type} || []};
+ map { $loaded_text{$_} || $_ } @{$loaded{$type} || []};
}
sub pcmcia_need_config($) {