我正在尝试编写一个非常基本的“ Hello World”设备驱动程序示例,该示例将在任何设备驱动程序实现入门课程中进行教授。我的makefile如下:
obj-m := hello.o
KDIR := /lib/modules/$(shell uname -r)/bulid
PWD := $(shell pwd)
all:
make -C $(KDIR) M=$(PWD) modules
当我使用make命令时,它表明/ lib / modules / version_no / build /不存在。因此,我进入目录/ lib / modules / version_no,发现存在一个目录构建,但是如果使用ls命令,它将以红色打印,这意味着该目录已被弃用。它包含一个指向../../../usr/src/version_no的链接,但令我惊讶的是,该链接中的版本号与/ usr / src /中的实际文件夹名称并不相同。谁能指出这是什么问题?我正在使用centos 6.1。
答案 0 :(得分:1)
这是因为您尚未下载特定内核版本的linux标头。
假设您的内核版本为4.15.0-32-generic
,请使用sudo apt install linux-headers-4.15.0-32-generic
您可以通过以下方式获得它
yum install kernel-devel kernel-headers