ईटन 3 एस यूपीएस के साथ नेटवर्क यूपीएस उपकरण शुरू करने में परेशानी


10

एक Eaton 3S 700VA यूपीएस पर एक Ubuntu सर्वर चल रहा है। ईटन का यूएसबी कनेक्शन मेरे उबंटू सर्वर में चला जाता है। मैं UPS को प्रबंधित करने के लिए NUT का उपयोग करने का प्रयास कर रहा हूं ।

sudo su'आईएनजी के बाद

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)

जवाबों:


10

हालांकि मैं यहां एक विशेषज्ञ होने का दावा नहीं करता हूं, मुझे चिंता है कि इस उत्तर के परिणामस्वरूप रिबूट पर लगातार अनुमति परिवर्तन नहीं होगा, और / या यूपीएस से यूएसबी केबल एक अलग पोर्ट में स्थानांतरित हो जाता है।

यहाँ से जानकारी के बाद: मसनिंग ऑफ़ द नाननरपस: NUT - नेटवर्क UPS टूल्स - उबंटू पर

"... समस्या में यह तथ्य शामिल है कि उबंटू डिवाइस को रूट के स्वामित्व में रखता है, लेकिन नट डेमॉन एक अनप्रीविलेज खाते में चला जाता है, जिसमें आवश्यक पहुंच नहीं होती है। डिवाइस फिक्स को समायोजित करने के लिए सरल फिक्स udev का उपयोग करना है।

डिवाइस कनेक्ट करें और (रूट के रूप में) lsusb चलाएं और इसे ढूंढें। बस और डिवाइस आईडी के साथ-साथ विक्रेता: उत्पाद आईडी जोड़ी पर ध्यान दें ...। "

उपरोक्त उत्तर में आउटपुट का उपयोग करना:

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

फिर से लिंक "... आप एक udv नियम बना सकते हैं जो बूट पर माउंट व्यवहार को नियंत्रित करता है: ..." (इसे बेहतर तरीके से मिलान करने के लिए संपादित किया गया) "

  • एक नया udev rules.d फ़ाइल बनाने के लिए अपने पसंदीदा पाठ संपादक का उपयोग करें (सबसे अधिक संभावना है)। समान कार्रवाई के लिए संख्या किसी अन्य udev.d नियमों की फ़ाइल से अधिक होनी चाहिए:

उदाहरण के लिए

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"

नियम USB डिवाइस के लिए एक विक्रेता और उत्पाद के साथ देखता है जो यूपीएस से मेल खाता है। यह तब मोड को 0660 पर सेट करता है और समूह को डिफ़ॉल्ट रूट के बजाय नट करने के लिए।

ध्यान दें कि यह उत्तर 666 के बजाय 660 अनुमति का उपयोग करता है क्योंकि यह पर्याप्त और अधिक सुरक्षित होना चाहिए।

रीलोड udv (रिबूट, या शायद अनप्लगिंग फिर पीसी पोर्ट पर यूपीएस से यूएसबी केबल को प्लग करना), फिर डिवाइस को डिस्कनेक्ट करें और फिर से कनेक्ट करें और परीक्षण करें कि नई अनुमतियां सही हैं। मैं इस हिस्से पर स्पष्ट नहीं हूं। किसी भी मामले में, एक बार अखरोट उपयोगकर्ता समूह ने डिवाइस पर पढ़ा और लिखा है, यह सफलतापूर्वक शुरू करने में सक्षम होना चाहिए।

Udv rules.d edit ने मेरे 12.04.2 सिस्टम पर तब भी काम किया, जब मैंने USB केबल को एक अलग पोर्ट में स्थानांतरित किया, जिसके परिणामस्वरूप lsusb आउटपुट पर अलग-अलग Bus Device नंबर आए। उदय ने बिना किसी हस्तक्षेप के सभी को संभाला। वास्तव में, जब मैंने इसे स्थानांतरित किया तो मुझे रिबूट नहीं करना पड़ा हो सकता है लेकिन यह सुनिश्चित करने के लिए याद नहीं कर सकता है और उस परीक्षण को किसी और को छोड़ देगा।


मैंने पाया कि उबंटू 12.04 पर एपीसी बैक-यूपीएस सीएस 650 के साथ यह मेरे लिए अच्छा था।
पॉल गियर

क्या इसे उबंटू में बग के रूप में रिपोर्ट नहीं किया जाना चाहिए? और आधिकारिक अखरोट पैकेज में तय किया गया?
जारल

यह काम करता है, लेकिन थोड़ा नीचे स्क्रॉल करता है और नए "यह बग पहले से तय हो गया है" संदेश पढ़ रहा है (विशेष रूप से: /lib/udev/rules.d/62-nut-usbups.rulesअब स्थापित है) इसका मतलब है कि यह समाधान तकनीकी रूप से अप्रचलित है।
dannysauer

9
  • आप lsusbबस और डिवाइस नंबर का पता लगाने के लिए उपयोग कर सकते हैं

  • फिर डिवाइस के लिए अनुमति बदलें

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

उदाहरण के लिए

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

3

इस त्रुटि के बारे में:

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

Http://www.networkupstools.org/docs/FAQ.html पर NUT FAQ में यह (जोर मेरा) है:

यदि NUT को नए सिरे से स्थापित किया गया है, और यदि अखरोट को स्थापित करते समय डिवाइस USB कॉर्ड को पहले से ही प्लग किया गया था [तो] बस अनप्लग करें और USB कॉर्ड को वापस प्लग करें, फिर अखरोट को पुनरारंभ करें।

मेरे लिए वह चाल काम कर गई।


मुझे udv ( sudo systemctl restart udev) को पुनः आरंभ करना था और फिर UPS, FWIW को अनप्लग / रिप्लेस करना था।
dannysauer

1

जैसा कि ndemou ने कहा, NUT FAQ समस्या से अवगत है, और एक पैच जारी किया गया है, जो बग को ठीक करता है। लेकिन पुराने स्थिर डिस्ट्रोस प्रभावित हो सकते हैं। उम्मीद है, समाधान बहुत सरल है ...

NUT FAQ से: "मेरा USB UPS समर्थित है लेकिन काम नहीं करता है!" :

लिनक्स पर, डिवाइस फाइल पर सही अनुमतियाँ सेट करने के लिए udev नियम दिए गए हैं। यह NUT ड्राइवर को इस डिवाइस फ़ाइल के माध्यम से UPS के साथ संचार करने की अनुमति देता है।

हालाँकि, ड्राइवर अभी भी डिवाइस को शुरू करने और समर्थन करने में विफल हो सकता है, जैसे एक संदेश:

USB डिवाइस का दावा करने में विफल: इंटरफ़ेस 0 का दावा नहीं कर सका: ऑपरेशन की अनुमति नहीं है

ऑपरेशन की अनुमति नहीं एक विशेषाधिकार मुद्दे की ओर इशारा करते हुए एक संदेश है। सबसे लगातार मुद्दा यह है कि udv ने वास्तव में नियम लागू नहीं किया है:

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

इस स्थिति में, बस अनप्लग करें और USB कॉर्ड को वापस प्लग करें, फिर NUT को पुनरारंभ करें।

NUT udev नियम फ़ाइल के नामकरण में एक गलती थी जिसके परिणामस्वरूप नियमों को किसी अन्य ud कॉन्फ़िगरेशन फ़ाइल द्वारा ओवरराइड किया गया था। हालांकि यह गिट मास्टर शाखा में तय किया गया है, फिर भी आपका वितरण प्रभावित हो सकता है। विवरण निम्नलिखित Github मुद्दे पर उपलब्ध हैं: https://github.com/networkupstools/nut/issues/140

गितुब मुद्दे को आगे देखते हुए मुझे समाधान दें:

udv नियमों को बहुत देर से (प्राथमिकता 52) लागू किया जाता है, जिसके परिणामस्वरूप अखरोट विशेषाधिकार अधिलेखित हो जाते हैं। अंतिम परिणाम यह है कि ड्राइवर शुरू नहीं होता है, और ड्राइवर / यूपीएस को कनेक्शन की विफलता upsd और upsmon द्वारा रिपोर्ट की जाती है।

नियमावली का नाम बदलकर 62 को प्राथमिकता तय करना है:

$ mv /lib/udev/rules.d/ तिरछे 5,6 परची 2- नट -बसअपसील

यह बग प्रभावित करता है:

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 के USB कॉर्ड से दूर हैं (नए नए UPS को प्लग इन करें और महीनों बाद कॉन्फिग करें क्योंकि आपके पास समय की कमी है), और अपनी मशीन को पुनः आरंभ करना कोई विकल्प नहीं है, तो आप udv नियमों को फिर से लागू कर सकते हैं:

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

नौकरी करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.