From f37f1c52940055fd6363215ad9e0654df1053072 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Wed, 27 Oct 2004 16:36:27 +0000 Subject: (getUPS) fix again MGE USB UPSes --- perl-install/detect_devices.pm | 38 ++++++++++++++++++-------------------- 1 file 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'; -- cgit v1.2.1