AArch64用のLinuxクロスコンパイル方法を理解しようとして数日ではなく、数時間を費やしました。
これを行うには、仮想マシンでUbuntuを使用していますが、私が見つけたすべてのガイドが正しく動作しません。それらのほとんどは、エンドユーザーがDebianを持っていて名前が異なると仮定しています。構成ファイルを作成できるようになった後は使用できませんでした。と入力したときmake
、menuconfigを使用して設定ファイルを保存したにもかかわらず、x86ベースのシステムに関するアンケートを受け取りました。その後、ARCH
パラメータを指定し、CROSS_COMPILE
私のビルド目標に重要な多くの項目をスキップした別のアンケートを受け取りました。
その後、Ubuntu VMを再インストールする必要があるため、クロスコンパイルが機能するために何をインストールする必要があるのか、パラメータをどのように指定したのかわかりませんでしたCROSS_COMPILE
。コンパイラをインストールしましたが(Ubuntuでどのように呼び出されるかを知ってから数時間かかりました)、クロスコンパイルを指定するときに名前が異なります。たぶん私は何かをスキップしたかもしれません。
はい、何度も検索しましたが、ほとんどのガイドでは、ユーザーがかなりあいまいなものをたくさん知っているとします。彼らの多くは10歳以上の人でもあります。
答え1
UbuntuでARch64カーネルをクロスコンパイルするには、インストールしてgcc-aarch64-linux-gnu
ビルドを実行する必要があります。
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- ...
だから
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
構成と
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- all
カーネルとモジュールを構築します。
必要なオプションが見つからない場合は、/inを使用してmenuconfig
検索してください。これにより、アクティブにする必要がある他の項目が表示されます。
(このガイドラインはDebianと同じです。DebianとUbuntuのコアクロスコンパイラパッケージ名は同じです。)