【问题标题】:Building a kernel for Android: multiple target patterns为 Android 构建内核:多种目标模式
【发布时间】:2016-08-03 13:16:36
【问题描述】:

我正在尝试按照here 的说明为 Android 构建内核。

查看 msm/钓鱼者:

git checkout -b android-msm-angler-3.10-marshmallow-mr1 origin/android-msm-angler-3.10-marshmallow-mr1

make angler_defconfig 之后,make 会导致以下错误。

Makefile:796: *** multiple target patterns.  Stop.

有人能帮我解决这个问题吗?

【问题讨论】:

  • 将 URL 移至超链接,更新格式。
  • 我解决了。罪魁祸首是运行 ./scripts/link-vmlinux.sh 的权限。
  • 太棒了。请在下面发布您的答案,然后在网站允许后(2 天后)接受该答案。
  • 后来发现,这并不是最终的解决方案。我仍然有错误。:“sudo make”可以以某种方式继续构建,但很快就会停止。我猜我的配置文件有一些错误。
  • 在这种情况下,您需要更新您的问题以包括您尝试过的内容及其结果。按照现在的措辞,每个人都会认为这仍然可以解决。 (编辑也将您的问题移回队列,AFAIK)。

标签: android makefile kernel


【解决方案1】:

您可以更改预建 gcc
来自:

arm/arm-eabi-X.X 

到:

aarch64/aarch64-linux-android-X.X

【讨论】:

  • 这对我有用,因为我使用了错误的工具链。
  • 确认这对我构建牛头内核有用——谢谢!
【解决方案2】:
  1. 转到 aosp 文件。 在我的场景中: cd /aosp_files/out/target/product/angler

在终端输入:

dd if=kernel bs=1 skip=$(LC_ALL=C grep -a -b -o $'\x1f\x8b\x08\x00\x00\x00\x00\x00' kernel | cut -d ':' -f 1) | zgrep -a 'Linux version'

-> 然后你会看到 commit sha-1 的输出

Linux version 3.10.73-gde1f200
  1. 在“g”之后复制你的 sha-1 -> de1f200

  2. 转到你的 kernel_files

    git checkout your_sha1

  3. 然后

    导出 PATH=$(pwd)/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATH

    导出 ARCH=arm64

    export CROSS_COMPILE=aarch64-linux-android-

  4. 制作angler_defconfig

    制作-j4

  5. 如果你会得到错误

    使distclean

  6. 从 4 开始。

  7. 应该可以:)

【讨论】:

    猜你喜欢
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 2012-12-09
    • 2019-07-22
    • 2022-12-04
    相关资源
    最近更新 更多