gpt4 book ai didi

c - 如何在没有内核源代码树的情况下构建外部内核模块

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:12 27 4
gpt4 key购买 nike

我有一个编译内核模块和用户空间应用程序的第 3 方软件包。不幸的是,这个第 3 方非常复杂,并且没有使用 Kbuild 来构建内核模块(我试过但没有成功)。

我尝试使用以下几行构建一个简单的驱动程序:

    arm-linux-gnueabihf-gcc  -D__KERNEL__ -Wall -include /lib/modules/4.4.62-18.6-default/build/include/generated/autoconf.h -MD -MP   -Werror -O2 -I /usr/src/linux-4.4.62-18.6/include -I /src/include -DMODULE -c -o hello_dkm.o hello_dkm.c  
$(LD) -o $(debug_target) $(LD_COMMON_FLAGS) -g $(debug_Objs)

我有:

fatal error: /usr/src/linux-4.4.62-18.6/include/linux/thread_info.h:54:29: fatal error: asm/thread_info.h: No such file or directory

附录

  • 平台:Altera Cyclone V SoC,ARM cortex A9 双核
  • 内核:linux Altera 3.7.0
  • 主机:Linux openSuse 42

PS:在我团队的项目平台中,很难使用使用内核源代码树的经典编译行: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) 模块

提前致谢

最佳答案

您的直接问题是“asm/thread_info.h”不在您的CPATH 中,也没有在您的任何-I 参数中指定。您需要在系统上找到该文件并将其根放入 CPATH 环境变量或 -I 指令中。

为了清楚起见,如果您将文件定位在 /usr/local/include/linux/asm/thread_info.h,您必须在 arm-linux-gnueabihf-gcc 之前 加上CPATH=/usr/local/include/linux,或者在命令行某处插入-I/usr/local/include/linux,也许是对的在 arm-linux-gnueabihf-gcc 之后。

可能还会有其他问题,但这应该会让您进入下一步。

关于c - 如何在没有内核源代码树的情况下构建外部内核模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44279759/

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