2013-10-13 37 views
0

我面臨一個奇怪的問題(至少對我來說),我希望有人知道如何解決它!構建金魚內核:在「arch/x86/configs」找不到「goldfish_armv7_defconfig」

我想在ubuntu 13.04(實際上是xubuntu 13.04)上構建android goldfish內核2.6.29,在模擬器上運行。所以,我把這些步驟:

1 - 下載金魚內核:
git clone https://android.googlesource.com/kernel/goldfish
git checkout -t origin/android-goldfish-2.6.29 -b goldfish

2 - 下載預編譯工具鏈編譯爲ARM架構:
git clone https://android.googlesource.com/platform/prebuilt

3 - 導出環境變量以便爲ARM架構編譯:
export ARCH=arm
export SUBARCH=arm
export PATH={prebuilt_folder_dir}/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
export CROSS_COMPILE=arm-eabi-

在這一點上,我應該能夠建立配置文件 「goldfish_armv7_defconfig」。

但是,當我這樣做:
make goldfish_armv7_defconfig

我得到一個錯誤,該文件「goldfish_armv7_defconfig」不以「弓/ 86/CONFIGS」找到。爲什麼它指向arch/x86而不是arch/arm

如果我運行:
make goldfish_defconfig

我去拿圖像弓/ 86 /啓動/ bzImage的而這並不在模擬器上運行。我想要圖片arch/arm/boot/zImage

我做錯了什麼?

非常感謝您的幫助!

回答

3

您應該通過make通過ARCH和CROSS_COMPILE參數:

make ARCH=arm CROSS_COMPILE=arm-eabi- goldfish_armv7_defconfig 
+0

它的工作!謝謝Christophe。 但是,定義ARCH和CROSS_COMPILE作爲環境變量和在make中定義參數有什麼區別?不應該是一樣的嗎? – rmgoncalo

+0

使變量和環境變量不一樣。如果您查看Makefile,您會看到它定義了SUBARCH,ARCH和CROSS_COMPILE變量。要覆蓋它們的值,必須將這些變量作爲參數傳遞給make。 –