2014-12-19 57 views
2

我在嘗試爲舊的Linux內核設置交叉編譯器時遇到問題。爲舊的Linux內核設置Buildroot

cp -dpRf package/config/buildroot-config /tmp/buildroot/buildroot-2009.02/project_build_mips/uclibc/buildroot-config 
(cd /tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux-2.6.15; \ 
    /usr/bin/make -j1 ARCH=mips \ 
     HOSTCC="/usr/bin/gcc" HOSTCFLAGS="" \ 
     HOSTCXX="/usr/bin/g++" \ 
     INSTALL_HDR_PATH=/tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux headers_install; \ 
    ) 
make[1]: Entering directory `/tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux-2.6.15' 
Makefile:486: .config: No such file or directory 
make[1]: *** No rule to make target `headers_install'. Stop. 
make[1]: Leaving directory `/tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux-2.6.15' 
make: *** [/tmp/buildroot/buildroot-2009.02/toolchain_build_mips/linux/.configured] Error 2 

注意make[1]: *** No rule to make target 'headers_install'. Stop.一行。 我在stackoverflow上搜索並發現了這個線程: Setup buildroot for old kernels

這個傢伙和我面臨同樣的問題。 答案,建議使用舊版本的buildroot。因此我使用buildroot-2009.02這是最早的buildroot版本,但仍然得到了相同的結果。

請不要建議我將我的內核升級到更新的版本,我必須特別使用這個版本。

我很想得到關於它說什麼的解釋,也許有人可以幫我修復它。

在此先感謝。

+0

如果你只需要交叉編譯內核,那麼爲什麼你需要Buildroot?早在Linux 2.6.15(大約在2006年?)的那一天,Buildroot相當新,而且不穩定,我沒有構建Linux內核和rootfs。 – sawdust

+0

你能給我一個參考開始嗎? – CodeNinja

+0

內核源代碼中的** README **文件(以及** Documentation **目錄)描述瞭如何配置和編譯內核。順便說一下,我看着一箇舊的Buildroot 20070706,它的名字是:它只建立根文件系統。 **舊的Buildroot不會構建Linux內核**因此,您似乎別無選擇,只能使用基本的Linux內核構建過程。 – sawdust

回答

1

您顯示的錯誤似乎與構建內核無關,而似乎是在工具鏈(=交叉編譯器)構建過程中。工具鏈需要安裝內核頭文件,C庫使用它來創建系統調用。爲此,buildroot使用內核的'headers_install'目標。

不幸的是,這個目標僅在Linux 2.6.18中引入。因此,在您的內核版本中,您不能使用buildroot來構建交叉編譯器。

我也不知道你應該如何爲這樣一箇舊的內核構建一個交叉編譯器。你可以嘗試使用原來的'crosstool'項目(不是crosstool-NG,那也太現代了)。

+0

大聲笑,謝謝你的回答。我會盡力去做。我也嘗試了一些其他的東西,例如試圖自己製作這個'headers_install'的makefile文件 – CodeNinja

+0

是否有更新?你是否成功地構建了交叉編譯器?如果是這樣,怎麼樣? – bzupnick