0
我正在嘗試編譯一個內核模塊(來自http://www.rekall-forensic.com/的pmem.ko,而不是它應該很重要)。在過去,這個編譯模塊已在Makefile中使用以下行的問題:編譯WindRiver Linux內核模塊與標準桌面版本有什麼不同?
pmem: pmem.c
$(MAKE) -C $(KHEADER) O=$(KOUTPUT) M=$(PWD) modules
KHEADER設置爲內核頭文件的位置。如果內核是用O =標誌創建的,則KOUTPUT設置爲匹配。否則,它與KHEADER相匹配。
現在,我得到這樣的錯誤信息如下:
make: Entering directory `<KHEADER>'
CC [M] <pwd>/module.o
In file included from <KHEADER>/include/linux/module.h:10,
from <PWD>/module.c:4:
<KHEADER>/include/linux/sched.h:4:36: error: asm/param.h: No such file or directory
注:我已經取代實際路徑與變量的內容。
我可以看到這個嘗試和其他人之間有一個顯着的差異。在以前的工作版本中,所有輸出產品似乎都在相同的輸出中(包括.config文件)。在這個例子中,.config文件與內核源文件一起,而不是輸出目錄。我修復了將.config文件複製到我認爲是OUTPUT目錄的錯誤。
我想我要問的是構建Linux內核模塊的標準方法是否與WindRiver變體一起工作,或者是否需要針對不同的構建過程進行調整。
不應該跟隨構建目錄? – 2014-10-03 11:06:50
在過去的(工作)體驗中,KHEADER可以是完整的源代碼樹,也可以是標題。但是,是的,它是一個具有Makefile和合適的.config文件的構建目錄。或者,如果指定了KOUTPUT目錄,那麼.config文件應該在那裏。 – Elros 2014-10-03 15:21:53
好吧,我在問,因爲這看起來像使用未配置的內核樹時出現的那種錯誤。你嘗試過WindRiver支持網站嗎? – 2014-10-03 15:44:34