如何在 Linux 中创建 .ko 文件

如何在 Linux 中创建 .ko 文件

我在 Linux 中为一台设备编写了一个驱动程序。如何创建(使用gcc.ko文件以便将其插入内核?

答案1

创建一个Makefile像这样的。

ifneq ($(KERNELRELEASE),)
obj-m   := mymodule.o
else
KDIR    := /lib/modules/$(shell uname -r)/build
PWD     := $(shell pwd)
all:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
install:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules_install
%:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $@
endif

假设您的模块的源代码位于mymodule.c,运行make将创建mymodule.ko.

答案2

简短的回答:你不能。 .ko 文件不仅仅是驱动程序源的编译版本。内核构建系统包括一些额外的信息,例如(编译器版本、模块依赖项……)。

您可能可以深入挖掘内核构建系统来查找所有必需的操作,但您不应该这样做。它几乎肯定会随着下一个内核版本或之后的版本而崩溃。您应该使用提供的 makefile ehemient。

相关内容