简短回答:cd/sys/dev/char/major:minor/device/driver/
ls -al | grep module
每个设备通常与一个驱动程序相关联,这就是"设备型号"所要做的。 sysfs 文件系统 包含这个设备及其相关驱动程序的表示。 Unfortuantely似乎并不是所有设备的sysfs有表示节点,这applyd只有/sys 目录包含一个/dev 目录。 我们举一个例子,用 /dev/video0
在我的主板上,ls -al/dev/video0 输出是crw------- 1 root root 81, 0 Jan 1 00:00 video0
所以主数字是 81,次要数字是 0. 让我们进入 sysfs:# cd/sys
# ls
block class devices fs module
bus dev firmware kernel
sys/dev 目录包含系统的字符和块设备的条目:# cd dev
# cd char
# ls
10:61 13:64 1:3 1:8 249:0 252:0 29:0 4:65 81:0 89:1
10:62 1:1 1:5 1:9 250:0 253:0 29:1 5:0 81:2
10:63 1:11 1:7 248:0 251:0 254:0 4:64 5:1 81:3
这些链接有奇怪的名字? 记住主要和次要数字,81和 0? 让我们遵循以下链接:#cd major:minor (ie 81:0)
#ls -al
drwxr-xr-x 2 root root 0 Jan 1 01:56.
drwxr-xr-x 3 root root 0 Jan 1 01:56..
-r--r--r-- 1 root root 4096 Jan 1 01:56 dev
lrwxrwxrwx 1 root root 0 Jan 1 01:56 device ->.. /../../vpfe-capture
-r--r--r-- 1 root root 4096 Jan 1 01:56 index
-r--r--r-- 1 root root 4096 Jan 1 01:56 name
lrwxrwxrwx 1 root root 0 Jan 1 01:56 subsystem ->.. /../../../../class/video4linux
-rw-r--r-- 1 root root 4096 Jan 1 01:56 uevent
现在我们可以看到这个设备点头,这个设备是如何呈现给用户空间的,它与内核设备相关。 这个关联是通过一个链接。 如果我们遵循这个链接,我们会在一个目录中结束,并带有一个驱动程序链接。 驱动程序的名称通常是模块的名称:# ls -al
drwxr-xr-x 3 root root 0 Jan 1 01:56.
drwxr-xr-x 25 root root 0 Jan 1 00:00..
lrwxrwxrwx 1 root root 0 Jan 1 01:56 driver ->.. /../../bus/platform/drivers/vpfe-capture
-r--r--r-- 1 root root 4096 Jan 1 01:56 modalias
lrwxrwxrwx 1 root root 0 Jan 1 01:56 subsystem ->.. /../../bus/platform
-rw-r--r-- 1 root root 4096 Jan 1 01:56 uevent
drwxr-xr-x 3 root root 0 Jan 1 01:56 video4linux
这个模块的名字是 vpfe_capture