Linuxカーネルをクロスコンパイルする方法は?

Linuxカーネルをクロスコンパイルする方法は?

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のコアクロスコンパイラパッケージ名は同じです。)

おすすめ記事