首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Intel伽利略在交叉编译工具链中添加内核头文件

Intel伽利略在交叉编译工具链中添加内核头文件
EN

Stack Overflow用户
提问于 2015-03-25 13:23:52
回答 1查看 1.1K关注 0票数 0

I on BSP v1.1 yocto是1.6

我正在尝试设置交叉编译工具链来编译字符驱动程序代码,但是我得到的输出是

mark@localhost ~$ ${CC} first.c -o first

first.c:1:24:致命错误: linux/init.h:没有这样的文件或目录 .#include ^编译终止。

我认为问题是头不在工具链/opt/iot-devkit/1.6.1/sysroots/i586-poky-linux/usr/include/linux/~中,在这个位置没有

我认为必须添加一些东西,如IMAGE_INSTALL或IMAGE_FEATURE,但我不知道是什么

我在正确的轨道上吗?有人知道我要补充什么吗?还是我完全偏离轨道了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-26 06:41:44

首先,您不能只在内核模块上运行${CC}就可以构建内核模块。您应该始终使用Makefile,它将其大部分工作重定向到内核源Makefile。

为您创建一个Makefile模块,包含类似于:

代码语言:javascript
复制
obj-m += hello-1.o

all:
    make -C  $(KERNEL_SRC M=$(PWD) modules

clean:
    make -C  $(KERNEL_SRC) M=$(PWD) clean

示例取自Linux内核模块编程指南 (注意,实际命令需要有一个制表符用于缩进)。

然后,您必须将KERNEL_SRC定义为/opt/iot-devkit/1.6.1/sysroots/i586-poky-linux/usr/src/kernel/,无论是在Makefile中,还是在Makefile中。(使用像KERNEL_SRC这样的变量将确保您的模块配方在使用bitbake构建时自动选择正确的位置)。

要手动构建内核模块,请执行以下操作:

  1. 为SDK提供环境-*文件。
  2. 转到模块目录。
  3. KERNEL_SRC=/opt/iot-devkit/1.6.1/sysroots/i586-poky-linux/usr/src/kernel LDFLAGS="“但是,这将失败,因为无法找到修复程序。我们会手工解决这个问题。
  4. cd /opt/iot-devkit/1.6.1/sysroots/i586-poky-linux/usr/src/kernel
  5. 制作silentoldconfig脚本
  6. 返回到模块目录。
  7. “KERNEL_SRC=/opt/iot-devkit/1.6.1/sysroots/i586-poky-linux/usr/src/kernel LDFLAGS=”

这现在应该会产生hello.ko,您应该能够在伽利略板上发现它。

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

https://stackoverflow.com/questions/29256939

复制
相关文章

相似问题

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