Linux设备驱动文档查找及主/次设备号查询方法咨询
引自2017年出版的《UNIX and Linux System Administration》:
现代系统会自动管理设备文件,但极少数罕见的极端场景下仍需要使用mknod命令手动创建设备,操作方法如下:mknod filename type major minor其中filename为待创建的设备文件名称,type取值c代表字符设备、b代表块设备,major和minor分别对应主设备号与次设备号。若你创建的设备文件对应的驱动已存在于内核中,请查阅对应驱动的文档获取合适的主、次设备号。
设备驱动官方文档的获取路径
- Linux内核原生支持的驱动文档随内核源码一同发布,多数发行版会将稳定版内核文档打包为
kernel-doc类软件包,安装后可直接在/usr/share/doc/kernel-doc-*目录下按驱动分类检索对应说明,其中包含驱动预留的主次设备号规则。 - 硬件厂商提供的第三方外置驱动,相关文档会随驱动安装包一同发布,安装后一般存放在
/usr/share/doc/[对应驱动包名]目录下。
主、次设备号的查询方法
- 读取系统已注册设备号列表:执行
cat /proc/devices命令,输出内容会分别列出当前内核中所有已注册的字符设备、块设备对应的主设备号和驱动名称映射关系。 - 针对已有设备节点的驱动:直接运行
ls -l /dev/[对应设备名],输出结果的第5、6列就是该设备的主、次设备号。 - 针对尚未创建设备节点的驱动:可通过
modinfo [驱动模块名]查询驱动模块的附加信息,部分驱动会在输出中明确标注预留的主次设备号;也可直接查阅驱动源码的头文件定义获取对应数值。
注意事项
- 手动创建设备节点仅推荐在系统自动设备管理机制失效的极端场景下操作,操作前请确认对应驱动已正确加载,避免设备号冲突导致驱动异常
内容的提问来源于stack exchange,提问作者Drago Ban
相关产品推荐
相关产品推荐

