如何使用Yocto SDK构建Linux内核模块?

编程入门 行业动态 更新时间:2024-10-27 21:22:47
本文介绍了如何使用Yocto SDK构建Linux内核模块?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试使用Yocto SDK构建一个Linux内核模块。 但是,我遇到了编译错误,它报告

./include/uapi/asm-generic/int-ll64.h:12:10: fatal error: asm/bitsperlong.h: No such file or directory #include <asm/bitsperlong.h>

这是我的Makefile

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之前,我正在设置源环境。

$source /opt/poky/2.7.3/environment-setup-cortexa9t2hf-neon-poky-linux-gnueabi $make 推荐答案

在树外内核模块中遇到了类似的问题,这要归功于它现在正在编译的";@tannoy Connect";的注释。以下是基本步骤:

  • 通过您的镜像配方在SDK中启用内核-devsrc(请参阅Yocto Kernel Dev Manual
  • TOOLCHAIN_TARGET_TASK += "kernel-devsrc"
  • 将SDK安装到您的主机上,然后运行内核src Makefile(谢谢&@tannoy Connect";):
  • 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
  • 编译您的树外内核模块(注意:我的Makefile使用KERNEL_SRC,因此与原始问题不同,因为它通常是通过Yocto模块编译的。bbclass):
  • export KERNEL_SRC=path/to/sdk/sysroots/aarch64-linux/usr/src/kernel/ make

    更多推荐

    如何使用Yocto SDK构建Linux内核模块?

    本文发布于:2023-07-27 14:20:44,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1222828.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:如何使用   内核   模块   SDK   Yocto

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!