apcupsd no Linux não vê o APC BackUPS Pro 900 em USB

1

De qual documentação eu pude encontrar, o UPS é suportado no Linux e é relatado que ele está trabalhando com apcupsd .

Procurei problemas específicos, como o infame protocolo Microlink, e não encontrei nenhum.

Eu encontrei um feedback de um cara no Reino Unido que relata usando este mesmo modelo em uma versão do sistema não muito diferente (seu OpenSuSE 12.1, meu 12.3 x86_64).

A porta USB é detectada, lsusb relata como sendo usado por um APC:

Bus 002 Device 003: ID 051d:0002 American Power Conversion Uninterruptible Power Supply

e lsusb -v -s002:003 confirmam e expandem:

Bus 002 Device 003: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x051d American Power Conversion
  idProduct          0x0002 Uninterruptible Power Supply
  bcdDevice            0.90
  iManufacturer           1 American Power Conversion
  iProduct                2 Back-UPS RS 900G FW:879.L4 .I USB FW:L4
  bNumConfigurations      1
  Configuration Descriptor:
    [...]
    Interface Descriptor:
      [...]
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode           33 US
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength    1134
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval             100
Device Status:     0x0000
  (Bus Powered)

O kernel reconhece isso e configura um dispositivo de interface humana

crw------- 1 root root 180, 96 Nov  4 16:11 /dev/usb/hiddev0

Então, até onde eu sei, tudo é como deveria ser.

Eu coloquei a configuração padrão em /etc/apcupsd/apcupsd.conf (que é terminada em Unix, somente em ASCII, sem BOM (apenas no caso))

UPSCABLE usb
UPSTYPE  usb
DEVICE

(Eu também tentei comentar DEVICE e definir um dispositivo de /dev/puppa resulta em uma tentativa de acesso a /dev/puppa , não em alguns /var/lib/dev/puppa ou /dev/puppa\r\n ).

No entanto, o que apcaccess me diz é "não há UPS aqui, desculpe":

VERSION  : 3.14.10 (13 September 2011) suse
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2013-11-04 16:24:22 +0100
MODEL    :
STATUS   : NOBATT
LINEV    : 000.0 Volts
LOADPCT  :   0.0 Percent Load Capacity
BCHARGE  : 000.0 Percent
TIMELEFT :   0.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
SENSE    : Low
LOTRANS  : 000.0 Volts
HITRANS  : 000.0 Volts

Não reconhece o modelo e não reporta bateria (nem tensão). Isso confirma que não é o problema do Microlink, ou seria informar o status da bateria, se não for muito mais que isso.

Se eu desconectar o cabo USB, recebo uma mensagem apcupsd informando que as comunicações foram perdidas; e recebo a transmissão "comunicação restaurada" também, se eu reconectar o cabo. Então apcupsd é monitoramento.

Então tudo me diz que deve funcionar - só isso não funciona . Aparentemente, o no-break não vai falar com apcupsd . Alguém percebe o que eu sinto falta?

    
por LSerni 04.11.2013 / 16:37

1 resposta

2

Eu encontrei um caso similar (re: um modelo diferente de UPS, mas ainda USB) que tinha sido resolvido pelo método voodoo de mudar a porta USB. Então eu tentei. Funcionou .

A saída de lsusb para as duas portas (a que funciona e a que não funciona) é idêntica, exceto por este detalhe:

Device Status:     0x0000           <-- old port
  (Bus Powered)

Device Status:     0x0002           <-- new port
  (Bus Powered)
  Remote Wakeup Enabled

Eu não sei se isso significa que a primeira porta não tinha 'Remote Wakeup', o que por alguns motivos foi requerido por apcupsd (talvez para suportar ativação-na-alimentação-back ?), Ou esta porta é reconhecida por algum razão totalmente diferente, e devido ao seu reconhecimento, um Remote Wakeup é ativado anteriormente.

No entanto, se eu colocar o UPC novamente na porta antiga, ele deixará de funcionar novamente, enquanto na nova porta eu recebo apcaccess relatórios, como esperado,

MODEL    : Back-UPS RS 900G
STATUS   : ONLINE
LINEV    : 231.0 Volts
LOADPCT  :  10.0 Percent Load Capacity
BCHARGE  : 100.0 Percent
TIMELEFT : 118.4 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
SENSE    : Medium
LOTRANS  : 176.0 Volts
HITRANS  : 294.0 Volts
ALARMDEL : 30 seconds
BATTV    : 27.3 Volts
    
por 06.11.2013 / 10:59