0

我试图把我的驱动程序作为Linux内核的一部分。以下是Makefile。模块rs_pci取决于rs_9x。但是,内核在构建rs_9x之前会尝试构建rs_pci,从而导致rs_pci的编译失败。我希望内核先编译rs_9x,然后编译rs_pci。我该怎么做?Linux内核和我的内核模块

,以下是我的Makefile

rs_9x-y      += rs_a.o 
rs_9x-y      += rs_b.o 
rs_9x-y      += rs_c.o 

rs_pci-y      += rs_pci.o rs_pci_ops.o 
obj-$(CONFIG_RS)    := rs_9x.o 
obj-$(CONFIG_RS_PCI)   := rs_pci.o 

In the .config file, I have both options enabled as modules. 
CONFIG_RS=m 
CONFIG_RS_PCI=m 

请帮助我。

+1

如果您发布构建输出可能会更容易帮助您 – wkz

+1

为什么编译顺序很重要?这将表明'rs_pci'模块中存在一个错误。 –

回答

0

首先检查:确保CONFIG_RS启用

第二次检查:把rs_9x.o以上rs_pci.o的象下面这样:

obj-$(CONFIG_RS) += rs_9x.o 
rs_pci-y += rs_pci.o rs_pci_ops.o 
obj-$(CONFIG_RS_PCI) += rs_pci.o 

也试着改变 “:” 至 “+” 为我以上做的,它会为你工作。