Frage

Alle Dateien in /dev sind spezielle Dateien ... Sie repräsentieren Geräte des Computers. Sie wurden mit dem mknod syscall erstellt. Meine Frage ist: Wie kann ich die kleine kennen und Haupt Zahlen, die verwendet wurden, diese spezielle Datei zu erstellen?

War es hilfreich?

Lösung

Die Liste wird die LANANA Linux Device List genannt , und es wird von Alan Cox verabreicht wird.

Sie können die neueste Kopie online ( Link ) oder in der Linux-Quelle. Der Dateiname im Kernel-Baum ist Documentation/devices.txt .

Um die größeren und kleineren Zahlen zu sehen, die einen Knoten in /dev (oder einen Geräteknoten für diese Angelegenheit) erstellt, einfach ls mit der -l Option verwenden:

22:26 jsmith@undertow% ls -l /dev/xvd?
brw-rw---- 1 root disk    202,   0 Nov  1 20:31 /dev/xvda
brw-rw---- 1 root disk    202,  16 Nov  1 20:31 /dev/xvdb
brw-rw---- 1 root disk    202,  32 Nov  1 20:31 /dev/xvdc

In diesem Beispiel ist 202 die große Zahl drei Geräte und 0, 16 und 32 sind Minderjährige. Die b links zeigt an, dass der Knoten ein Block-Device ist. Die Alternative ist c, ein Zeichengerät:

crw-rw-rw- 1 root tty       5,   0 Nov 22 00:29 /dev/tty

Andere Tipps

$ ls -l /dev/fd0 /dev/null
brw-rw---- 1 root floppy 2, 0 Nov 22 19:48 /dev/fd0
crw-rw-rw- 1 root root   1, 3 Nov 22 19:48 /dev/null
$ stat -c '%n: %F, major %t minor %T' /dev/fd0 /dev/null
/dev/fd0: block special file, major 2 minor 0
/dev/null: character special file, major 1 minor 3

Die meisten Gerätenummern festgelegt sind (das heißt /dev/null immer Zeichengeräte 1:3 sein), sondern auf Linux, einige dynamisch zugewiesen.

$ cat /proc/devices
Character devices:
...
 10 misc
...

Block devices:
...
253 mdp
254 device-mapper
$ cat /proc/misc
...
 57 device-mapper
...

Zum Beispiel auf diesem System, es passiert einfach so, dass /dev/mapper/control c:10:57 werden, während der Rest von /dev/mapper/* b:254:* werden, und das von einem Boot-Zyklus zum anderen unterscheiden könnte - oder sogar als Module geladen / entladen und Geräte hinzugefügt / entfernt werden.

Sie können diese Geräteregistrierungen weiter in /sys erkunden.

$ readlink /sys/dev/block/2:0
../../devices/platform/floppy.0/block/fd0
$ cat /sys/devices/platform/floppy.0/block/fd0/dev
2:0
$ readlink /sys/dev/char/1:3
../../devices/virtual/mem/null
$ cat /sys/devices/virtual/mem/null/dev
1:3

Sie können auch stat verwenden.

$ stat -c 'major: %t minor: %T' <file>

Speziell für Blockgeräte:

$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda       8:0    0   90G  0 disk
├─sda1    8:1    0    4G  0 part [SWAP]
├─sda2    8:2    0    4G  0 part /

Alternative, die nicht auf stat abhängt:

$ cat /sys/class/*/random/dev
1:8
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top