Problima me to devfs.
Vasilis Vasaitis
vvas at hal.csd.auth.gr
Tue May 18 16:16:53 EEST 2004
(Αν και δώθηκε απάντηση στο συγκεκριμένο πρόβλημα, ας πάμε ένα
επίπεδο πιο πέρα...)
On Mon, May 17, 2004 at 02:58:16AM -0700, Alaios wrote:
> Kali sas imera :)
> Xreiazomai enan pirina me to devfs energopoimeno
> kathos kai me tin epilogi mount at startup. Aytes oi 2
> prepei na einai xtismenes mesa ston pirina kai oxi sa
> modules..
> Eftiaksa ton pirina mou kai dokimazo na kano to boot.
> To problima pou antimetopizo einai pos to devfs kanei
> mount sto /dev....
..[snip]..
Βασικά το πρόβλημα που αντιμετωπίζεις είναι ότι χρησιμοποιείς devfs.
Γιατί ακριβώς το κάνεις αυτό; Τι σε κάνει να πιστεύεις ότι το
χρειάζεσαι; Το devfs είναι ένα κομμάτι κώδικα του πυρήνα που δεν
αναπτύσσεται ιδιαίτερα εδώ και πολύ καιρό, που έχει ένα κάρο
προβλήματα, και που μελλοντικά (κάπου στον 2.7 λογικά) είναι σχεδόν
βέβαιο ότι θα αφαιρεθεί εξολοκλήρου. Άσε που προσπαθεί να επιβάλει
αυτή τη «χαζή» ονοματολογία με τα τεράστια ονόματα μέσα σε χίλιους
καταλόγους. [0]
Το udev του Greg KH το έχει δοκιμάσει κανείς στη λίστα; Λύνει κι
αυτό το πρόβλημα της δυναμικής δημιουργίας καταχωρήσεων στο /dev, αλλά
με τελείως διαφορετική λογική: Εφόσον οι καταχωρήσεις αυτές
χρησιμοποιούνται αποκλειστικά από το user space, του οποίου επομένως
είναι πρόβλημα και μόνο, λογικό δεν είναι να δημιουργούνται εξαρχής
από κάτι που τρέχει σε user space; Έτσι το udev πατάει απλά στο /sys
του 2.6 (τον οποίο και προαπαιτεί) για να αντλεί πληροφορίες για στις
συσκευές, και στο hotplug υποσύστημα από το οποίο ειδοποιείται για την
προσθαφαίρεση συσκευών. Το αποτέλεσμα είναι κάτι που δουλεύει, και
δουλεύει καλά. Προσθέστε στο όλο σύνολο και το ότι έχει πολύ ευέλικτες
ρυθμίσεις ως προς την ονοματολογία των συσκευών, τα permission κτλ.,
και το αποτέλεσμα είναι πολύ μπροστά. :^)
Για παράδειγμα, αυτή τη στιγμή το /dev μου έχει ως εξής (ls -CFR):
/dev:
MAKEDEV@ hda2 loop0 pts/ tty14 tty30 tty47 tty63 vcs3
adsp hdc loop1 radeon tty15 tty31 tty48 tty7 vcs4
agpgart hdd loop2 random tty16 tty32 tty49 tty8 vcs5
audio hde loop3 rfcomm0 tty17 tty33 tty5 tty9 vcs6
cdrom@ hde1 loop4 rtc tty18 tty34 tty50 ttyS0 vcs7
cdrw@ hde2 loop5 shm/ tty19 tty35 tty51 ttyS1 vcsa
console hde3 loop6 snd/ tty2 tty36 tty52 ttyS2 vcsa1
core@ hde4 loop7 sndstat@ tty20 tty37 tty53 ttyS3 vcsa10
dri/ hde5 lp0 stderr@ tty21 tty38 tty54 ttyS4 vcsa2
dsp hde6 mapper/ stdin@ tty22 tty39 tty55 ttyS5 vcsa3
dvd@ hde7 mem stdout@ tty23 tty4 tty56 ttyS6 vcsa4
fb0 i2c-0 mixer tty tty24 tty40 tty57 ttyS7 vcsa5
fd@ i2c-1 modem@ tty0 tty25 tty41 tty58 urandom vcsa6
fd0 initctl| null tty1 tty26 tty42 tty59 usb/ vcsa7
full input/ port tty10 tty27 tty43 tty6 vcs xconsole|
gpmctl= kmem ppp tty11 tty28 tty44 tty60 vcs1 zero
hda kmsg psaux tty12 tty29 tty45 tty61 vcs10
hda1 log= ptmx tty13 tty3 tty46 tty62 vcs2
/dev/dri:
card0
/dev/input:
event0 event1 event2 event3 js0 mice mouse0
/dev/mapper:
/dev/pts:
0 1 2
/dev/shm:
/dev/snd:
controlC0 pcmC0D0c pcmC0D0p pcmC0D1c pcmC0D1p timer
/dev/usb:
lp0
Δηλαδή υπάρχει ακριβώς ό,τι θα έπρεπε να υπάρχει, όμορφο και λιτό.
Επίσης, ως παράδειγμα για τη δύναμή του, να ένας κανόνας που πρόσθεσα
εγώ στις ρυθμίσεις του:
KERNEL="hd?", PROGRAM="/bin/cat /proc/ide/%k/model", RESULT="PLEXTOR CD-R PX-W1210A*", SYMLINK="cdrw"
Ο παραπάνω κανόνας φτιάχνει ένα symlink "cdrw" που δείχνει στο
αντιγραφικό μου, ανεξάρτητα από τυχόν ανακατανομές που μπορεί να κάνω
εγώ στις συνδέσεις του IDE.
Ελπίζω να σας άνοιξα την όρεξη. ;^)
[0] Όπου το πρόβλημα στη συγκεκριμένη περίπτωση δεν είναι το αν
κάποιος θεωρεί την ονοματολογία του χαζή ή όχι, αλλά το ότι την
επιβάλλει.
--
Vasilis Vasaitis
"A man is well or woe as he thinks himself so."
More information about the Linux-greek-users
mailing list