eine Gerätedatei Dur- und Moll-Zahlen in Linux zu wissen
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?
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