在编译模块代码时 Makefile中指定了 KERNEL_SRC 版本为5.11.0-27-generic
KERNEL_VERSION ?= $(shell uname -r)
KERNEL_SRC := /lib/modules/$(KERNEL_VERSION)/build
#KERMEL_SRC = 5.11.0-27-generic
使用uname -r可以查看当前内核版本,当前版本与5.11.0-27-generic不符 直接make会失败(参数不对,函数未定义等问题)因此需要切换内核版本 具体流程如下
1.查看是否有该版本
apt-cache search linux| grep 5.11.0-27
如果没有
1.加入源:deb http://security.ubuntu.com/ubuntu trusty-security main
2.apt-get update 升级
2.install 相关版本
apt-get install linux-headers-5.11.0-27-generic linux-image-5.11.0-27-generic
升级后发现依然make失败,函数定义不对,定位到以下头文件
include <drm/gpu_scheduler.h>
在内核源码可以查看各个版本的内核代码
选择对应的版本查看对应的drm/gpu_scheduler.h文件 发现应用代码需要对应的是5.15版本中的drm/gpu_scheduler.h文件,替换该文件后 make成功