petalinux xilinx 单独编译模块 / Makefile 独立模块编译ko 方法

使用petalinux-build全编译驱动,效率很低;使用Makefile单独编译驱动,方法如下:
单独创建一个/workspace/drivers目录,其中创建test目录,添加新的Makefile文件,内容如下:

MODNAME:=test
obj-m:=$(MODNAME).o
PWD:=$(shell pwd)

#KERNELDIR=/home/xgxc/workspace/< project name >/build/tmp/work-shared/zynqmp-generic/kernel-build-artifacts
KERNELDIR=/home/xgxc/workspace/< project name >/build/tmp/work/zynqmp_generic-xilinx-linux/linux-xlnx/5.15.36+git999-r0/linux-xlnx-5.15.36+git999
CROSS_COMPILE=/opt/Xilinx/PetaLinux/2022.2/sdk/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-xilinx-linux/aarch64-xilinx-linux-
ARCH=arm64

all:
	$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) modules
	cp $(MODNAME).ko ~/workspace/
clean:
	@rm -f *.o *~ core .depend .*.cmd *.ko *mod* *symvers

.PHONY: all clean

make命令编译,如下图:
在这里插入图片描述
补充说明:
sysroot路径生成:

  1. 安装petalinux工具完成后,在其安装路径下即/opt/Xilinx/Petalinux/2022.2/,是没有sdk这个文件夹的,需要在一个编译ok的工程下执行下述命令来生成。
  2. 构建sdk:petalinux-build --sdk,构建时间有些长,如果有报错,多数跟根文件系统有关,例如某某安装包没勾选上之类的。构建完成后,会在<proj_root>/images/linux/下生成文件sdk.sh
  3. 安装sdk:petalinux-package --sysroot -s -d ,用此命令令将 SDK 提取到指定的目录中,一般放在petalinux安装路径下,方便后续单独模块编译。
    备注:arm和arrch64的sdk需要各自生成
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WARNING: /home/xyc/work/petalinux_prj/20230518/zynq_petalinux/build/tmp/work/zynqmp_generic-xilinx-linux/linux-xlnx/5.10+git999-r0/temp/run.do_kernel_configme.126308:414 exit 1 from 'exit 1' WARNING: Backtrace (BB generated script): #1: bbfatal, /home/xyc/work/petalinux_prj/20230518/zynq_petalinux/build/tmp/work/zynqmp_generic-xilinx-linux/linux-xlnx/5.10+git999-r0/temp/run.do_kernel_configme.126308, line 414 #2: do_kernel_metadata, /home/xyc/work/petalinux_prj/20230518/zynq_petalinux/build/tmp/work/zynqmp_generic-xilinx-linux/linux-xlnx/5.10+git999-r0/temp/run.do_kernel_configme.126308, line 251 #3: do_kernel_configme, /home/xyc/work/petalinux_prj/20230518/zynq_petalinux/build/tmp/work/zynqmp_generic-xilinx-linux/linux-xlnx/5.10+git999-r0/temp/run.do_kernel_configme.126308, line 152 #4: main, /home/xyc/work/petalinux_prj/20230518/zynq_petalinux/build/tmp/work/zynqmp_generic-xilinx-linux/linux-xlnx/5.10+git999-r0/temp/run.do_kernel_configme.126308, line 459 Backtrace (metadata-relative locations): #1: bbfatal, /home/xyc/work/petalinux_prj/20230518/zynq_petalinux/components/yocto/layers/core/meta/classes/logging.bbclass, line 60 #2: do_kernel_metadata, /home/xyc/work/petalinux_prj/20230518/zynq_petalinux/components/yocto/layers/core/meta/classes/kernel-yocto.bbclass, line 159 #3: do_kernel_configme, /home/xyc/work/petalinux_prj/20230518/zynq_petalinux/components/yocto/layers/core/meta/classes/kernel-yocto.bbclass, line 395 ERROR: Logfile of failure stored in: /home/xyc/work/petalinux_prj/20230518/zynq_petalinux/build/tmp/work/zynqmp_generic-xilinx-linux/linux-xlnx/5.10+git999-r0/temp/log.do_kernel_configme.126308 NOTE: recipe linux-xlnx-5.10+git999-r0: task do_kernel_configme: Failed ERROR: Task (/home/xyc/work/petalinux_prj/20230518/zynq_petalinux/components/yocto/layers/meta-xilinx/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2021.1.bb:do_kernel_configme) failed with exit code '1' NOTE: recipe libgcc-initial-10.2.0-r0: task do_configure: Succeeded NOTE: Tasks Summary: Attempted 545 tasks of which 0 didn't need to be rerun and 1 failed. ERROR: bitbake failed to configure u-boot ERROR: Failed to config u-boot. Check the /home/xyc/work/petalinux_prj/20230518/zynq_petalinux/build/config.log file for more details...
05-19
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值