2009-09-01 36 views
1

這些是我在我的機器上編譯linux源碼的步驟:
1.將配置文件從/ boot複製到/usr/src/kernels/2.6.29.4 -167.fc11.i586 /目錄
2.化妝oldconfig這個
3.化妝
內核編譯過程中出現`missing-syscalls'錯誤

步驟3失敗,出現以下錯誤: 化妝[1]:***沒有規則使目標`缺系統調用」。停止。

在x86機器上編譯。 有什麼建議嗎? 如果它不屬於這裏,請隨時關閉此問題。

回答

0

建立一個新的配置文件。也許老人不工作?

+0

嘗試,也是如此。請參看新的配置文件相同的錯誤。 – vivekian2 2009-09-02 16:48:26

2

由於過時,因爲它聽起來似乎目前爲了得到一個系統內核源代碼,你必須手動選擇你想要的來源。假設人們不會像以前那樣經常構建內核,當然你可能想開發一個與你所運行的版本不匹配的內核。

因此,例如我想安裝VBox我的CentOS 6.2盒子,雖然大多數內核模塊可以在沒有完整源代碼的情況下編譯,但這個更新失敗

所以我發現了這個Wiki頁面: http://wiki.centos.org/HowTos/I_need_the_Kernel_Source

它不會列出6.2和命名約定對最終目錄名稱更改,以便讓你去http://vault.centos.org/6.2/updates/Source/的6.2內核源代碼,然後選擇你的版本想。如果您需要其他版本的源代碼,請轉至http://vault.centos.org/並從此處導航。

文檔建議不要在內核源代碼上進行rpm構建。

0

由於內核3.x.x如果嘗試構建僅具有單個Makefile的外部模塊,則會出現此消息。

相反,根據this manual

分裂成的kbuild(其中所有的源文件中列出,例如):

obj-m := module_source.c

和簡單生成文件(僅具有默認化妝指令,例子):

default: $(MAKE) -C $(KDIR) M=$$PWD

將解決該問題。

以防萬一,外部模塊編譯指令是以下幾點:

make -C <kernel source path> -M=<module source folder>

例如:make -C . -M=extra/