我最近开始从事设备驱动程序开发。最初,我构建了一个简单的驱动程序和应用程序。我注意到,每次插入模块时,内核都会分配一个主编号 250。我想知道为什么它总是分配 250 ?? 我想知道的另一件事是,我已经使用命令“mknod”生成了设备文件。如果我想在设备内存中创建一个永久设备文件,即使关机后仍保留在其中,该怎么办?
任何想法都将非常感激。
答案1
当您在注册设备或创建节点(mknod)时未指定主设备号时,默认采用 250。
例如:要注册一个字符设备驱动程序,函数语法是
register_chrdev(Major Number, Name of the driver, File operations);
这必须在 module_init 调用函数中完成。
要创建一个节点,加载该模块后
sudo mknod -m 666 /dev/char_driver c 240 0
这里,
- 666——许可
- char_driver - 驱动程序的名称(可以是任何名称)
- c - 表示它是一个字符驱动程序
- 240 – 主号码(与 register_chrdev 中的相同)
- 0——次要编号。
这应该会有效。