summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <tvignaud@mandriva.org>2004-10-27 16:36:27 +0000
committerThierry Vignaud <tvignaud@mandriva.org>2004-10-27 16:36:27 +0000
commitf37f1c52940055fd6363215ad9e0654df1053072 (patch)
tree09c4d811e9ba4f3cd4d5a89ceb3c663578d28bd7
parentc0b05f8301aa8b14a5006caeea3c1d29fc91cab0 (diff)
downloaddrakx-f37f1c52940055fd6363215ad9e0654df1053072.tar
drakx-f37f1c52940055fd6363215ad9e0654df1053072.tar.gz
drakx-f37f1c52940055fd6363215ad9e0654df1053072.tar.bz2
drakx-f37f1c52940055fd6363215ad9e0654df1053072.tar.xz
drakx-f37f1c52940055fd6363215ad9e0654df1053072.zip
(getUPS) fix again MGE USB UPSes
-rw-r--r--perl-install/detect_devices.pm38
1 files changed, 18 insertions, 20 deletions
diff --git a/perl-install/detect_devices.pm b/perl-install/detect_devices.pm
index 60ce4c30d..30468a820 100644
--- a/perl-install/detect_devices.pm
+++ b/perl-install/detect_devices.pm
@@ -516,29 +516,27 @@ sub getNet() {
# mapgrep(sub {member (($_[0] =~ /\s*(\w*):/), @netdevices), $1 }, split(/\n/, cat_("/proc/net/dev")));
#}
-# heavily inspirated from hidups driver from nut:
sub getUPS() {
- # nut/driver/hidups.h:
- my $UPS_USAGE = 0x840004;
- my $POWER_USAGE = 0x840020;
- my $hiddev_find_application = sub {
- my ($fd, $usage) = @_;
- my $i = 0;
- my $ret;
- do { $i++ } while ($ret = ioctl($fd, c::HIDIOCAPPLICATION(), $i)) && $ret != $usage;
- return $ret == $usage ? 1 : 0;
- };
+ # MGE serial PnP devices:
+ my @usb_devices = map { ($_->{name} = $_->{description}) =~ s/.*\|//; $_ } usb_probe();
- (map { $_->{driver} = "mge-shut"; $_ } grep { $_->{DESCRIPTION} =~ /MGE UPS/ } values %serialprobe),
(map {
- open(my $f, $_);
- if_(!$hiddev_find_application->($f, $UPS_USAGE) && !$hiddev_find_application->($f, $POWER_USAGE),
- { port => $_,
- name => c::get_usb_ups_name(fileno($f)),
- driver => "hidups",
- }
- );
- } -e "/dev/.devfsd" ? glob("/dev/usb/hid/hiddev*") : glob("/dev/usb/hiddev*"));
+ $_->{port} = $_->{DEVICE};
+ $_->{bus} = "Serial";
+ $_->{driver} = "mge-utalk" if $_->{MODEL} =~ /0001/;
+ $_->{driver} = "mge-shut" if $_->{MODEL} =~ /0002/;
+ $_->{media_type} = 'UPS';
+ $_->{description} = "MGE UPS SYSTEMS|UPS - Uninterruptible Power Supply" if $_->{MODEL} =~ /000[12]/;
+ $_;
+ } grep { $_->{DESCRIPTION} =~ /MGE UPS/ } values %serialprobe),
+ # USB UPSs;
+ (grep { $_->{description} =~ /American Power Conversion\|Back-UPS/ } @usb_devices),
+ (map {
+ $_->{port} = "auto";
+ $_->{media_type} = 'UPS';
+ $_->{driver} = 'newhidups';
+ $_;
+ } grep { $_->{driver} =~ /ups$/ } @usb_devices);
}
$pcitable_addons = <<'EOF';