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