首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Yocto构建linux内核模块?

如何使用Yocto构建linux内核模块?
EN

Stack Overflow用户
提问于 2020-03-30 04:03:53
回答 1查看 2.7K关注 0票数 1

我正在尝试使用Yocto构建一个linux内核模块。但是,我遇到编译错误,它抱怨

代码语言:javascript
运行
复制
./include/uapi/asm-generic/int-ll64.h:12:10: fatal error: asm/bitsperlong.h: No such file or directory
 #include <asm/bitsperlong.h>

这是我的Makefile

代码语言:javascript
运行
复制
ARCH ?= arm
CROSS_COMPILE ?= arm-poky-linux-gnueabi-
KERNELDIR ?= /opt/poky/2.7.3/sysroots/cortexa9t2hf-neon-poky-linux-gnueabi/usr/src/kernel/
PWD := $(shell pwd)

.PHONY: build clean

build:
    $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) modules

clean:
    rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c modules.order  Module.symvers

# Incorporate modules into a multi-part driver
my-objs := hello.o    


$(info Building with KERNELRELEASE = ${KERNELRELEASE})
EXTRA_CFLAGS+=-I$(PWD)/../include
obj-m := hello.o

在调用make之前,我正在设置源环境。

代码语言:javascript
运行
复制
$source /opt/poky/2.7.3/environment-setup-cortexa9t2hf-neon-poky-linux-gnueabi     
$make
EN

回答 1

Stack Overflow用户

发布于 2021-04-30 13:57:06

由于"@tannoy“的注释,它现在编译了,所以它的树外内核模块也出现了类似的问题。以下是基本步骤:

  1. 通过映像食谱在SDK中启用内核-devsrc(请参阅Yocto内核开发手册 )。
代码语言:javascript
运行
复制
    TOOLCHAIN_TARGET_TASK += "kernel-devsrc"
  1. 将SDK安装到主机上,然后运行内核src makefile (谢谢“@”):
代码语言:javascript
运行
复制
    source path/to/sdk/environment-setup-aarch64-linux
    cd -P path/to/sdk/sysroots/aarch64-linux/usr/src/kernel
    # Note the -P argument: kernel is a symlink, in my case:
    # path/to/sdk/sysroots/aarch64-linux/lib/modules/5.4.0-xilinx-v2020.1/build
    make scripts
    make prepare
  1. 编译离树内核模块(注意:我的Makefile使用KERNEL_SRC,因此与最初的问题不同,因为它通常是通过yocto module.bbclass编译的):
代码语言:javascript
运行
复制
    export KERNEL_SRC=path/to/sdk/sysroots/aarch64-linux/usr/src/kernel/
    make
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60923890

复制
相关文章

相似问题

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