用于驱动程序创建的构建路径无效

用于驱动程序创建的构建路径无效

我想创建一个简单的 Hello world 驱动程序,如下所示:第2页并用 Makefile 编译它:

obj-m := hello.o

all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

但我得到了:

制作1: *** /lib/modules/4.3.5-300.fc23.x86_64/build: 没有这样的文件或目录。

这是逻辑,因为建造是一个链接/usr/src/kernels/4.3.5-300.fc23.x86_64,我的/usr/src目录是空的。内核开发已安装rpm -qa|grep kernel::

kernel-headers-4.3.5-300.fc23.x86_64
kernel-modules-4.3.5-300.fc23.x86_64
kernel-core-4.2.3-300.fc23.x86_64
kernel-devel-4.3.5-300.fc23.x86_64
kernel-4.2.3-300.fc23.x86_64
kernel-modules-extra-4.3.5-300.fc23.x86_64
kernel-modules-extra-4.2.3-300.fc23.x86_64
kernel-core-4.3.5-300.fc23.x86_64
libreport-plugin-kerneloops-2.6.4-1.fc23.x86_64
abrt-addon-kerneloops-2.8.0-2.fc23.x86_64
kernel-4.3.5-300.fc23.x86_64
kernel-modules-4.2.3-300.fc23.x86_64

我读到这些软件包可能已经存储在其中/usr/include,当我尝试安装它们时,它当然一直说它们已经安装了。

问题:我应该做什么,makefile 或安装,才能将 hello.c 正确编译为 hello.ko ?

我有 Fedora 23。

答案1

好的,我的工作是升级/安装内核和所有 kernel-X 模块。之后内核(适当版本)目录出现在/usr/src/kernels/

相关内容