在为 nexus 6p 编译 android msm 内核时,由于多个目标模式而导致失败

Ale*_*lex 5 android kernel makefile

我认为问题的根源在于 head-y 没有在任何地方设置,但我不知道该怎么做。

我用来编译的命令

$ export ARCH=arm64
$ export CROSS_COMPILE=aarch64-linux-android-
$ cd msm-angler
$ make msm_defconfig
$ make
Run Code Online (Sandbox Code Playgroud)

我没有使用 git-checkout 命令,因为我刚刚从 google git repos 下载了 tar.gz 文件

使用 make msm_defconfig 命令时会出现一些警告。

arch/arm64/configs/msm_defconfig:431:
warning: override: reassigning to symbol LEDS_TRIGGERS
warning: (SND_SOC_APQ8084 && SND_SOC_MSM8X16 && SND_SOC_MSM8994) selects SND_SOC_CPE which has unmet direct dependencies (SOUND && !M68K && !UML && SND && SND_SOC && SND_SOC_WCD_CPE)
warning: (SND_SOC_QDSP6V2) selects SND_SOC_MSM_QDSP6V2_INTF which has unmet direct dependencies (SOUND && !M68K && !UML && SND && SND_SOC && MSM_QDSP6_APRV2)
warning: (ARCH_MSM) selects DEVFREQ_GOV_MSM_BW_HWMON which has unmet direct dependencies (PM_DEVFREQ && (ARCH_MSM_KRAIT || ARCH_MSM_BIMC_BWMON))
warning: (SND_SOC_QDSP6V2) selects SND_SOC_MSM_QDSP6V2_INTF which has unmet direct dependencies (SOUND && !M68K && !UML && SND && SND_SOC && MSM_QDSP6_APRV2)
warning: (SND_SOC_APQ8084 && SND_SOC_MSM8X16 && SND_SOC_MSM8994) selects SND_SOC_CPE which has unmet direct dependencies (SOUND && !M68K && !UML && SND && SND_SOC && SND_SOC_WCD_CPE)
warning: (ARCH_MSM) selects DEVFREQ_GOV_MSM_BW_HWMON which has unmet direct dependencies (PM_DEVFREQ && (ARCH_MSM_KRAIT || ARCH_MSM_BIMC_BWMON))
#
# configuration written to .config
#
Run Code Online (Sandbox Code Playgroud)

这是运行make时出现的错误

Makefile:796: *** multiple target patterns.  Stop.
Run Code Online (Sandbox Code Playgroud)

这是第 796 行

vmlinux: scripts/link-vmlinux.sh $(vmlinux-deps) FORCE
Run Code Online (Sandbox Code Playgroud)

这是设置 vmlinux-deps 的地方(第 788 行)

vmlinux-deps := $(KBUILD_LDS) $(KBUILD_VMLINUX_INIT) $(KBUILD_VMLINUX_MAIN)
Run Code Online (Sandbox Code Playgroud)

这里是设置 KBUILD_LDS、KBUILD_VMLINUX_INIT 和 KBUILD_VMLINUX_MAIN 的地方(第 781-783 行)

export KBUILD_VMLIUX_INIT := $(head-y) $(init-y)
export KBUILD_VMLINUX_MAIN := $(core-y) $(libs-y) $(drivers-y) $(net-y)
export KBUILD_LDS          := arch/$(SRCARCH)/kernel/vmlinux.lds
Run Code Online (Sandbox Code Playgroud)

这是设置所有 *-y 内容的地方(head-y 除外)(第 525-529 行)

init-y          := init/
drivers-y       := drivers/ sound/ firmware/
net-y           := net/
libs-y          := lib/
core-y          := usr/
Run Code Online (Sandbox Code Playgroud)

我似乎找不到设置 head-y 的任何地方,这可能是问题的根源,但我不知道该为 head-y 放置什么。