2012-06-17 49 views
0

我遵循鏈接中給出的指示:http://blog.avirtualhome.com/how-to-compile-a-new-ubuntu-11-04-natty-kernel/建立一個自定義內核並啓動它。一切工作正常,除了構建它時,我使用選項skipmodule = true(在此鏈接中給出),所以我猜這些模塊不是爲這個內核而構建的。所以我有兩個問題:構建模塊與Linux內核的自定義風味

  1. 如何構建我的風格的模塊,現在我已經構建了內核的其餘部分?如果我沒有錯,'make modules'將只爲通用風格構建它。
  2. 另外它是否需要我構建整個內核源碼'fakeroot debian/rules binary-i5'(i5是我的自定義錯誤),每當我對其中一個模塊進行更改時?

謝謝。

+0

1)不,每次更換模塊時都不必重建內核。 2)你所有的內核模塊是否加載失敗?其中一些?你已經嘗試加載*任何*他們? 「insmod -f」是一個選項嗎? – paulsm4

+0

我還沒有嘗試insmod,因爲當我在/lib/modules/2.6.38-11-i5文件夾中運行'ls -l'時,除'kernel'文件夾以外的所有文件/文件夾都已更新(Btw ,我上次創建它並且它工作正常,這是對同一個內核源碼的更新)。因此,我認爲有一些選項/命令我錯過了導出模塊。如我錯了請糾正我。 –

+0

^這是在構建源代碼並使用dpkg安裝映像之後。 –

回答

3

1)建立一個Linux內核模塊,用於從該模塊的源目錄中的特定內核做:
make -C {path-to-kernel-source} M=`pwd` modules

C選項告訴用來指向內核源代碼樹的地方發現內核的頂部級別的Makefile。 M =`pwd`選項將其指向模塊源目錄,在該目錄中構建「模塊」目標。 2)不需要,它不需要構建源內核。擁有內核源代碼樹或內核標頭就足夠了。

+0

感謝您的回覆。實際上,當我安裝新的內核映像時,我的模塊已經被導出到/ lib。猜猜父目錄'/lib/modules/2.6.38-11-i5/kernel'的時間戳不會被更新。無論如何,現在它的工作很好。但是,當我對模塊進行任何更改並按照上面的建議進行構建時,出現錯誤(正如在本文中:stackoverflow.com/questions/9425523/should-i-care-that-the-symbol-version -dump-的缺失,怎麼辦,我送一)。該帖子中的解決方案似乎暗示我們必須重建內核。這就是我卡住的地方。 –

+0

好吧,它現在正常工作。根本不需要編譯內核。只需提供構建目錄的路徑即可:make -C /lib/modules/2.6.38-11-i5/build M = $(PWD)模塊。謝謝。 –

+0

不客氣。 – Bandicoot