gpt4 book ai didi

linux-kernel - 如何从内核模块访问(打开/读取/等)/dev 设备?

转载 作者:行者123 更新时间:2023-12-04 06:07:31 24 4
gpt4 key购买 nike

我收到了一个驱动程序(PCI 卡的 PCAN 驱动程序,使用 rtdm),它创建/dev/pcan0 并且/dev/pcan1 被编译为 netdev 驱动程序。

该驱动程序附带了许多功能,但它们都针对读取 CAN 消息的用户级程序。然而,我需要的是从内核模块中读取这些消息。 PCAN 驱动程序不导出任何变量/函数,这意味着它不提供内核级 API 供我使用。

我简要查看了代码并从/dev 设备读取并写入它不使用 copy_from_usercopy_to_user .因此,我认为从我的内核模块打开/dev/pcan0 并从中读取应该是安全的。

现在我的问题是,如何从内核模块打开/读取/dev 设备?

附言我想从 RTAI 实时线程中读取 CAN 总线,您认为这会导致问题吗(例如,每次读取都通过 linux 内核并因此破坏实时条件?)

最佳答案

您可以直接从内核空间使用系统调用:sys_open()、sys_read()、sys_close()。
Linuxjournal article关于那个。

P/S:copy_from_user() 与内核空间地址完美配合。

关于linux-kernel - 如何从内核模块访问(打开/读取/等)/dev 设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8181784/

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