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 

也試着改變 「:」 至 「+」 爲我以上做的,它會爲你工作。