Προς το περιεχόμενο

[Solved] Πρόβλημα permission με NUT 2.4 και monitoring UPS


macabre_sunsets

Προτεινόμενες αναρτήσεις

Έχει χρησιμοποιήσει κανείς το NUT 2.4 για να παρακολουθεί το UPS του? Έχω κάποιο πρόβλημα με permissions (που μάλλον είναι γενικό/αναγνωρισμένο bug), αλλά ψάχνω ψάχνω και λύση δεν βρίσκω (δεν θέλω να κάνω compile το πακέτο - εκτός αμα είναι όντως η τελευταία λύση).

 

Το UPS συνδέεται μέσω USB. Έστω λοιπόν ότι έχει πάρει το "/dev/bus/usb/004/001". Αν κάνω "chmod 777" το παραπάνω, τότε το output της "upsc [ups]" είναι σωστό και δουλεύει μια χαρά (φαίνεται και στο munin). Το θέμα είναι ότι χωρίς να κάνω επανεκκίνηση, αλλάζει από μόνο του θέση μετά από κάμποση ώρα (πάει δηλαδή στο "/dev/bus/usb/004/002") και σταματάει να δουλεύει το "upsc [ups]", δίνοντας : "Error: Data Stale".

 

Ενδεικτικές λύσεις που βρήκα ήταν τα :

"adduser nut nut" και

"adduser nut dialout"

οι οποίες δεν έκαναν τίποτα.

 

Υπάρχει καμιά ιδέα/γνώμη/πρόταση?

 

Χρησιμοποιώ Debian testing με 2.6.30-1-amd64 πυρήνα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτό περισσότερο φαίνεται να είναι πρόβλημα disconnection του UPS από την USB port. Την επόμενη φορά που θα σου συμβεί αυτό, κοίτα στο dmesg για disconnect και αμέσως μετά connect. Θα το καταλάβεις γιατί θα είναι ένα κατεβατό που θα γράφει οτι το USB device X έγινε disconnect και αμέσως μετά θα πάει να το ξανακάνει enumerate οπότε θα βρεί vendorID, productID, serial numbers κτλ.

Αν το μηχάνημα δεν είναι υπό την συνεχή σου παρακολούθηση και περάσει καμμιά μέρα από τη στιγμή που το έκανε μέχρι να το πάρεις πρέφα, κοίτα στο /var/log/messages για τα ίδια στοιχεία.

Αν συμβαίνει κάτι τέτοιο, μετά το ξανασυζητάμε.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μπορείς να μου εξηγήσεις τον λόγο για τον οποίο μπορεί να κάνει disconnect? Το μηχάνημα είναι όλη την μέρα ανοιχτό και δεν κάνει restart ώστε να το δικαιολογούσα, ούτε πειράζει κάποιος το USB.

Παραθέτω ένα screenshot από το "/var/log/messages".

 

Αλλά πέρα από αυτό, γιατί παίζει όταν το κάνω "chmod 777"? Δεν θα έπρεπε το NUT και ο χρήστης nut (group nut) να έχουν access σε οποιοδήποτε USB? Γιατί άμα έχει access, τότε ακόμα και να κάνει disconnect όταν συνδεθεί πάλι θα παίζει μια χαρά.

Αυτό είναι το κύριο πρόβλημά μου. Ποια είναι τα σωστά permissions ώστε να παίζει όπως πρέπει.

 

(Συγγνώμη που παραθέτω screenshots αντί για copy/paste, αλλά μόνο μέσω vnc έχω πρόσβαση στο μηχάνημα και δεν δέχεται τα c/p)

post-98228-129063028252_thumb.jpg

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Οκ, αυτό που χρειάζεσαι είναι ένα udev rule, ώστε το device node του UPS (όποιο και αν είναι αυτό), να ανήκει στο group nut. Δες μια το αρχείο /etc/udev/rules.d/52-nut-usbups.rules και δοκίμασε να του προσθέσεις μια εγγραφή όπως αυτές για τα άλλα UPS. Το idVendor και το idProduct θα τα πάρεις από το lsusb -v. Αφού φτιάξεις το αρχείο κάνε ένα restart το udev και δοκίμασε να συνδέσεις το UPS.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στο αρχείο που αναφέρεις υπάρχει ήδη μια εγγραφή με τα στοιχεία του UPS μου.

>#  MGE Office Protection Systems, prev. MGE UPS Systems
#  various models  - usbhid-ups
[b]SYSFS{idVendor}=="0463", SYSFS{idProduct}=="ffff", MODE="664", GROUP="nut"[/b]

 

Και από το lsusb -v

>Bus 004 Device 008: ID 0463:ffff MGE UPS Systems UPS
Device Descriptor:
 idVendor           0x0463 MGE UPS Systems
 idProduct          0xffff UPS

 

Δεν μπορώ να αποσυνδέσω/επανασυνδέσω το USB καθότι δεν βρίσκομαι στον ίδιο χώρο με το PC.

 

(α τι ωραία παίζει το copy/paste :))

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχικά, δώσε την εντολή groups για να δείς αν ο χρήστης σου ανήκει στο group "nut". Αν οχι, δώσε adduser <your_username> nut.

Το γιατί γίνεται disconnect η συσκευή είναι καλό ερώτημα. Πολύ πιθανό να φταίει ο driver γιατί το USB end-point δεν μπορεί να στείλει μόνο του command για να αποσυνδεθεί η συσκευή. Αυτό όμως δεν μπορώ να σου το πώ με σιγουριά, πρέπει να γίνει debugging στο nut και ταυτόχρονα να παρακολουθείς την κίνηση που περνάει από τον host controller με το usbmon (kernel module είναι αυτό) ώστε να παρακολουθήσεις όλη την κίνηση που πηγαίνει στο UPS και να δείς σε ποιό σημείο δίνεται η εντολή για disconnect.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στο αρχείο που αναφέρεις υπάρχει ήδη μια εγγραφή με τα στοιχεία του UPS μου.

>#  MGE Office Protection Systems, prev. MGE UPS Systems
#  various models  - usbhid-ups
[b]SYSFS{idVendor}=="0463", SYSFS{idProduct}=="ffff", MODE="664", GROUP="nut"[/b]

 

Και από το lsusb -v

>Bus 004 Device 008: ID 0463:ffff MGE UPS Systems UPS
Device Descriptor:
 idVendor           0x0463 MGE UPS Systems
 idProduct          0xffff UPS

 

Δεν μπορώ να αποσυνδέσω/επανασυνδέσω το USB καθότι δεν βρίσκομαι στον ίδιο χώρο με το PC.

 

(α τι ωραία παίζει το copy/paste :))

Έχεις κάνει reboot το μηχάνημα απ' όταν εγκατέστησες το nut; Αν όχι, τότε κάνε τουλάχιστον restart το udev (/etc/init.d/udev restart) και περίμενε το επόμενο disconnection για να δεις αν θα δουλέψει ο κανόνας και θα δημιουργήσει το device node με σωστά permissions.

 

Από 'κει και πέρα, δε χρειάζεται ο χρήστης σου να είναι στο group nut, αρκεί να είναι ο χρήστης nut που τρέχει τον upsd (που είναι).

 

Το θέμα με τα disconnections μάλλον καλώδιο δείχνει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ενδεικτικές λύσεις που βρήκα ήταν τα :

"adduser nut nut" και

"adduser nut dialout"

 

Έχω κάνει τα απο πάνω. Εννοείς να κάνω τον "κύριο χρήστη μου" μέλος στο group nut?

Δεν νομίζω να παίζει ρόλο αυτό. Υποτίθεται ότι ο χρήστης root έχει παντού access, σωστά? Όταν όμως αποσυνδεθεί το UPS, τότε ούτε με τον χρήστη root μπορώ να δω το UPS. Άρα υπολογίζω κάποιο πρόβλημα με τον χρήστη nut και το group του.

__________________________________

 

Όχι δεν έχω κάνει reboot το μηχάνημα. Το udev το έκανα restart. Τον κανόνα τον είχε από πριν. Να μην είχε ενεργοποιηθεί επειδή δεν το είχε κάνει restart? Προς το παρών παίζει για 5 ώρες με το "chmod 777". Όταν πέσει θα δούμε αμα δούλεψε.

Να μην είναι καλό το καλώδιο? Το δικό του έχω χρησιμοποιήσει. Τι να πω... Θα δούμε σε λίγες ώρες αμα πέσει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όχι δεν έχω κάνει reboot το μηχάνημα. Το udev το έκανα restart. Τον κανόνα τον είχε από πριν. Να μην είχε ενεργοποιηθεί επειδή δεν το είχε κάνει restart?

 

Τον κανόνα τον εγκαθιστά το nut, αλλά για να τεθεί σε εφαρμογή πρέπει να γίνει restart το udev (και μάλλον δεν το κάνει αυτόματα το nut κατά την εγκατάσταση). Επομένως όχι, δε δουλεύει, γιατί αν δούλευε ένα από τα usb devices σου θα ανήκε στο group "nut"

 

Προς το παρών παίζει για 5 ώρες με το "chmod 777". Όταν πέσει θα δούμε αμα δούλεψε.

Παρεμπιπτόντως, το chmod 777 δεν είναι η λύση για όλα τα προβλήματα και συνήθως δημιουργεί περισσότερα από αυτά που λύνει.

 

Να μην είναι καλό το καλώδιο? Το δικό του έχω χρησιμοποιήσει.

Συμβαίνει και στις καλύτερες οικογένειες.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Για να δούμε αμα θα παίξει μετά το restart του udev και όταν γίνει κάποιο disconnect.

 

Παρεμπιπτόντως, το chmod 777 δεν είναι η λύση για όλα τα προβλήματα και συνήθως δημιουργεί περισσότερα από αυτά που λύνει.

 

Σίγουρα δεν είναι λύση, όπως δεν είναι λύση το να το τρέχω με παράμετρο "-u root". Αλλά προς το παρών είναι η μοναδική λύση. Και επίσης δείχνει ότι η παραμετροποίηση του NUT είναι σωστή (τα *.conf αρχεία). Για αυτό και έχω επικεντρωθεί στα permissions του NUT.

 

Συμβαίνει και στις καλύτερες οικογένειες.

 

Θα στείλω το UPS πίσω για ελλατωματικό άμα όντως έχει πρόβλημα το καλώδιο. Δεν είναι πράματα αυτά (και καλά τώρα).

 

__________

edit :

 

>/dev/bus/usb/004:
total 0
crw-rw-r-- 1 root root 189, 384 2009-10-06 21:41 001
crw-rw-r-- 1 root nut  189, 392 2009-10-07 13:31 009

 

Έγινε αποσύνδεση κάποια στιγμή και φαίνεται ότι επανασυνδέθηκε με σωστά permissions. Παίζει μια χαρά (μέχρι) τώρα. Ελπίζω να μην έχει άλλο πρόβλημα.

 

Ευχαριστώ πολύ για τις απαντήσεις σας.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...