summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancois Pons <fpons@mandriva.com>2001-06-06 08:11:36 +0000
committerFrancois Pons <fpons@mandriva.com>2001-06-06 08:11:36 +0000
commit091b6bef31170f0a00d21ae6b07a8ba041bbc41b (patch)
treecf77f17def86f248664e3680e705831be0b70335
parent5d165fecad7ba9831fc47d47dc9d9a0a0ca66ea1 (diff)
downloaddrakx-091b6bef31170f0a00d21ae6b07a8ba041bbc41b.tar
drakx-091b6bef31170f0a00d21ae6b07a8ba041bbc41b.tar.gz
drakx-091b6bef31170f0a00d21ae6b07a8ba041bbc41b.tar.bz2
drakx-091b6bef31170f0a00d21ae6b07a8ba041bbc41b.tar.xz
drakx-091b6bef31170f0a00d21ae6b07a8ba041bbc41b.zip
fixed burner and dvd drive detection ;-)
c::isBurner seems to detect both IDE and SCSI drive and description does not necessary contains CDRW substring (for info). c::isDvdDrive is unable to detect SCSI drive (at least one tested) but DVD substring is quite nicely well represented, and there is few DVD drive available as SCSI (pionneer?)
-rw-r--r--perl-install/detect_devices.pm26
1 files changed, 8 insertions, 18 deletions
diff --git a/perl-install/detect_devices.pm b/perl-install/detect_devices.pm
index 754870662..ab4488f45 100644
--- a/perl-install/detect_devices.pm
+++ b/perl-install/detect_devices.pm
@@ -49,8 +49,8 @@ sub cdroms() {
}
@l;
}
-sub burners { grep { $_->{type} eq 'cdrom' && isBurner($_->{device}) } get() }
-sub IDEburners { grep { $_->{type} eq 'cdrom' && isBurner($_->{device}) } getIDE() }
+sub burners { grep { $_->{type} eq 'cdrom' && isBurner($_) } get() }
+sub IDEburners { grep { $_->{type} eq 'cdrom' && isBurner($_) } getIDE() }
sub dvdroms { grep { $_->{type} eq 'cdrom' && isDvdDrive($_) } get() }
sub get_mac_model() {
@@ -71,23 +71,13 @@ sub floppy { first(floppies()) }
#- example ls120, model = "LS-120 SLIM 02 UHD Floppy"
sub isBurner {
- my ($dev) = @_;
- if (my ($nb) = $dev =~ /scd (.*)/x) {
- grep { /^(scd|sr)$nb:.*writer/ } syslog();
- } else {
- my $f = tryOpen($dev);
- $f && c::isBurner(fileno($f));
- }
+ my $f = tryOpen($_[0]{device}); #- SCSI burner seems to be detected this way.
+ $f && c::isBurner(fileno($f));
}
-sub isDvdDrive {
- my ($dev) = @_;
- if (my ($nb) = $dev =~ /scd (.*)/x) {
- # can't detect SCSI DVD
- undef;
- } else {
- my $f = tryOpen($dev);
- $f && c::isDvdDrive(fileno($f));
- }
+sub isDvdDrive {
+ $_[0]{info} =~ /DVD/; #- SCSI DVD seems not to be detected correctly, so use another probe after.
+ my $f = tryOpen($_[0]{device});
+ $f && c::isDvdDrive(fileno($f));
}
sub isZipDrive { $_[0]->{info} =~ /ZIP\s+\d+/ } #- accept ZIP 100, untested for bigger ZIP drive.
#-sub isJazzDrive { $_[0]->{info} =~ /JAZZ?\s+/ } #- untested.