首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为WindRiver Linux编译内核模块与编译标准桌面版本有什么显着不同吗?

问为WindRiver Linux编译内核模块与编译标准桌面版本有什么显着不同吗?
EN

Stack Overflow用户
提问于 2014-10-02 01:03:42
回答 1查看 224关注 0票数 0

我正在尝试编译一个内核模块(来自http://www.rekall-forensic.com/的pmem.ko,这并不重要)。在过去,编译此模块只需在Makefile中使用以下行:

代码语言:javascript
复制
pmem: pmem.c
    $(MAKE) -C $(KHEADER) O=$(KOUTPUT) M=$(PWD) modules

KHEADER设置为内核头的位置。如果内核最初是使用O=标志构建的,则将KOUTPUT设置为匹配。否则,它与KHEADER匹配。

现在,我得到如下错误消息:

代码语言:javascript
复制
make: Entering directory `<KHEADER>'
  CC [M]  <pwd>/module.o
In file included from <KHEADER>/include/linux/module.h:10,
             from <PWD>/module.c:4:
<KHEADER>/include/linux/sched.h:4:36: error: asm/param.h: No such file or directory

注意:我已经用变量的内容替换了实际的路径。

我可以看到这次尝试和其他尝试有一个显著的不同。在以前的工作构建中,所有输出产品似乎都在相同的输出中(包括.config文件)。在本例中,.config文件包含内核源文件,而不是输出目录。我修复了由于将.config文件复制到我看来是输出目录而导致的错误。

我猜我想问的是,构建linux内核模块的标准方法是否适用于WindRiver变体,或者是否需要针对不同的构建过程进行调整。

EN

回答 1

Stack Overflow用户

发布于 2014-10-10 00:33:50

复制.config是不够的。

实际上,您应该重新构建内核或使用KHEADER的源代码路径。

您在构建内核时没有使用O=标志

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26146667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档