크로스 컴파일된 커널에서 gcc를 찾을 수 없습니다.

크로스 컴파일된 커널에서 gcc를 찾을 수 없습니다.

Pi를 완료하는 데 약 12시간이 걸리기 때문에 Raspbian 커널을 크로스 컴파일하고 있습니다(Raspberry Pi 1).

ARM 및 커널용 빌드 도구를 /home/gray/Desktop/tmp/.

나는 이 가이드를 따르고 있습니다:Raspberry Pi 커널 컴파일 - eLinux.org

내 문제는 컴파일할 때 CCPREFIX를 내보낼 때 링크한 폴더에 있는 arm-linux-gnueabihf-gcc-4.8.3을 찾을 수 없다는 것입니다. 내가 한 일은 다음과 같습니다.

gray@Rava-Xubuntu:~/Desktop/tmp/linux$ export CCPREFIX=/home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-

빌드하려고 하면 다음이 반환됩니다.

gray@Rava-Xubuntu:~/Desktop/tmp/linux$ make ARCH=arm CROSS_COMPILE=${CCPREFIX}
/home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc: 1: /home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc: arm-linux-gnueabihf-gcc-4.8.3: not found
  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
/home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc: 1: /home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc: arm-linux-gnueabihf-gcc-4.8.3: not found
Kbuild:43: recipe for target 'kernel/bounds.s' failed
make[1]: *** [kernel/bounds.s] Error 127
Makefile:990: recipe for target 'prepare0' failed
make: *** [prepare0] Error 2

파일이 분명히 거기에 있더라도:

분명히 파일이 있는데도

감사해요.

답변1

그래서 나는 그것을 알아 냈습니다.

방금 gcc의 크로스빌드 버전을 받았습니다(그게 다인 것 같습니다).

sudo apt-get install crossbuild-essential-armhf

그러면 내 새로운 경로는 다음과 같습니다.

export CCPREFIX=/usr/bin/arm-linux-gnueabihf-

그리고 빌드가 완벽하게 작동합니다!

답변2

arm-linux-gnueabihf-gcc-4.8.3제공하신 내용에서 실패한 부분을 찾을 수 없습니다.http://pastebin.com/ZdGfP3Qg, 하지만 PATH 환경 변수에 이상한 문자가 포함되어 있습니다.

PATH=/home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-ras\342\200\214\342\200\213pbian/bin:/home/gray/bin:/usr/local/sbin:/usr/local/bin:/usr/sbi" ...

그런 \342\200\214\342\200\213부분은 raspbian없어야 합니다.

스크립트를 다시 확인하고 PATH를 적절하게 설정하세요.

그러나 CROSS_COMPILE은 그대로 나타납니다. gcc가 PATH에서 작업을 실행하려고 하거나 어딘가에 깨진 툴체인/매달린 심볼릭 링크가 있을 가능성이 높습니다.

심층 디버깅을 위해 이 추적을 사용하십시오.

strace -f -v -s150 -o log -eexecve,stat,stat64 (make command)그럼 하세요 fgrep ENOENT log. 그런 다음 PATH에서 존재하지 않는 프로젝트를 필터링하고 나머지 프로젝트를 찾아 복구해 보세요.

관련 정보