Γιατί το θέλω;
Για να ορίσεις επιπλέον ονόματα συσκευών στον φάκελλο /dev ώστε να ξέρεις που βρίσκονται οι συσκευές σε περίπτωση που θες συγκεκριμένα πράγματα από συγκεκριμένες συσκευές.
Τί χρειάζομαι;
Ο οδηγός χρησιμοποιεί
- την κονσόλα (τερματικό) και
- τον χρήστη root (σε ubuntu ένα sudo πριν από κάθε εντολή και ο κωδικός αρκούν αν ο χρήστης σας είναι στην ομάδα του διαχειριστή).
Είμαι στο τερματικό, φύγαμε!
Πρώτα εκτελούμε την παρακάτω εντολή για να δούμε που «κουμπώνει» η συσκευή στον πυρήνα.
udevadm monitorΒάζουμε την συσκευή στον υπολογιστή ενώ λειτουργεί (ισχύει μόνο για εξωτερικές συσκευές)
Πατάμε ctrl+c για να τερματίσει το πρόγραμμα αφού είδαμε που «κουμπώνει» η συσκευή. Με shift + pageup / pagedown βλέπουμε που «κουμπώνει» η συσκευή στον πυρήνα. Τώρα γράφουμε την επόμενη εντολή και στο path αντιγράφουμε το κούμπωμα της συσκευής που διαβάσαμε με την προηγούμενη εντολή όπως βλέπετε παρακάτω.
udevadm info --path /devices/pci0000:00/0000:00:1d.7/usb1/1-4/usb_device/usbdev1.49 --attribute-walk
Για συσκευές usb ίσως βοηθήσει η εντολή lsusb -v
Ένα παράδειγμα από δική μου συσκευή (flashάκι)
iManufacturer 1 Kingston
iProduct 2 DT 101 II
iSerial 3 XXXXXXXXXXXXX
Τώρα μπορούμε να ανοίξουμε ή να δημιουργήσουμε ένα δικό μας αρχείο με τις ρυθμίσεις μας σύμφωνα με τις πληροφορίες που αλιεύσαμε (ναι.. είναι δύσκολο σαν το ψάρεμα!) vi /lib/udev/rules.d/10-korgman.rules
Παράδειγμα του δικού μου αρχείου που βρίσκεται εδώ: /lib/udev/rules.d/10-korgman.rules
BUS=="usb", ACTION=="add", SYSFS{manufacturer}=="FREECOM", SYSFS{serial}=="XXXXXXXXXXXXX", SYMLINK+="usb/freecom"
BUS=="usb", ACTION=="add", KERNEL=="sd[a-z][0-9]*", NAME="%k", SYSFS{serial}=="058F0O1111B", SYMLINK+="usb/xd"
BUS=="usb", ACTION=="add", KERNEL=="sd[a-z][0-9]*", NAME="%k", SYSFS{manufacturer}=="Kingston", SYSFS{serial}=="XXXXXXXXXXXXX", SYMLINK+="usb/kitrino"
Με udevadm control --reload-rules διαβάζονται οι νέοι κανόνες. Σε επανεσύνδεση της συσκευής, θα ενεργοποιηθούν.
Το UDEV είναι εκνευριστικό
Πράγματι, αλλά μας προσφέρει πολλές δυνατότητες, μέχρι και να γράψουμε προγράμματα ή scriptάκια για αυτόματες δουλειές. Μερικά λάθη που έκανα που ίσως σας βοηθήσουν για να τα βρείτε και εσείς:
- Είχα ξεχάσει το αστεράκι σ' αυτόν τον κανόνα: KERNEL=="sd[a-z][0-9]*
- Είχα ξεχάσει το τελευταίο εισαγωγικό!
- Σε κάποια έκδοση του udev άλλαξε το BUS των συγκεκριμένων συσκευών από SCSI σε USB.
Περισσότερο διάβασμα εδώ.
Τυχαία εικόνα
sr_area.png
You are here with: CCBot/2.0 (https://commoncrawl.org/faq/)
Your IP: 35.175.107.142
Made in Linux :)
Hits: 3735
Hello robot CCBot!
Φόρτος CPU: 0.04 | 0.02 | 0