넥서스원 커널(커널버전 2.6.38.8)을 빌드하려고 하는데
http://www.codesourcery.com/ 여기서
arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
(Sourcery G++ Lite 2010.09-51 for ARM EABI )
이걸 받아서
/opt/arm/에 압축을 푼다음
bash.bashrc 맨아래 3줄을 추가해줬습니다
export ARCH=arm
export CROSS_COMPILE=arm-none-eabi-
export PATH=$PATH:$HOME/bin:/opt/arm/arm-2010.09/bin
그리고 커널소스 폴더에서 make 하면 이렇게 나오더군요
make: arm-eabi-gcc: 명령을 찾지 못했음
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h'는 이미 갱신되었습니다.
CC kernel/bounds.s
/bin/sh: arm-eabi-gcc: not found
make[1]: *** [kernel/bounds.s] 오류 127
make: *** [prepare0] 오류 2
그래서 arm-2010.09/bin에 가보니까 전부다 none-eabi 이런식으로되어있고
arm-eabi-gcc 이 파일은 없습니다 ㅠㅠ
arm-eabi-gcc 이걸사용하려면 어떤컴파일러를 받아야하고
어디서 받아야 하나요 ㅠㅠ
인터넷에 아무리 찾아봐도 전부다 none-eabi로 되어있지 그냥 eabi는 찾아볼수가없네요
그리고 커널버전이 2.6.38.8이면 크로스컴파일러 버전 4.5.0정도면 정상적으로 사용가능할까요?
http://source.android.com/source/downloading.html
위 링크에 적힌대로 따라하시면 풀 소스는 받을 수 있구요.
툴체인은 칩셋에 따라 다른게 쓰입니다.
만일 위에 받은 툴체인이 맞는거라면 arm-eabi-gcc 란 이름으로 링크 파일을 만드시면 됩니다.
감사합니다^^
툴체인은 구해서 설정완료했는데
이젠 make하면
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h'는 이미 갱신되었습니다.
CC kernel/bounds.s
kernel/bounds.c:1: sorry, unimplemented: -mfloat-abi=hard and VFP
make[1]: *** [kernel/bounds.s] 오류 1
make: *** [prepare0] 오류 2
이런 에러가 뜨네요...
툴체인버전이 4.4.0이던데 괜찮은지...
소스 풀로 받으시면, 말씀하신 컴파일러까지 다 있습니다.