使用MAJOR和MINOR设备编号

时间:2012-09-24 12:10:56

标签: linux-device-driver

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

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

我遇到的问题是使用这些数字的确切位置。截至我查看,它引导我得到以下答案

  

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

任何人都可以帮助我。

3 个答案:

答案 0 :(得分:2)

执行ls -l /dev/*会显示

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

116, 33是此特定设备的主要内容和次要内容。

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

每个主要号码只有一个驱动程序,并且由它处理多个未成年人。

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

答案 1 :(得分:0)

简单来说,

主要号码告知使用了哪个驱动程序。注册设备驱动程序时会分配此编号。

次要号码告知该设备类型使用的设备。

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

有关详细信息,请http://www.makelinux.net/ldd3/

答案 2 :(得分:0)

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

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