加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何将/ dev /中的设备与实际驱动程序相关联

发布时间:2020-12-14 00:54:50 所属栏目:Linux 来源:网络整理
导读:我试图了解设备驱动程序在 linux中的工作原理. 我有一个设备节点如下(主要编号89,设备名称i2c-0) crw-r--r-- 1 0 0 89,0 Sep 29 01:36 /dev/i2c-0 我有名为i2c.ko的i2c驱动程序,我将在启动时执行insmod i2c.ko. 在驱动程序中,将在初始化期间调用以下函数: r
我试图了解设备驱动程序在 linux中的工作原理.

>我有一个设备节点如下(主要编号89,设备名称i2c-0)

crw-r--r--    1 0        0         89,0 Sep 29 01:36 /dev/i2c-0

>我有名为i2c.ko的i2c驱动程序,我将在启动时执行insmod i2c.ko.
>在驱动程序中,将在初始化期间调用以下函数:

register_chrdev(89,"i2c",&i2chtv_fops)<0    // not "i2c-0"

我的问题是:当用户调用open(“/ dev / i2c-0”,O_RDWR)时,内核如何知道要使用哪个驱动程序?我注意到设备名称是i2c-0但注册设备名称是i2c.是因为它们使用与内核可以使用正确驱动程序相同的主号码?

解决方法

是的,主要数字选择驱动程序和次要数字选择“单位”(无论可能是什么;对于控制台驱动程序,它是不同的屏幕).

您看到-0是“单位”(如果您的系统中有多个i2c总线).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读