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

Για να ορίσεις επιπλέον ονόματα συσκευών στον φάκελλο /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.

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

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

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