尝试编译android内核代码时出错?

时间:2011-07-12 21:09:41

标签: android linux-kernel android-firmware

我一直关注此链接Android kernel compile and test with Android Emulator来编译android源代码。

但是在尝试使用

编译源代码时
make ARCH=arm CROSS_COMPILE=/home/lares/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-

我收到此错误。

lares@lares-Inspiron-1545:~/android_kernel$ make ARCH=arm CROSS_COMPILE=/home/lares/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
    make: execvp: /home/lares/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc: Permission denied
    scripts/kconfig/conf -s arch/arm/Kconfig
    make[2]: execvp: scripts/kconfig/conf: Permission denied
    make[2]: *** [silentoldconfig] Error 127
    make[1]: *** [silentoldconfig] Error 2
      CHK     include/linux/version.h
    make[1]: `include/asm-arm/mach-types.h' is up to date.
    make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'.  Stop.

通过将权限分配给适当的目录来解决此问题后,我得到了这个。

lares@lares-Inspiron-1545:~/android_kernel$ make ARCH=arm  CROSS_COMPILE=/home/lares/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
    scripts/kconfig/conf -s arch/arm/Kconfig
      CHK     include/linux/version.h
    make[1]: `include/asm-arm/mach-types.h' is up to date.
      CHK     include/linux/utsrelease.h
      UPD     include/linux/utsrelease.h
      SYMLINK include/asm -> include/asm-arm
      CC      kernel/bounds.s
    arm-eabi-gcc: error trying to exec 'cc1': execvp: No such file or directory
    make[1]: *** [kernel/bounds.s] Error 1
    make: *** [prepare0] Error 2

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

/home/lares/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc的部分(或全部)路径的权限未设置为read plus execute。

如果您具有root访问权限,请检查每个路径组件并进行适当调整。否则,让你的系统管理员修复它。

由于这是最初的问题,因此其他交叉开发工具(包括头文件和库)存在其他权限问题的可能性相当高。

答案 1 :(得分:1)

最近我一直在努力解决同样的问题,最后发现问题的根本原因是我有OpenJDK版本的Java而不是Sun Java。请使用 java -version

进行检查

而不是

java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.10.04.1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

应该是

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

检查this有关如何更新和切换java包的信息。