ls /dev
Run Code Online (Sandbox Code Playgroud)
命令列出设备文件。
如何知道与这些设备文件相关联的驱动程序/major_numbers/minor_numbers?
ls -l /dev 会给你主要和次要号码,例如
crw-rw---- 1 根拨出 4, 64 Apr 4 07:54 /dev/ttyS0
有主要号码 4 和次要号码 64。
然后您可以查看/proc/devices以查找主要编号。在这个例子中,我们有一个c带有主编号的字符设备(在行的开头)4,并且在/proc/modules我们找到
字符设备: ... 4 吨 4 吨
次要编号的分配取决于设备。
一些设备由核心内核代码驱动(例如tty),而其他设备由可加载模块管理(例如rfcomm)。您可以尝试寻找/proc/modules匹配的模块;或者查找/proc/kallsyms模块名称。您会得到很多结果,但要查找的关键是方括号中是否存在字符串。例如,grep tty /proc/kallsyms给
0000000000000000 t tty_drivers_open 0000000000000000 t show_tty_range 0000000000000000 t show_tty_driver ...
而grep rfcomm /proc/kallsyms吉夫斯
0000000000000000 t rfcomm_apply_pn [rfcomm] 0000000000000000 t rfcomm_dlc_debugfs_open [rfcomm] 0000000000000000 t rfcomm_dlc_debugfs_show [rfcomm]
[rfcomm]表示代码在rfcomm模块中,而tty在内核本身而不是模块中,所以方括号中没有任何内容。
这种方法不是确定的,但应该让您对控制代码所在的位置有所了解。
使用-l显示数字的选项。
$ ls -l /dev/sda*
brw-rw---- 1 root disk 8, 0 Jan 22 10:34 /dev/sda
brw-rw---- 1 root disk 8, 1 Dec 4 13:24 /dev/sda1
brw-rw---- 1 root disk 8, 2 Dec 4 13:24 /dev/sda2
brw-rw---- 1 root disk 8, 3 Dec 4 13:24 /dev/sda3
...
Run Code Online (Sandbox Code Playgroud)
stat也显示这些(作为“设备类型”)
$ stat /dev/sda
File: '/dev/sda'
Size: 0 Blocks: 0 IO Block: 4096 block special file
Device: 5h/5d Inode: 3431 Links: 1 Device type: 8,0
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15620 次 |
| 最近记录: |