linux usrsrc空的 编译内核模块编不了 怎么解决?

linux usrsrc空的 编译内核模块编不了 怎么解决?,第1张

-I /usr/src/linux-headers-2.6.32-24/include 其中, -I和后面的路径没有空格

-I/usr/src/linux-headers-2.6.32-24/include

一般也很少直接用gcc命令, 大部分是用makefile, make -C kernel_path modules

你的 /lib/modules/`uname -r`/build 指向哪里?

如果不存在请建立一个sym link指向你的kernel header directory:

/lib/modules/`uname -r`/build ->/usr/src/linux-headers-2.6.31-14/

Ref here:

http://www.linuxquestions.org/questions/debian-26/gcc-giving-error-linux-init-h-no-such-file-or-directory-927068/

在做驱动时,往往想编译模块,让后加载来使用,这样灵活性较高,无需重新编译内核

然后在使用供应商提供的内核时,往往无法编译成内核。也就是说把宏设置为y,编译进内核没有问题,但是设置成m编译成模块却不行。检查很多地方都不行,实际上这个问题很简单,可就这个简单的问题,搞了我一天,真心伤啊,这里做个记录做谨记。

解决的办法很简单,看看在执行内核make的时候是否添加了modules参数,如下面的形式:

make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-cortex_a9-linux-gnueabi-

如果不能编译,是不是发现没有modules这个参数呢。添加上问题解决。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7591269.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-07
下一篇2023-04-07

发表评论

登录后才能评论

评论列表(0条)

    保存