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