有没有办法确定哪个模块对应哪个主编号?

有没有办法确定哪个模块对应哪个主编号?

在Linux中,设备文件/devmajorminor编号:

# ll /dev
...
crw--w----   1 root tty         4,     8 Jan  5 09:02 tty8
crw--w----   1 root tty         4,     9 Jan  5 09:02 tty9
crw-rw----   1 root dialout     4,    64 Jan  5 09:02 ttyS0
crw-rw----   1 root dialout     4,    65 Jan  5 09:02 ttyS1
crw-rw----   1 root dialout     4,    66 Jan  5 09:02 ttyS2
crw-rw----   1 root dialout     4,    67 Jan  5 09:02 ttyS3
crw-------   1 root root       10,   239 Jan  5 09:02 uhid
crw-------   1 root root       10,   223 Jan  5 09:02 uinput
crw-rw-rw-   1 root root        1,     9 Jan  5 09:02 urandom
...

主设备号对应于设备驱动程序/内核模块,我假设我可以通过检查内核代码和其他文档来确定哪个模块处理每个主设备号;但是有没有命令或其他方法可以从正在运行的系统中查找?

答案1

是的,您可以通过查看来了解哪些专业对应哪些司机/proc/devices;例如

$ cat /proc/devices
Character devices:
  1 mem
  4 /dev/vc/0   
  4 tty
  4 ttyS
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx   
[...]
246 cec
247 hidraw
248 firewire
249 ptp
250 pps
251 bsg
252 rtc
253 dax
254 gpiochip
[...]

Block devices:  
  7 loop
  8 sd
  9 md
 11 sr
 65 sd
 66 sd
 67 sd
 68 sd
 69 sd
 70 sd
 71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
251 zram
252 pktcdvd
253 mdp
254 device-mapper
259 blkext

这样做的优点是它可以显示系统上的动态分配内核的静态分配

相关内容