Problema ao iniciar as UPSs da rede com um UPS Eaton 3S

8

Executando um servidor Ubuntu em um no-break Eaton 3S 700VA. A conexão USB da Eaton entra no meu servidor Ubuntu. Estou tentando usar NUT para gerenciar o no-break.

Depois de sudo su 'ing

cat /etc/nut/ups.conf :

[eaton]
    driver = usbhid-ups
    port = auto
    desc = "Eaton 3S"

upsdrvctl -t start

Network UPS Tools - UPS driver controller 2.6.1
*** Testing mode: not calling exec/kill
   0.000000 
   0.000805 Starting UPS: eaton
   0.000955 exec:  /lib/nut/usbhid-ups -a eaton

upsdrvctl start

Network UPS Tools - UPS driver controller 2.6.1
Network UPS Tools - Generic HID driver 0.35 (2.6.1)
USB communication driver 0.31
Can't claim USB device [0463:ffff]: could not detach kernel driver from interface 0: Operation not permitted
Driver failed to start (exit status=1)
    
por Zeophlite 18.03.2012 / 15:15

4 respostas

7

  • Você pode usar lsusb para descobrir o número do barramento e do dispositivo

  • Em seguida, altere a permissão para o dispositivo

    chmod 0666 /dev/bus/usb/[bus number]/[device number]
    

Por exemplo

$ lsusb
Bus 002 Device 004: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
$ chmod 0666 /dev/bus/usb/002/004
    
por marekNpl 28.02.2013 / 09:50
6

Embora eu não afirme ser um especialista aqui, estou preocupado que essa resposta não resulte em uma mudança de permissão persistente durante uma reinicialização e / ou o cabo USB da UPS seja movido para uma porta diferente.

Siga as informações aqui: Reflexões do Nannerpuss: NUT - Network UPS Tools - no Ubuntu .

"... O problema envolve o fato de que o Ubuntu monta o dispositivo como de propriedade de root, mas o daemon cai para uma conta sem privilégios que não tem o acesso necessário. A solução simples é usar o udev para ajustar o permissões de dispositivos.

Conecte o dispositivo e (como root) execute lsusb e localize-o. Observe os IDs de Barramento e Dispositivo, bem como o par Fornecedor: ID do Produto .... "

usando saída como na resposta acima:

$ lsusb
Bus 002 Device 004: ID 051d:0002 American Power Conversion Uninterruptible Power Supply   

novamente a partir do link "... Você pode criar uma regra do udev que controla o comportamento de montagem no boot: ..." (editada para corresponder melhor a esse cenário) "

  • use seu editor de texto favorito para criar (muito provavelmente) um novo arquivo udev rules.d. O número deve ser maior que qualquer outro arquivo de regras udev.d para a mesma ação:

por exemplo

sudo nano /etc/udev/rules.d/90-nut-ups.rules

# /etc/udev/rules.d/90-nut-ups.rules
ACTION=="add", \
SUBSYSTEM=="usb", \
ATTR{idVendor}=="051d", ATTR{idProduct}=="0002", \
MODE="0660", GROUP="nut"

A regra observa as adições de dispositivos USB com um fornecedor e um produto que correspondam ao no-break. Em seguida, define o modo para 0660 e o grupo para nut em vez da raiz padrão.

Observe que essa resposta usa 660 permissões em vez de 666, já que isso deve ser suficiente e mais seguro.

Recarregue o udev (reinicie ou, talvez, desconecte e conecte o cabo USB do no-break na porta do PC), desconecte e reconecte o dispositivo e teste se as novas permissões estão corretas. Eu não estou claro sobre esta parte. Em qualquer caso, uma vez que o grupo de usuários do nut tenha lido e gravado no dispositivo, ele poderá ser iniciado com êxito.

O udev rules.d edit funcionou no meu sistema 12.04.2, mesmo quando eu movi o cabo USB para uma porta diferente, resultando em números de dispositivos de barramento diferentes na saída lsusb. Udev lidou com tudo sem intervenção. Na verdade, talvez eu não tenha precisado reiniciar quando o movi, mas não consigo me lembrar com certeza e deixarei esse teste para outra pessoa.

    
por user122096 01.04.2013 / 03:21
2

sobre este erro:

 failed to claim USB device: could not claim interface 0: Operation not permitted

A FAQ do NUT no link tem essa (ênfase minha):

  

se o NUT tiver sido instalado recentemente,   e se o cabo USB do dispositivo já estiver conectado ao instalar a porca [então]    basta desconectar e reconectar o cabo USB e reiniciar   porca.

Esse truque funcionou para mim.

    
por ndemou 13.02.2015 / 15:16
0

Como o ndemou disse, o FAQ do NUT está ciente do problema, e um patch foi liberado, corrigindo o bug. Mas antigas distros estáveis podem ser afetadas. Espero que a solução seja muito simples ...

Na NUT FAQ: "Meu no-break USB é compatível, mas não funciona!" :

  

No Linux, as regras do udev são fornecidas para definir as permissões corretas   arquivo do dispositivo. Isso permite que o driver NUT se comunique com o no-break,   através deste arquivo de dispositivo.

     

No entanto, o driver ainda pode falhar ao iniciar e dar suporte ao dispositivo,   com uma mensagem como:

     

falhou ao reivindicar o dispositivo USB: não foi possível reivindicar a interface 0: a operação não   permitido

     

Operação não permitida é uma mensagem apontando para um problema de privilégio.   A questão mais frequente é que o udev não aplicou realmente   regra:

if NUT has been freshly installed,
and if the device USB cord was already plugged when installing NUT. 
     

Nesse caso, basta desconectar e reconectar o cabo USB e reiniciar   NUT.

     

Houve um erro na nomenclatura do arquivo de regras do NUT udev, que   Resultou nas regras sendo sobrescritas por outra configuração do udev   Arquivo. Enquanto isso foi corrigido no ramo mestre Git, o seu   distribuição ainda pode ser afetada. Detalhes estão disponíveis no   seguinte questão do Github:    link

Olhando mais para a questão do Github, forneça a solução:

  

As regras do udev são aplicadas tarde demais (prioridade 52), resultando em noz   privilégios sendo sobrescritos. O resultado final é que o motorista   não inicia, e a falha de conexão ao driver / UPS é relatada   pelo upsd e upsmon.

     

A correção é simplesmente definir a prioridade para 62 renomeando o arquivo de regras:

     

$ mv /lib/udev/rules.d/ {5,6} 2-nut-usbups.rules

     

Esse bug afeta:

Debian: http://bugs.debian.org/721600
Fedora / Redhat: https://bugzilla.redhat.com/show_bug.cgi?id=488368
Ubuntu: https://bugs.launchpad.net/debian/+source/nut/+bug/1099947 and probably all Linux distribution
    
por Trolabuntu 27.06.2015 / 11:42

Tags