Γιατί το θέλω;

Για να ορίσεις επιπλέον ονόματα συσκευών στον φάκελλο /dev ώστε να ξέρεις που βρίσκονται οι συσκευές σε περίπτωση που θες συγκεκριμένα πράγματα από συγκεκριμένες συσκευές.

Τί χρειάζομαι;

Ο οδηγός χρησιμοποιεί

  1. την κονσόλα (τερματικό) και
  2. τον χρήστη 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άκια για αυτόματες δουλειές. Μερικά λάθη που έκανα που ίσως σας βοηθήσουν για να τα βρείτε και εσείς:

  1. Είχα ξεχάσει το αστεράκι σ' αυτόν τον κανόνα: KERNEL=="sd[a-z][0-9]*
  2. Είχα ξεχάσει το τελευταίο εισαγωγικό!
  3. Σε κάποια έκδοση του udev άλλαξε το BUS των συγκεκριμένων συσκευών από SCSI σε USB.

Περισσότερο διάβασμα εδώ.

Τυχαία εικόνα

misfitII.png

You are here with: CCBot/2.0 (https://commoncrawl.org/faq/)
Your IP: 54.158.251.104

Made in Linux :)

Hits: 3259
Hello robot CCBot!

Φόρτος CPU: 0.01 | 0.02 | 0.01