【问题标题】:How is a device node created when a piece of hardware is attached to the Computer? [closed]将硬件连接到计算机时如何创建设备节点? [关闭]
【发布时间】:2012-04-20 13:37:01
【问题描述】:

我想知道当硬件连接到系统时,设备节点是如何创建的。

我知道的信息:

当一个硬件连接到系统时,设备名与驱动名进行比较,如果匹配,则调用probe。

我想知道的信息:

设备节点是在什么时候创建的,是谁创建的? (换句话说,我想知道 mknod 发生在哪里?)

这几个月来一直困扰着我。请以编程方式告诉我这是在哪里发生的。

【问题讨论】:

  • 感谢您的宝贵编辑..

标签: linux-kernel linux-device-driver hotplugging


【解决方案1】:

在大多数(但不是全部!)Linux 系统上,这是由Udev 处理的。

通过 netlink 套接字通知新硬件。然后它会根据其配置创建设备节点。

【讨论】:

  • 这个特定代码存在于内核代码中的什么位置?请指导我查看相应的文件。我自己查一下
  • 您阅读了链接吗? Udev 代码完全在用户空间中运行。 netlink 消息当然是从内核触发的,与 kobject 系统密切相关。大部分相关代码请参见 lib/kobject_uevent.c。
  • 是的。我现在读了。 linux文件名没有写在里面。谢谢你的精彩回答。我正在浏览代码。一旦我完全理解它,我将接受答案。再次感谢
  • 一个问题。这一切都发生在调用probe之前还是调用probe之后?
  • 它适合 kobject,所以我猜 kobject 是什么时候创建的。
猜你喜欢
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 2012-10-15
  • 2019-02-15
  • 2013-03-24
  • 1970-01-01
相关资源
最近更新 更多