내 보드에 대한 u-boot를 빌드하기 위해 다음 두 명령을 따랐습니다.
$ sudo make nanopi_h3_defconfig ARCH=arm CROSS_COMPILE=arm-linux-
$ sudo make ARCH=arm CROSS_COMPILE=arm-linux-
첫 번째 명령에서 결과를 얻었습니다.구성은 .config에 기록됩니다. 그것은 성공을 의미합니다. 그러나 두 번째 명령에서 다음을 얻습니다.
make: arm-linux-gcc: No such file or directory
/bin/sh: 1: arm-linux-gcc: not found
dirname: missing operand
Try 'dirname --help' for more information.
scripts/kconfig/conf --silentoldconfig Kconfig
./scripts/binutils-version.sh: line 18: arm-linux-as: command not found
CHK include/config.h
CFG u-boot.cfg
/bin/sh: 1: arm-linux-gcc: not found
make[1]: *** [scripts/Makefile.autoconf:79: u-boot.cfg] Error 1
make: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/uboot.release'. Stop.
문제는 arm-linux-gcc에서 발생한 것 같지만 "arm-linux-gcc" 명령을 실행했더니 제대로 작동했습니다. 그렇다면 첫 번째 명령은 arm-linux-gcc를 전달하지만 두 번째 명령은 실패하는 이유는 무엇입니까?
답변1
문제는 ARM 툴체인이 root
s가 아닌 곳에 설치되어 있다는 것입니다 PATH
. 로 빌드하고 있기 때문에 sudo
컴파일러를 찾을 수 없습니다.
이 문제를 해결하려면 빌드 트리에 있는 모든 파일의 올바른 소유권을 복원하세요.
sudo chown -R $USER .
( sudo
모든 파일을 소유하고 있지 않기 때문에 이 작업이 필요합니다.)
이제 빌드를 실행하세요.아니요 sudo
:
make ARCH=arm CROSS_COMPILE=arm-linux-
실행해야 하는 커널 빌드의 유일한 부분은 root
설치 단계입니다. 크로스 컴파일을 하고 있으므로 빌드 시스템에서 이 작업을 수행할 필요가 없습니다. 빌드된 커널과 모듈을 다른 장치에 복사하여 설치할 수 있습니다. 저기).