仅向Linux内核添加一个驱动程序

时间:2017-03-16 14:23:51

标签: linux-kernel kernel kernel-module

我知道在互联网上我可以找到有关"向Linux内核添加一个驱动程序的相同信息"但我无法让它发挥作用。 我需要编译一个ADV7800driver。它基于adv7180驱动程序代码。

我将驱动程序文件(adv7800.c)放入/linux_source_folder/drivers/media/platform/mxc/capture文件夹。我还添加了

adv7800_converter-objs := adv7800.o
obj-$(CONFIG_MXC_ADV7800_CONVERTER)+=adv7800_converter.o

在同一文件夹中的makefile中,并在Kconfig文件中添加信息。

然后我返回/ linux_source_folder并执行sudo make menuconfig并将adv7800设置为模块并保存配置。然后sudo make defconfig,然后sudo make -j4 modules(现在等待大约2小时),然后sudo make modules install

因此,我可以看到我在menuconfig中配置的每个模块,但我看不到自己的模块(仅存在.c文件)。

我该如何正确地做到这一点?如何在不构建其他模块的情况下构建这一个模块(同样多的时间)?

1 个答案:

答案 0 :(得分:0)

我不记得在执行的指令方面究竟发生了什么,但defconfig的想法是为给定的架构/平台设置默认配置

正如您所说,如果您在之后运行sudo make defconfig ,则需要配置要编译的模块,很可能是您失去了配置。应首先执行defconfig(一次),然后自定义配置。

关于单个模块的编译,我指出一个旧答案

How to "make" existing Linux kernel module driver after modifying the driver source code

一个注意事项:您不应该使用sudo来编译