fad*_*bee 2 linux-kernel android-source
我在 中找到了各种内核配置kernel/configs/q。
当我改变它们时,并且mm在kernel/msm-4.14内核中运行时不会重建。
我在哪里编辑内核配置,以便在mm运行时强制内核重建?
内核首先与 Android 平台分开构建。然后,Android 平台构建系统使用TARGET_PREBUILT_KERNEL环境变量指向内核映像所在的位置。
以下是我通常如何配置和构建的概述。我已经为不同的供应商在 Android 9 和 10 上做到了这一点。我使用的方案在此处的文档中提到。非 Google 内核通常不附带版本控制(repo),我不知道您在处理什么,所以我将介绍两者。
对于 repo-checkout 内核,您可以在build/build.config. 基本上,以 defconfig 为基础后,您可以使用该${KERNEL_DIR}/scripts/config工具来更改配置。这通常如下所示:
POST_DEFCONFIG_CMDS="check_defconfig && update_config"
function update_config() {
${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \
-d CONFIG_SOMETHING_I_DISABLE \
-e CONFIG_SOMETHING_I_ENABLE \
--set-val CONFIG_FOO = 123
}
Run Code Online (Sandbox Code Playgroud)
如果您没有 repo-checkout 内核,位置和详细信息可能会有所不同,但基本思想通常是相同的:查找/创建启动构建的脚本,并在configmake 后添加该工具的调用defconfig。
config单独运行该工具以查看完整选项和有关其用法的更多信息,但以上内容通常就是您所需要的。请注意:如果您进行语法正确的无效更改(例如启用不满足依赖关系的符号),构建系统将不会抱怨并默默地忽略这些更改。如果您遇到这种情况,例如使用menuconfig来找出问题所在,因为它显示了依赖性。
boot.img构建内核后,您将拥有Image.lz4in out/.../dist(或Image.gzin out/.../private/msm-google/arch/arm64/boot)。您转到 Android 源代码,除了常见的内容 ( source build/envsetup.sh、lunch) 之外,您还可以将构建系统指向您构建的映像,例如export TARGET_PREBUILT_KERNEL=/path/to/Image.lz4。然后正常开始构建,例如make bootimage或m droid。
请注意,对于 Android 10,至少在某些情况下,您还必须复制内核模块out/.../dist,因为新内核无法加载旧内核。对于这一部分,我自己目前遇到了问题。我认为它们必须复制到device/VENDOR/DEVICE(例如google/coral-kernel),顺便说一句,您也可以将内核映像复制到那里,因为默认情况下原始的预构建映像也在那里。问题是,至少就我而言,新的内核模块毕竟没有复制到设备。
| 归档时间: |
|
| 查看次数: |
3464 次 |
| 最近记录: |