为什么内核将 250 指定为设备驱动程序中的主设备号

为什么内核将 250 指定为设备驱动程序中的主设备号

我最近开始从事设备驱动程序开发。最初,我构建了一个简单的驱动程序和应用程序。我注意到,每次插入模块时,内核都会分配一个主编号 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——次要编号。

这应该会有效。

相关内容