【发布时间】:2017-03-16 23:03:07
【问题描述】:
我知道在互联网上我可以找到关于“将一个驱动程序添加到 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中,并在Kconfigfile中添加信息。
然后我回到 /linux_source_folder 并执行 sudo make menuconfig 并将 adv7800 设置为模块并保存配置。然后是sudo make defconfig,然后是sudo make -j4 modules(现在等待大约2小时),然后是sudo make modules install。
因此,我可以看到我在 menuconfig 中配置的每个模块,但我看不到我自己的模块(仅存在 .c 文件)。
我怎样才能正确地做到这一点,我怎样才能只构建一个模块而不构建其他模块(相同的时间)?
【问题讨论】:
-
在你运行
make menuconfig之后(aftermake defconfig正如@Federico 提到的),你可以检查你的.config文件(在内核的根目录中)以确保MXC_AXC_ADV7800_CONVERTER是在构建之前设置的——让您不必等待两个小时才能确定您是否做得对。
标签: linux-kernel kernel kernel-module