/lib/modules/***/build不存在的问题

294 阅读1分钟

最近转换到Arch系上做内核开发,发现编译的时候找不到对应的build目录,后面发现是运行的内核版本和安装的头文件版本没有匹配, 重新安装内核头文件匹配运行内核版本即可。

用以下Makefile为例:

obj-m := hello.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)

all:
	make -C $(KDIR) M=$(PWD) modules

clean:
	make -C $(KDIR) M=$(PWD) clean

make之后没有build路径

pacman -Q linux-headers # 查看安装的内核头文件版本号
uname -r # 查看当前运行的内核版本号

查看之后发现:

uname -r :6.13.9-1-MANJARO 
pacman -Q linux-headers:linux510-headers 5.10.235-1

于是将Linux-headers更新到对应的版本号,通过pacman卸载头文件,然后pacman安装指定版本头文件。

重新make,问题解决。

image.png