【问题标题】:Building goldfish kernel: "goldfish_armv7_defconfig" not found at "arch/x86/configs"构建金鱼内核:在“arch/x86/configs”中找不到“goldfish_armv7_defconfig”
【发布时间】:2013-10-21 05:10:00
【问题描述】:

我面临一个奇怪的问题(至少对我而言),我希望有人知道如何解决它!

我正在尝试在 ubuntu 13.04(实际上是 xubuntu 13.04)上构建 android goldfish kernel 2.6.29,以便在模拟器上运行。所以,我采取了以下步骤:

1 - 下载金鱼内核:
git clone @987654321@
git checkout -t origin/android-goldfish-2.6.29 -b goldfish

2 - 下载预构建的工具链以针对 arm 架构进行编译:
git clone @987654322@

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

我收到一条错误消息,提示在“arch/x86/configs”中找不到文件“goldfish_armv7_defconfig”。为什么它指向 arch/x86 而不是 arch/arm

如果我跑步:
make goldfish_defconfig

我会得到图像 arch/x86/boot/bzImage,这不会在模拟器上运行。我想要图像 arch/arm/boot/zImage

我做错了什么?

非常感谢您的帮助!

【问题讨论】:

    标签: android build android-emulator kernel arm


    【解决方案1】:

    您应该通过 make 传递 ARCH 和 CROSS_COMPILE 参数:

    make ARCH=arm CROSS_COMPILE=arm-eabi- goldfish_armv7_defconfig
    

    【讨论】:

    • 成功了!谢谢克里斯托夫。但是,将 ARCH 和 CROSS_COMPILE 定义为环境变量并在 make 中定义为参数有什么区别?不应该一样吗?
    • 使变量和环境变量不一样。如果您查看 Makefile,您会看到它定义了 SUBARCH、ARCH 和 CROSS_COMPILE 变量。要覆盖它们的值,您必须将这些变量作为参数传递给 make。
    猜你喜欢
    • 2022-07-21
    • 2014-10-06
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 2016-06-28
    • 2016-06-09
    • 1970-01-01
    相关资源
    最近更新 更多