diff options
author | Pascal Rigaux <pixel@mandriva.com> | 1999-09-03 09:43:22 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 1999-09-03 09:43:22 +0000 |
commit | 3635161f628098787b71456e735c9ad87578930f (patch) | |
tree | 6e8df857210378709669328caaa249e95aad7355 /perl-install/detect_devices.pm | |
parent | 2fe429a1283bb382c14b3657ab9f752a8b240233 (diff) | |
download | drakx-3635161f628098787b71456e735c9ad87578930f.tar drakx-3635161f628098787b71456e735c9ad87578930f.tar.gz drakx-3635161f628098787b71456e735c9ad87578930f.tar.bz2 drakx-3635161f628098787b71456e735c9ad87578930f.tar.xz drakx-3635161f628098787b71456e735c9ad87578930f.zip |
no_comment
Diffstat (limited to 'perl-install/detect_devices.pm')
-rw-r--r-- | perl-install/detect_devices.pm | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/perl-install/detect_devices.pm b/perl-install/detect_devices.pm index 23c58ba7d..c0cdb221d 100644 --- a/perl-install/detect_devices.pm +++ b/perl-install/detect_devices.pm @@ -8,7 +8,7 @@ use common qw(:common :file); use devices; use c; - +my @netdevices = map { my $l = $_; map { "$l$_" } (0..3) } qw(eth tr plip fddi); my $scsiDeviceAvailable; my $CSADeviceAvailable; @@ -99,7 +99,6 @@ sub getIDE() { @idi; } - sub getCompaqSmartArray() { my @idi; my $f; @@ -117,15 +116,10 @@ sub getCompaqSmartArray() { sub getDAC960() { my @idi; - my $file = "/var/log/dmesg"; - -r $file or $file = "/tmp/syslog"; - - local *F; - open F, $file or die "Failed to open $file: $!"; # We are looking for lines of this format:DAC960#0: # /dev/rd/c0d0: RAID-7, Online, 17928192 blocks, Write Thru0123456790123456789012 - foreach (<F>) { + foreach (syslog()) { my ($devicename, $info) = m|/dev/rd/(.*?): (.*?),| or next; push @idi, { info => $info, type => 'hd', devicename => $devicename }; log::l("DAC960: $devicename: $info"); @@ -133,9 +127,23 @@ sub getDAC960() { @idi; } +sub net2module { + my @modules = map { quotemeta first(split) } cat_("/proc/modules"); + my $modules = join '|', @modules; + my $net = join '|', @netdevices; + my ($module, %l); + foreach (syslog()) { + if (/^($modules)\.c:/) { + $module = $1; + } elsif (/^($net):/) { + $l{$1} = $module if $module; + } + } + %l; +} sub getNet() { - grep { hasNetDevice($_) } qw(eth0 eth1 eth2 eth3 tr0 plip0 plip1 plip2 fddi0); + grep { hasNetDevice($_) } @netdevices; } sub getPlip() { foreach (0..2) { @@ -154,3 +162,10 @@ sub tryOpen($) { local *F; sysopen F, devices::make($_[0]), c::O_NONBLOCK(); } + +sub syslog { + my $file = "/var/log/dmesg"; + -r $file or $file = "/tmp/syslog"; + cat_($file); + `dmesg`; +} |