gpt4 book ai didi

linux - 设备如何链接到 Linux 中的驱动程序

转载 作者:太空狗 更新时间:2023-10-29 12:20:16 24 4
gpt4 key购买 nike

设备文件链接到驱动程序的主要和次要编号。那么驱动程序如何链接到设备???当我们插入一个设备时,内核如何知道它与加载的模块一起工作

最佳答案

关于供应商和设备 ID 以及热插拔和 udev 的答案是正确的,但他们没有解释什么是主要编号和次要编号。只是为了让 future 的搜索者涵盖所有关键字,我将在此处执行此操作。

主要和次要设备编号,如 ls -l/dev 中所示,不有助于在检测到设备时识别要加载的驱动程序。它们用于让内核在您打开设备文件时知道您正在访问的设备。

当一个驱动被加载时,如果它支持/dev中的任何特殊文件,它会调用register_chrdev(或一些类似的函数),通知内核主要的它要使用的号码。一些驱动程序通过要求内核选择一个未使用的主编号来动态选择主编号。注册过程将驱动程序及其主要编号放入一个表中,稍后可以找到它们。

永久分配的设备编号在中央机构注册,注册信息发布在 Documentation/admin-guide/devices.* 中。 .

/dev 中的文件具有与其驱动程序匹配的主编号,以及标识特定设备或功能的次编号。这些文件由 MAKEDEV 静态创建或由 hotplug/udev 系统动态创建。低级别的“创 build 备文件”操作称为 mknod

当用户程序打开设备文件时,主要和次要编号用于在 register_chrdev 维护的表中查找驱动程序,并调用驱动程序的方法来为用户请求提供服务。

关于linux - 设备如何链接到 Linux 中的驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11714588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com