/lib/modules/<version>/build/ 不存在

Ric*_*cky 2 centos linux-device-driver

我正在尝试编写一个非常基本的“Hello World”设备驱动程序示例,该示例在任何设备驱动程序实现介绍性课程中都有讲授。我的makefile如下:

obj-m := hello.o

KDIR := /lib/modules/$(shell uname -r)/bulid

PWD := $(shell pwd)

all:
 make -C $(KDIR) M=$(PWD) modules
Run Code Online (Sandbox Code Playgroud)

当我使用 make 命令时,它显示 /lib/modules/version_no/build/ 不存在。所以我进入目录/lib/modules/version_no,发现有一个目录build,但是如果我使用ls命令,它打印成红色,这意味着该目录已被弃用。它包含一个指向 ../../../usr/src/version_no 的链接,但令我惊讶的是,该链接中的版本号与 /usr/src/ 中实际文件夹的名称不同。谁能指出是什么问题?我正在使用 centos 6.1。

yas*_*shC 5

这是因为您尚未下载特定内核版本的 linux 头文件。

假设您的内核版本是4.15.0-32-generic,请使用安装所需的头文件sudo apt install linux-headers-4.15.0-32-generic

在你的情况下,你可以通过 yum install kernel-devel kernel-headers