Ağ UPS Araçlarını Eaton 3S UPS ile başlatmada sorun


10

Eaton 3S 700VA UPS üzerinde bir Ubuntu Sunucusu çalıştırmak. Eaton'ın USB bağlantısı Ubuntu Sunucuma gidiyor. UPS'i yönetmek için NUT kullanmaya çalışıyorum .

Sonra 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)

Yanıtlar:


10

Burada uzman olduğumu iddia etmeme rağmen, bu cevabın yeniden başlatma sırasında kalıcı bir izin değişikliğine neden olmayacağından endişe ediyorum ve / veya UPS'ten gelen usb kablosu farklı bir porta taşındı.

Buradan gelen bilgileri takip ederek: Nannerpuss'un özellikleri: NUT - Ağ UPS Araçları - Ubuntu üzerinde .

"... Sorun, Ubuntu'nun cihazı root'a ait olarak bağlaması gerçeğini içeriyor, ancak nut daemon, gerekli erişime sahip olmayan ayrıcalıklı bir hesaba düşüyor. Basit düzeltme, cihaz izinlerini ayarlamak için udev'i kullanmaktır.

Cihazı bağlayın ve (root olarak) lsusb'yi çalıştırın ve bulun. Veri Yolu ve Aygıt Kimlikleri ile Satıcı: Ürün Kimliği çiftini not alın .... "

yukarıdaki cevap gibi çıkış kullanarak:

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

yine "... boot sırasında bağlama davranışını kontrol eden bir udev kuralı oluşturabilirsiniz: ..." (bu senaryo ile daha iyi eşleşecek şekilde düzenlenmiştir) "

  • (büyük olasılıkla) yeni bir udev rules.d dosyası yapmak için favori metin düzenleyicinizi kullanın. Aynı işlem için sayı diğer tüm udev.d kurallarından daha yüksek olmalıdır:

Örneğin

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"

Kural, UPS ile eşleşen bir satıcı ve ürünle USB cihazı eklemelerini izler. Daha sonra modu 0660 ve grubu varsayılan kök yerine somun olarak ayarlar.

Bu yanıtın 666 yerine 660 iznini kullandığına dikkat edin, çünkü bu yeterli ve daha güvenli olmalıdır.

Udev'i yeniden yükleyin (yeniden başlatın veya belki de fişini çıkarın ve usb kablosunu pc bağlantı noktasındaki UPS'den yeniden takın), ardından cihazın bağlantısını kesin ve yeniden bağlayın ve yeni izinlerin doğru olup olmadığını test edin. Bu konuda net değilim. Her durumda, somun kullanıcı grubu cihazı okuyup yazdıktan sonra, başarıyla başlayabilmelidir.

Udev rules.d düzenleme, USB kablosunu farklı bir porta taşıdığımda bile 12.04.2 sistemimde işe yaradı ve lsusb çıkışında farklı Bus Cihazı numaralarına neden oldu. Udev hepsini müdahale etmeden halletti. Aslında, onu hareket ettirdiğimde yeniden başlatmak zorunda kalmamış olabilirim ama kesin olarak hatırlayamıyorum ve bu testi başka birine bırakacağım.


Bunun Ubuntu 12.04'te bir APC Back-UPS CS 650 ile benim için iyi çalıştığını gördüm.
Paul Gear

Bu ubuntu'da bir hata olarak rapor edilmemeli mi? ve resmi fındık paketinde sabit?
Jarl

Bu işe yarıyor, ancak biraz aşağı kaydırma ve daha yeni "bu hata zaten düzeltildi" mesajı (özellikle: /lib/udev/rules.d/62-nut-usbups.rulesşimdi kuruldu) bu çözümün teknik olarak eski olduğu anlamına geliyor.
dannysauer

9
  • lsusbOtobüs ve cihaz numarasını bulmak için kullanabilirsiniz

  • Ardından cihazın iznini değiştirin

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

Örneğin

$ lsusb
Bus 002 Device 004: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
$ chmod 0666 /dev/bus/usb/002/004

3

bu hatayla ilgili olarak:

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

Http://www.networkupstools.org/docs/FAQ.html adresindeki NUT SSS'de (vurgu mayını):

NUT yeni takılmışsa ve somun takılırken aygıt USB kablosu zaten takılıysa [o zaman] sadece USB kablosunu çıkarıp geri takın, ardından somunu yeniden başlatın.

Bu numara benim için çalıştı.


Ben udev ( sudo systemctl restart udev) yeniden başlatmak ve sonra FWIW UPS fişini / fişini çekmek zorunda kaldı .
dannysauer

1

Dediğin gibi, SOMUN SSS sorununun farkındadır ve bir düzeltme eki yayınlanarak hatayı düzeltir. Ancak eski istikrarlı dağıtımlar etkilenebilir. Umarım çözüm çok basittir ...

SOMUN SSS'den: "USB UPS'im destekleniyor, ancak çalışmıyor!" :

Linux'ta, aygıt dosyasında doğru izinleri ayarlamak için udev kuralları sağlanır. Bu, NUT sürücüsünün UPS ile bu cihaz dosyası üzerinden iletişim kurmasını sağlar.

Ancak, sürücü yine de aşağıdaki gibi bir mesajla cihazı başlatamaz ve desteklemeyebilir:

USB cihazı talep edilemedi: arayüz 0 talep edilemedi: İşleme izin verilmiyor

İşleme izin verilmiyor bir ayrıcalık sorununa işaret eden bir mesajdır. En sık karşılaşılan sorun udev'in kuralı uygulamadığıdır:

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

Bu durumda, USB kablosunu çıkarıp tekrar takın, ardından NUT'u yeniden başlatın.

NUT udev kural dosyasının adlandırılmasında bir hata oluştu, bu da kuralların başka bir udev yapılandırma dosyası tarafından geçersiz kılınmasına neden oldu. Bu Git ana dalında giderilmiş olsa da, dağıtımınız yine de etkilenebilir. Ayrıntılar aşağıdaki Github sayısında mevcuttur: https://github.com/networkupstools/nut/issues/140

Github sorununa daha fazla bakmak bana çözüm sunar:

udev kuralları çok geç uygulanır (öncelik 52), bu da somun ayrıcalıklarının üzerine yazılmasına neden olur. Nihai sonuç, sürücünün başlamaması ve sürücüye / UPS'e bağlantı arızasının upd ve upmon tarafından bildirilmesidir.

Çözüm, kurallar dosyasını yeniden adlandırarak önceliği 62 olarak ayarlamaktır:

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

Bu hata şunları etkiler:

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

0

UPS'inizin USB kablosundan uzaksanız (yeni yeni UPS'yi takıp aylar sonra zamanınız olmadığından yapılandırmayı yaparsanız) ve makinenizi yeniden başlatmak bir seçenek değilse, udev kurallarını geri alabilirsiniz:

udevadm control --reload
udevadm trigger
systemctl restart nut-server

İşi yapar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.