3

我对 Linux USB Wi-Fi 卡驱动程序进行了一些微不足道的修改,以插入一些日志记录(printk语句)。我大致遵循有关如何重新编译/加载模块的指南,该指南指出我需要执行make才能构建.ko文件。Makefile工作目录 ( ) 中存在一个/usr/src/linux/drivers/net/wireless/rtl818x/rtl8187/,内容为:

rtl8187-objs        := dev.o rtl8225.o leds.o rfkill.o

obj-$(CONFIG_RTL8187)   += rtl8187.o

ccflags-y += -Idrivers/net/wireless/rtl818x

当我make在这个目录中执行时,我得到:

make: *** No targets.  Stop.

根据this,这意味着“找到了一些makefile,但它不包含任何默认目标,并且在命令行上没有给出任何目标。GNU make 在这些情况下没有任何作用。”

所以我的问题是,在我正在尝试做的事情的背景下,这意味着什么,以及如何生成.ko我声称下一步需要的文件?

4

1 回答 1

7

您必须从 Linux 源代码 ( /usr/src/linux/ )的顶级目录运行make 。确保您的驱动程序包含在您的/usr/src/linux/.config文件中。因此,使用您的驱动程序构建内核。如果您不想重建整个内核,请阅读更多内容:)

如果要重新构建目录中的所有模块:

make M=drivers/net/wireless/rtl818x/rtl8187/

如果要在目录中重新构建单个模块:

make M=drivers/net/wireless/rtl818x/ CONFIG_RTL8187=m

*CONFIG_RTL8187* 名称可以在drivers/net/wireless/rtl818x/Kconfig (CONFIG_ + RTL8187)中找到

它也应该这样工作:

make drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko
于 2012-08-04T00:32:39.903 回答