简体   繁体   English

与Linaro Toolchain交叉编译Android(Mako)内核

[英]Cross Compile Android (Mako) Kernel with Linaro Toolchain

i successfully compiled and boot my own kernel with this tips: 我使用以下提示成功编译并引导了自己的内核:

http://astro.temple.edu/~tue68607/project/articles/customized-android-aospsystem-nexus4.html http://astro.temple.edu/~tue68607/project/articles/customized-android-aospsystem-nexus4.html

so now I wanted to use Linaro toolchain. 所以现在我想使用Linaro工具链。

I tested setting path with the Google's method but can't work. 我使用Google的方法测试了设置路径,但无法正常工作。 I got this error 我得到这个错误

najmi@raden-aufa-qistina:~/android/kernel/msm$ export ARCH=arm
najmi@raden-aufa-qistina:~/android/kernel/msm$ export SUBARCH=arm
najmi@raden-aufa-qistina:~/android/kernel/msm$ export CROSS_COMPILE=arm-linux-androideabi-
najmi@raden-aufa-qistina:~/android/kernel/msm$ make mako_defconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
warning: (ARCH_MSM_KRAITMP && ARCH_MSM_CORTEX_A5) selects HAVE_HW_BRKPT_RESERVED_RW_ACCESS which has unmet direct dependencies (HAVE_HW_BREAKPOINT)
warning: (ARCH_MSM_KRAITMP && ARCH_MSM_CORTEX_A5) selects HAVE_HW_BRKPT_RESERVED_RW_ACCESS which has unmet direct dependencies (HAVE_HW_BREAKPOINT)
#
# configuration written to .config
#
najmi@raden-aufa-qistina:~/android/kernel/msm$ make -j8
scripts/kconfig/conf --silentoldconfig Kconfig
warning: (ARCH_MSM_KRAITMP && ARCH_MSM_CORTEX_A5) selects HAVE_HW_BRKPT_RESERVED_RW_ACCESS which has unmet direct dependencies (HAVE_HW_BREAKPOINT)
warning: (ARCH_MSM_KRAITMP && ARCH_MSM_CORTEX_A5) selects HAVE_HW_BRKPT_RESERVED_RW_ACCESS which has unmet direct dependencies (HAVE_HW_BREAKPOINT)
  CHK     include/linux/version.h
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/bin2c
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
arm-linux-androideabi-gcc: No such file or directory
Is your PATH set correctly?
make[2]: *** [scripts/mod/empty.o] Error 2
make[2]: *** Waiting for unfinished jobs....
  HOSTCC  scripts/selinux/genheaders/genheaders
  HOSTCC  scripts/selinux/mdp/mdp
make[1]: *** [scripts/mod] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [scripts] Error 2
make: *** Waiting for unfinished jobs....

I already set the path correct to point here: 我已经将路径设置为正确指向此处:

/home/najmi/android/toolchain/linaro-git/android-toolchain-eabi/arm-linux-androideabi/bin

Obviously, as the error said 显然,正如错误所言

arm-linux-androideabi-gcc: No such file or directory

This means that the current version of NDK that your are using dose not conatin gcc. 这意味着您正在使用的当前版本的NDK并不适用于gcc。 So,try an older version of android NDK(I suggest version 15c which contains gcc). 因此,请尝试使用较早版本的android NDK(我建议使用包含gcc的15c版本)。 https://developer.android.com/ndk/downloads/older_releases.html https://developer.android.com/ndk/downloads/older_releases.html

Then, try the following in the same order : 然后,以相同的顺序尝试以下操作:

$ export ARCH=arm
$ export CROSS_COMPILE=<your path >/android-ndk-r15c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-
$ make mako_defconfig
$ make -j4

make sure to run the following code to clean any previous compilation before running compile anything. 确保在运行任何内容之前运行以下代码以清除以前的所有编译。 if you didn't compile anything. 如果您没有编译任何东西。 then no need to run this code 则无需运行此代码

$ make clean && make mrproper

I've tested before and its work. 我之前已经测试过了它的工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM