gpt4 book ai didi

linux - 无法为特定内核版本构建 Linux 内核模块

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:45 25 4
gpt4 key购买 nike

我正在尝试为 linux 4.15.0-23-generic 构建一个 LKM。我正在使用以下命令来制作它。

make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modules

不幸的是,make 无法获取正确的头文件。

WARNING: "unwind_get_return_address_ptr" [/home/probir/hyperf/hyperf/hyperf.ko] undefined!WARNING: "__kernel_text_address" [/home/probir/hyperf/hyperf/hyperf.ko] undefined!make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-23-generic'

头文件位于以下目录中。

/usr/src/linux-headers-4.15.0-23-generic/arch/x86/include/asm/unwind.h

/usr/src/linux-headers-4.15.0-23-generic/include/linux/kernel.h

为什么即使给出了正确的版本,make 也无法找到 header ?

最佳答案

这些函数(unwind_get_return_address_ptr__kernel_text_address)未导出(通过 EXPORT_SYMBOL 左右),因此它们不能被模块使用 em>。只有代码编译到内核本身可以使用给定的符号。

关于linux - 无法为特定内核版本构建 Linux 内核模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50916038/

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