我下载了一个内核包并自行修改。新内核现在运行良好,但是当我想编写用户空间代码时,会出现问题,因为无法找到我内核中定义的新宏。我发现这是因为用户空间代码仍然包含来自/usr/include/
的头文件。我已尝试sudo make headers_install_all INSTALL_HDR_PATH=/usr
(以及make headers_install
),但它仍会将旧的头文件安装到/usr/include
中(我会在制作之前故意删除linux/socket.h
并生成新文件,这不是修改后的那个)。
我也发现这篇文章:how to export a modified kernel header这和我的问题差不多。不幸的是,除了手动修改系统头文件之外,我没有找到解决方案。
我用来编译内核的命令是:
$ make
$ make modules_install
$ make headers_install INSTALL_HDR_PATH=/usr
$ make install
我还检查过PATH2MY_KERNEL/include/
确实包含修改过的头文件,这些文件应该是用来编译内核的文件。
知道如何用我的系统更新系统内核头文件吗?提前谢谢!