Hallo, Am Wed, 01 Feb 2006, Andreas Koenecke schrieb:
* Dienstag, 31. Januar 2006 um 23:24 (+0100) schrieb David Haller:
Am Tue, 31 Jan 2006, Andreas Koenecke schrieb:
Aber unter "/dev" nur die Device-Nodes für tatsächlich im System vorhandene Geräte statt ca. 7500 ungenutzte Nodes wäre doch eine feine Sache, oder? (SUSE 10.0 macht das aber auch noch nicht...)
# ls /dev | wc -l 1865
Das sind tatsaechlich ein paar mehr als noetig, allerdings habe ich damals hat das 'devs'-rpm installiert und habe es nicht fuer noetig gehalten da gross aufzuraeumen.
Das ist bei dir doch noch übersichtlich, hier (SUSE 10.0):
kocom:~ # ls /dev | wc -l 7556
aber das reicht noch nicht:
kocom:~ # ls -R /dev | wc -l 14859
*UARGS* Das ist uebel! Was zum Geier muellt dir dein /dev/ so zu? # ls -R /dev | wc -l 2347 # find /dev/ -type d -maxdepth 1 /dev/ /dev/inet /dev/ida /dev/pts /dev/rd /dev/shm /dev/input /dev/cpu /dev/ide /dev/net HAEEE??? WO KOMMT DER /dev/ide/ KRAM HER?!???!? Und dann auch nur: # find /dev/ide -not -type d /dev/ide/host0/bus0/target0/lun0/part2 *WAAAHHHHHHHH* # ls -l /dev/ide/host0/bus0/target0/lun0/part2 3, 2 Apr 8 2002 /dev/ide/host0/bus0/target0/lun0/part Uaerks, das stammt wohl noch von nem devfs anschauen. *ARGS* root@slarty[0]:~ (0)# rm /dev/ide/host0/bus0/target0/lun0/part2 root@slarty[0]:~ (0)# rmdir /dev/ide/host0/bus0/target0/lun0 root@slarty[0]:~ (0)# rmdir /dev/ide/host0/bus0/target0 root@slarty[0]:~ (0)# rmdir /dev/ide/host0/bus0/ root@slarty[0]:~ (0)# rmdir /dev/ide/host0/ root@slarty[0]:~ (0)# rmdir /dev/ide/ Ja, mit Absicht kein 'rm -rf /dev/ide/'! Das haette nicht so befriedigt... So! Jetzt geht's mir schon gleich besser! *g* Und schwuppdiwupp bekomme ich beim ls -R | wc -l nur noch 2321. Achso, ein 'find -not -type d' ist wohl sinnvoller als ls -R. # find /dev/ -not -type d | wc -l 2268
Andererseits hatte ich auch nie Platzprobleme in / obwohl die Partition teilweise nur 200 MB gross (mit entsprechend wenigen Inodes) war.
Ich denke, es geht dabei weniger um den Platzbedarf als um die Übersichtlichkeit in /dev/.
Das wurde ja schon durch die Unterverzeichnisse gehandhabt, vgl. /dev/usb/ und /dev/pts/ z.B. und das ganz ohne devfs/udev. In proc geht's doch auch. find /proc/ -not -type d | wc -l 2154 Und ist /proc/ unuebersichtlich? # ls /proc/ . 222 296 33 41 7730 8244 execdomains locks sys .. 223 3 34 413 7912 8293 fb meminfo sysrq-trigger 1 224 300 35 42 7913 84 filesystems misc sysvipc 140 226 301 352 424 7914 90 fs modules tty 146 228 303 354 426 7915 94 ide mounts uptime 167 229 31 36 481 7916 apm interrupts mtrr version 188 230 32 363 484 7917 bus iomem net video 193 248 320 365 5 7918 cmdline ioports partitions 2 268 322 37 6 7919 cpuinfo irq pci 208 273 323 38 7 7934 crypto kcore self 209 285 324 39 7622 7935 devices kmsg slabinfo 220 286 325 4 7632 8 dma ksyms stat 221 295 328 40 7633 8227 driver loadavg swaps Ich glaube nicht. Ok, das mit den PIDs direkt in /proc ist nicht ideal, stoert aber nicht weiter, IMHO. Selbst wenn deutlich mehr Prozesse laufen, denn die reinen "^[0-9]+$" kann man ja leicht ausblenden: # cd /proc; ls -d ./[^0-9]* ./apm ./driver ./iomem ./locks ./partitions ./sysrq-trigger ./bus ./execdomains ./ioports ./meminfo ./pci ./sysvipc ./cmdline ./fb ./irq ./misc ./self ./tty ./cpuinfo ./filesystems ./kcore ./modules ./slabinfo ./uptime ./crypto ./fs ./kmsg ./mounts ./stat ./version ./devices ./ide ./ksyms ./mtrr ./swaps ./video ./dma ./interrupts ./loadavg ./net ./sys Mein ~ sieht da viel(!) schlimmer aus... $ ls -la ~ | wc -l 2166 $ find ~ -type d -maxdepth 1 | wc -l 311
Aber doch nur solange du penibel darauf achtest, in welcher Reihenfolge "ide-scsi" und "g_NCR5380" geladen werden, oder?
Noe ;)
below sr_mod ide-scsi below sg ide-scsi g_NCR5380
Na gut, dann doch das Beispiel mit 2. Scanner oder externem SCSI-CD-Brenner am SCSI-Bus... ;-)
Wird nach SCSI BUS-ID-LUN einsortiert. Odr?[0] Ich hab hier zuwenig SCSI Kram. Und ansonsten hilft ein kl. shell-script mit z.B. 'sgcheck', 'awk' und 'ln -s /dev/sgX /dev/scanner/MODEL'. Ja, ist nicht so elegant wie udev, loest das Problem aber ebenfalls und das _ohne_ Aenderungen am Kernel. Zum Beispiel liesse sich als "post-install" von 'sg' folgendes fuer meinen Brenner ausfuehren: sgcheck | awk '/^\/.*DVDRAM/{print "ln -sf "$1" /dev/BRENNER/"$NF;}' ln -sf /dev/sg0 /dev/BRENNER/GSA-4163B Oder auch schlicht: `sgcheck | awk '/^\/.*DVDRAM/{print "ln -sf "$1" /dev/dvdram";}'` Also z.B. (eine Zeile in der {modules,modprobe}.conf): post-install sg /bin/sh -c "`/usr/sbin/sgcheck | awk '/^\/.*DVDRAM/{print "ln -sf "$1" /dev/dvdram";}'`" Das ist auch nicht schwerer als das, was diese bloede kastrierte Syntax der modprobe.conf fuer 'above' und 'below' erzwingt. Denk mal drueber nach. Und wenn das der User/Distributor machen muss, warum nicht sowas wie obiges? Ebent[tm]. Ich seh bei solch einfachen Loesungen einfach keine Notwendigkeit gross am Kernel rumzuschrauben. Und obiges post-install laesst sich fuer mehrere devices bequem in ein shell-script verpacken. *GRUMPF* Versteh' mich nicht falsch, fuer USB und so Zeugs mag das ja gut sein, aber dafuer reicht sowas wie hotplug/usbdevfs. Da muss man nicht gleich das ganze /dev/ umkrempeln.
[..]
Ja, da fällt das Problem schnell auf, aber auch SCSI hat grundsätzlich das Problem: Jede zusätzliche Platte muss eine höhere ID als die vorhandenen Platten haben (am gleichen Bus natürlich), sonst wird "neu gemischt"...
Und wie oft kommt das vor? Wer heutzutage SCSI-Festplatten verwendet weiss das mit den IDs wohl, oder?
Meinst du? Optimist. ;-)
*hurhur* Justiere mal deinen Zynismusdetektor. Das Fragezeichen oben expandiert zu: " hat es nicht anders verdient. *MUAHAHAHAHA*"
Aber OK, das Beispiel ist vielleicht sehr konstruiert.
Ja.
Hm, wie wäre es mit dem User-tauglichen "Ich habe mir eine weitere Netzwerkkarte (mit gleichem Chipsatz) für meinen DSL-Rechner eingebaut, um dem Rechner meiner Frau den Internetzugang zu ermöglichen und jetzt geht gar kein Internet mehr." (Das kommt aber häufig vor...)
Da hilft die MAC zusammen mit PERSISTENT_NAME in /etc/sysconfig/network/ifcfg-eth-id* -- oder so, IIRC. Und BTW: # ls -l /dev/eth* ls: /dev/eth*: No such file or directory Auch das Beispiel passt also nicht. Da musst du schon in der {modules,modprobe}.conf suchen: # grep eth /etc/modules.conf-`uname -r` alias eth0 8139too *tuedelüüt* -dn'*SCRNR*'h [0] diesmal nix versteckt ;) -- "What, you don't think "insmod emacs" is a good idea?" -- Joe Moore