【发布时间】:2014-05-09 19:27:01
【问题描述】:
是否有人知道是否可以以编程方式访问udev 存储规则的数据结构?如果可以修改它们?
简而言之:我想运行一个程序并产生与添加新规则相同的效果,而无需实际修改任何.rule 文件。我想把这一切都记在心里。
如果可能的话?我正在阅读systemd 代码以查找有关udevdaemon 如何读取.rules 文件的信息,然后将此规则“传达”给内核中的“某人”。
我认为这种“沟通”是关键。但我找不到它。
【问题讨论】:
是否有人知道是否可以以编程方式访问udev 存储规则的数据结构?如果可以修改它们?
简而言之:我想运行一个程序并产生与添加新规则相同的效果,而无需实际修改任何.rule 文件。我想把这一切都记在心里。
如果可能的话?我正在阅读systemd 代码以查找有关udevdaemon 如何读取.rules 文件的信息,然后将此规则“传达”给内核中的“某人”。
我认为这种“沟通”是关键。但我找不到它。
【问题讨论】:
我认为不可能通过配置文件以外的其他方式添加udev 规则。但是,如果它对您很重要,您仍然可以在/etc/udev/rules.d 上挂载tmpfs 并在那里编写您的规则,一切都将在内存中发生而不会影响磁盘。或者您可以在src/udev/udev-rules.c 中实现自己的配置机制。代码必须以您喜欢的任何方式接收配置并调用rules_add_string。
关于内核和udev 之间的通信,udev 只是从套接字读取内核事件,然后应用其规则在/dev 中创建适当的设备。内核永远不会收到udev 配置,它并不关心它。
【讨论】: