我可以使用内核模块用硬件地址模拟硬件设备吗? (编辑:虚拟地址将路由到我的模块)

时间:2019-04-14 09:23:36

标签: linux-kernel

我需要测试我们的生产Linux模块如何处理硬件错误。 我正在测试的驱动程序不应更改,除非它可能是驱动程序用来与硬件通信的硬件地址。


我想编写一个内核模块来拦截对硬件的读/写,并且如果需要更改它们,它也需要处理中断,但是我知道该怎么做。


我可以模拟供生产驱动程序加载的硬件地址,并将读/写路由到我的驱动程序,然后转发给硬件,还是为此需要特定的硬件?


编辑:由于我可以覆盖正在测试的驱动程序的mmap,我可以在内核空间中创建一个虚拟地址来将读取/写入重定向到我的模块吗?

1 个答案:

答案 0 :(得分:0)

显然,由于我们的驱动程序应该在不同的硬件上工作,因此它具有用户应实现的“硬件抽象层”,并且对硬件的所有访问都在该层中进行。我将在此处添加错误插入。 如果有人仍然有办法,请让我知道。 顺便说一句,我正在研究手臂处理器。