我知道在互联网上我可以找到有关"向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文件)。
我该如何正确地做到这一点?如何在不构建其他模块的情况下构建这一个模块(同样多的时间)?
答案 0 :(得分:0)
我不记得在执行的指令方面究竟发生了什么,但defconfig
的想法是为给定的架构/平台设置默认配置。
正如您所说,如果您在之后运行sudo make defconfig
,则需要配置要编译的模块,很可能是您失去了配置。应首先执行defconfig
(一次),然后自定义配置。
关于单个模块的编译,我指出一个旧答案
How to "make" existing Linux kernel module driver after modifying the driver source code
一个注意事项:您不应该使用sudo
来编译