我需要构建一个Linux内核模块,它必须与我的源代码树的版本相匹配。Linux内核:构建一个与源树版本匹配的树外模块
当我从源码树中构建模块时,模块的版本号是我的源码树中的一个。但是,当我从源代码树之外构建它时,使用以下makefile,它使用当前正在运行的内核版本。我不知道如何使用内核的源代码树。
ifneq ($(KERNELRELEASE),)
obj-m := chardriver.o
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
我想这个问题来自于$(外壳使用uname -r)(因为它显然返回正在运行的内核的版本,而不是版本的源码)
任何人知道如何指定来自树外的版本?