【发布时间】:2014-12-15 17:08:45
【问题描述】:
我需要构建一个 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
我猜问题出在 $(shell uname -r) 上(因为它明显返回的是运行内核的版本,而不是源代码的版本)
有人知道如何从树外指定版本吗?
【问题讨论】:
标签: build module linux-kernel version kernel-module