【发布时间】:2014-07-25 14:20:59
【问题描述】:
我是内核编程的新手,我想修改 arch/x86/include/asm/tlbflush.h 中的头文件,以便我的内核模块可以使用此头文件导出的功能之一。
我有 3.2.59 内核的源代码并对 tlbflush.h 进行了更改。我包含了头文件 tlbflush.h。当我编译模块时,我收到一条警告,说我正在使用的函数未找到,因此我无法安装我的内核模块。
我经历了以下 how to export a modified kernel header
并尝试了以下步骤来安装修改后的内核头文件:
- 制作
- sudo make modules_install
- sudo make headers_install INSTALL_HDR_PATH=/usr/include
- sudo make install
- sudo update-initramfs -c -k 3.2.59
提到的链接谈到将内核头文件安装到 /usr/include 以访问用户空间进程
我想提一下,由于在我的 ubuntu 机器上进行了升级,我安装了这么多头文件。它们也都有扩展,如 3.2.0-59、3.2.0-xx 我认为 3.2.0-59 与 3.2.59 相同,但我不确定。如果这是错误的,请纠正我。谢谢!
编辑:
对不起,我对 /usr/src/... 文件夹中的标头与正在修改的内核源代码中的标头感到困惑。我对下载的内核源代码的标题进行了更改,之后现在没有警告了。
但问题仍然存在,为什么要使用 /usr/src/ 中的内核头文件?
如果您花在这上面,我很抱歉浪费了时间。
【问题讨论】: