私のボードのu-bootを構築するために、次の2つのコマンドに従いました。
$ sudo make nanopi_h3_defconfig ARCH=arm CROSS_COMPILE=arm-linux-
$ sudo make ARCH=arm CROSS_COMPILE=arm-linux-
最初のコマンドで結果を得ました。設定は.configに書き込まれます。 それは成功を意味します。しかし、2番目のコマンドでは次のようになります。
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を渡しますが、2番目のコマンドが失敗するのはなぜですか?
答え1
問題は、ARMツールチェーンがroot
s以外の場所にインストールされていることですPATH
。でビルドしているため、sudo
コンパイラが見つかりません。
この問題を解決するには、ビルドツリー内のすべてのファイルの正しい所有権を復元します。
sudo chown -R $USER .
(sudo
すべてのファイルを所有していないため、この作業が必要です。)
今ビルドを実行してください。いいえ sudo
:
make ARCH=arm CROSS_COMPILE=arm-linux-
実行する必要があるカーネルビルドの唯一の部分はroot
インストールステップです。クロスコンパイルしているので、ビルドシステムでこれを行う必要はありません。ビルドされたカーネルとモジュールを別のデバイスにコピーしてインストールできます。そこ)。