0

我对主要和次要设备号的概念有一些澄清。我理解以下概念。

  • 在 Linux 世界中,硬件设备不过是称为设备文件的文件(但特殊)。
  • 并且每个设备文件都与捆绑到一个dev_t类型中的 MAJOR 和 MINOR 编号相关联。
  • 这些编号由函数分配给设备register_chrdev_region

我的问题是这些数字到底在哪里使用。截至我检查时,它引导我得到以下答案

内核使用此编号来识别与设备关联的驱动程序

谁能帮我这个。

4

3 回答 3

2

做 als -l /dev/*会显示一些类似的东西

...
crw-rw---T+ 1 root audio 116, 33 sept. 21 09:19 timer
...

是这个116, 33特定设备的主要和次要设备。

Tha major 设置设备的类型,通常是与其关联的驱动程序。次要列出该类型的第一个、第二个、第三个……设备。

每个主要编号只有一个驱动程序,并且可以处理多个未成年人。

当然,现在可以动态分配这些数字。

于 2012-09-24T12:15:48.747 回答
0

简单来说,

主要编号告诉使用哪个驱动程序。此编号是在注册设备驱动程序时分配的。

次要编号告诉哪个设备确切使用了该设备类型。

假设硬盘可能有四个分区。每个分区将具有单独的次要编号,其中只有一个主要编号。因为所有分区都使用相同的存储驱动程序。

更多详情,http://www.makelinux.net/ldd3/

于 2012-09-25T07:26:00.147 回答
0

主设备号和次设备号告诉内核如何访问设备。

一个通用的主设备号分配给由同一设备驱动程序控制的所有设备。次要编号有助于区分使用相同设备驱动程序的确切设备类型/控制器。

于 2014-09-17T17:39:30.490 回答