【发布时间】:2020-07-28 14:44:53
【问题描述】:
我发现 AOSP build.sh dist 创建:
-
XML 文件:
./out/soong/.intermediates/kernel/configs/q/android-4.19/kernel_config_q_4.19/gen/conditional.xml ./out/soong/.intermediates/kernel/configs/q/android-4.19/kernel_config_q_4.19/matrix.xml来自内核配置文件:
kernel/configs/q/ ├── android-4.14 │ ├── android-base-conditional.xml │ ├── android-base.config │ ├── Android.bp │ ├── android-recommended-arm64.config │ ├── android-recommended-arm.config │ ├── android-recommended.config │ └── android-recommended-x86.config ├── android-4.19 │ ├── android-base-conditional.xml ... ... -
Linux内核目录的完整副本:
out/target/product/sdm660_64/obj/kernel/msm-4.14
这个新创建的msm-4.14 包含一个.config 文件,看起来像正常的内核配置。
如何为aarch64 编译这个内核?
当我使用make 时,它会提示重新生成x86_64 配置文件,因为.config 正确包含Aarch64 设置。
也许我尝试了错误的事情,但kernel/msm-4.14 中的mm 忽略了对内核配置的更改,而build.sh dist 花了几个小时。
我希望能够在几分钟内更改内核配置和源代码,并构建新内核,就像在台式机上一样。
我应该如何为 Android 执行此操作?
【问题讨论】:
-
请检查是否可以按照here 的描述编译内核。
cd <aosp_root_dir>/kernel/msm-4.4/ && export CROSS_COMPILE=<aosp_root_dir>/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android- && export ARCH=arm64 && make sdm660_defconfig && make -
@Lakindu 我需要
make vendor/sdm660_defconfig。内核构建当前正在运行... -
@Lakindu 它失败了:
./include/linux/fs.h:3309:56: warning: format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'long long unsigned int' [-Wformat=] error, forbidden warning: fs.h:3309 -
@Lakindu
make bootimage -j4可以正常工作(没有上述失败)并响应我对 linux 源代码所做的更改。我认为构建内核还需要更多的东西。
标签: linux linux-kernel android-source android-10.0