USB/SCSI devices

Vasilis Vasaitis vvas at hal.csd.auth.gr
Fri Jun 11 03:16:43 EEST 2004


On Fri, Jun 11, 2004 at 12:25:21AM +0300, Alexandros Papadopoulos wrote:
> Γεια χαρά
> 
> Ιδέα μου είναι, ή είναι ένα propabilistic μπάχαλο το naming των USB 
> devices από τον πυρήνα;
> 
> Χρησιμοποιώ στο ίδιο laptop μια ψηφιακή φωτογραφική κάμερα, έναν 
> εξωτερικό USB δίσκο, και το builtin CD-RW drive με SCSI emulation. 
> 
> "Γιατί SCSI emulation;" σας ακούω να ρωτάτε: Επιμένω στον 2.4 πυρήνα 
> επειδή ο precompiled 2.6 του Debian έχει μόνο ACPI support, και το 
> laptop μου είναι τρισευτυχισμένο με APM.
> 
> Γίνεται, λοιπόν χαμός με την ονομασία των συσκευών. Ανάλογα με το ποιες 
> θα τύχει να είναι συνδεμένες στο σύστημα κατά το boot (ή resume από 
> sleep), γίνονται assign με μη-προβλέψιμο τρόπο τα /dev/sda, /dev/sdb 
> κτλ.
> 
> Το CD-RW drive επίσης επηρεάζεται, επειδή το σύστημα βλέπει το SCSI Bus 
> 0 κατηλλειμένο από πχ. τον εξωτερικό USB δίσκο, και κάνει assign το 
> CD-RW στο SCSI bus 1, αλλάζοντας αμέσως αμέσως το device ID του σε 
> 1,0,0 από 0,0,0, κάνοντας έτσι ντρίπλα στο cdrecord.
> 
> Υπάρχει κάποιος τρόπος να γίνει στατικό assign των περιφερειακών που 
> είναι USB και χρησιμοποιούν και SCSI emulation, ώστε να ξέρει κανείς τι 
> να βάλει στο /etc/fstab για όλες τις περιπτώσεις;
> 
> Θα ήταν θεσπέσιο να μπορώ να κάνω assign πχ την κάμερα στο /dev/sdb, 
> ασχέτως του αν έχω ενεργοποιημένο τον εξωτερικό δίσκο. Παρομοίως, δε 
> θέλω να κυνηγάω το CD-RW μου στα SCSI busses... :-)
> 
> Ευχαριστώ

  Η σύντομη απάντηση: βάλε udev.

  Η λεπτομερής απάντηση:

  Βάλε udev. :^) Το udev είναι ένα σύνολο από μικρά προγραμματάκια που
λειτουργούν σε user space και δημιουργούν δυναμικά το /dev στην
εκκίνηση. Για να μην επαναλαμβάνω εαυτόν όμως, ρίξε μια ματιά στο:

http://lists.hellug.gr/pipermail/linux-greek-users/2004-May/098140.html

  Βεβαια χρειάζεται 2.6, αλλά έτσι κι αλλιώς απ' όσο καταλαβαίνω, αυτή
τη στιγμή χρησιμοποιείς 2.4 επειδή βαριέσαι να κάνεις compile μόνος
σου τον 2.6. :-p

  Με το udev λοιπόν θα μπορείς να αναθέτεις στατικά ονόματα στις
συσκευές, με κανόνες όπως π.χ. (copy-paste από παραδείγματα):

# A usb camera.
BUS="usb", SYSFS{vendor}="FUJIFILM", SYSFS{model}="M100", NAME="camera%n"

  Το ίδιο βέβαια θα μπορούσες να κάνεις με custom script-άκια για τον
2.4 που σκαλίζουν το /proc/bus/usb, την έξοδο του cdrecord -scanbus
κτλ., και φτιάχνουν symlinks όπως τα θέλεις. Αλλά γιατί να παιδεύεσαι;
:^)


-- 
Vasilis Vasaitis
"A man is well or woe as he thinks himself so."





More information about the Linux-greek-users mailing list