主要和次要设备编号的使用

问题描述 投票:0回答:4

我确实对主要和次要设备编号的概念进行了一些澄清。我理解以下概念。

  • 在 Linux 世界中,硬件设备只不过是称为设备文件的文件(但很特殊)。
  • 每个设备文件都与绑定到
    dev_t
    类型的 MAJOR 和 MINOR 编号相关联。
  • 这些编号通过功能分配给设备
    register_chrdev_region

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

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

任何人都可以帮我解决这个问题吗?

linux-device-driver
4个回答
4
投票

执行

ls -l /dev/*
将显示类似于

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

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

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

每个主要号码只有一名司机,多个次要号码由其处理。

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


1
投票

简单来说,

Major Number 告诉您使用哪个驱动程序。该号码是在注册设备驱动程序时分配的。

次要数字告诉您确切使用该设备类型的哪个设备。

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

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


1
投票

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

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


0
投票

在linux中,用户空间和内核空间之间的通信是通过位于

/dev
目录中的设备文件进行的

如果用户想要将数据发送到硬件设备,只需应用程序将打开设备文件并写入缩进数据

现在的问题是设备文件如何找到合适的驱动程序?

这里出现设备号,用于查找关联的驱动程序 设备编号是主要编号和次要编号的组合

主设备号:用于标识设备类型,例如 i2c 设备或 spi 设备。 次要号码:用于识别特定驱动程序

https://linuxdeveloper.quora.com/What-is-Device-Number-in-Linux这有详细解释。

© www.soinside.com 2019 - 2024. All rights reserved.