Problema na compilação cruzada do kernel Linux 4.4.2 para ARM no Ubuntu

1

Eu segui o procedimento abaixo para compilar o kernel 4.4.2 do linux e o gcc

verion is gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) 
ravi@ravi-Inspiron-3537:~/linux$ make ARCH=arm CROSS_COMPLILE=arm-linux-gnueabi- vexpress_defconfig
#
# configuration written to .config
#
ravi@ravi-Inspiron-3537:~/linux$ make ARCH=arm CROSS_COMPLILE=arm-linux-gnueabi- 
scripts/kconfig/conf  --silentoldconfig Kconfig
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: 'include/generated/mach-types.h' is up to date.
  CC      kernel/bounds.s
gcc: error: unrecognized argument in option ‘-mabi=aapcs-linux’
gcc: note: valid arguments to ‘-mabi=’ are: ms sysv
gcc: error: unrecognized command line option ‘-mlittle-endian’
gcc: error: unrecognized command line option ‘-mno-thumb-interwork’
gcc: error: unrecognized command line option ‘-mfpu=vfp’
make[1]: *** [kernel/bounds.s] Error 1
make: *** [prepare0] Error 2

Como posso superar esse problema?

    
por RAVI 03.04.2016 / 16:40

1 resposta

0

Você pode instalar o toolchain de braço em seu próprio diretório. Em seguida, configure um conjunto de definições como:

    MY_ARM_BASE=${HOME}/dev/toolchain/arm-2008q3
    C_INCLUDE_PATH=${MY_ARM_BASE}/lib/gcc/arm-none-linux-gnueabi/4.3.2/include:${MY_ARM_BASE}/lib/gcc/arm-none-linux-gnueabi/4.3.2/include-fixed
    LIBRARY_PATH=${MY_ARM_BASE}/arm-none-linux-gnueabi/libc/lib:${MY_ARM_BASE}/arm-none-linux-gnueabi/libc/usr/lib
    CPLUS_INCLUDE_PATH=${MY_ARM_BASE}/arm-none-linux-gnueabi/include/c++/4.3.2
    #OBJC_INCLUDE_PATH
    COMPILER_PATH=${MY_ARM_BASE}/bin
    #LD_RUN_PATH
    #GPROF_PATH
    #######
    CC=${COMPILER_PATH}/gccMY_ARM_BASE=${HOME}/dev/toolchain/arm-2008q3 C_INCLUDE_PATH=${MY_ARM_BASE}/lib/gcc/arm-none-linux-gnueabi/4.3.2/include:${MY_ARM_BASE}/lib/gcc/arm-none-linux-gnueabi/4.3.2/include-fixed LIBRARY_PATH=${MY_ARM_BASE}/arm-none-linux-gnueabi/libc/lib:${MY_ARM_BASE}/arm-none-linux-gnueabi/libc/usr/lib CPLUS_INCLUDE_PATH=${MY_ARM_BASE}/arm-none-linux-gnueabi/include/c++/4.3.2
#OBJC_INCLUDE_PATH COMPILER_PATH=${MY_ARM_BASE}/bin
#LD_RUN_PATH
#GPROF_PATH
#######MY_ARM_BASE=${HOME}/dev/toolchain/arm-2008q3 C_INCLUDE_PATH=${MY_ARM_BASE}/lib/gcc/arm-none-linux-gnueabi/4.3.2/include:${MY_ARM_BASE}/lib/gcc/arm-none-linux-gnueabi/4.3.2/include-fixed LIBRARY_PATH=${MY_ARM_BASE}/arm-none-linux-gnueabi/libc/lib:${MY_ARM_BASE}/arm-none-linux-gnueabi/libc/usr/lib CPLUS_INCLUDE_PATH=${MY_ARM_BASE}/arm-none-linux-gnueabi/include/c++/4.3.2
#OBJC_INCLUDE_PATH COMPILER_PATH=${MY_ARM_BASE}/bin
#LD_RUN_PATH
#GPROF_PATH
####### CC=${COMPILER_PATH}/gcc CXX=${COMPILER_PATH}/g++ RANLIB=${COMPILER_PATH}/ranlib STRIP=${COMPILER_PATH}/strip export C_INCLUDE_PATH LIBRARY_PATH CPLUS_INCLUDE_PATH COMPILER_PATH export CC CXX RANLIB STRIP CC=${COMPILER_PATH}/gcc CXX=${COMPILER_PATH}/g++ RANLIB=${COMPILER_PATH}/ranlib STRIP=${COMPILER_PATH}/strip export C_INCLUDE_PATH LIBRARY_PATH CPLUS_INCLUDE_PATH COMPILER_PATH export CC CXX RANLIB STRIP
    CXX=${COMPILER_PATH}/g++
    RANLIB=${COMPILER_PATH}/ranlib
    STRIP=${COMPILER_PATH}/strip
    export C_INCLUDE_PATH LIBRARY_PATH CPLUS_INCLUDE_PATH COMPILER_PATH
    export CC CXX RANLIB STRIP

Note que o exemplo não é para uma compilação do kernel, apenas um servidor web que eu estava compilando para o ARM, e eu nem mesmo configurei todas as variáveis possíveis.

    
por ubfan1 03.04.2016 / 17:57