だから私は最近、MIPS命令セットを実行するIngenic SoCベースのRS-97ゲームを購入しました。ベンダーは、ターゲットSoC用のLinuxカーネルをコンパイルする方法についてあいまいなガイドラインを提供します。したがって、ベンダーの指示とオンライン検索によると、このプラットフォームの組み込みLinuxイメージを取得するには、次のものが必要です。
- コンパイルツールチェーン(Mipsベースのアーキテクチャ用mipsel)
- ツールチェーンを使用した特定のドライバ/BSPを使用したLinuxカーネルのコンパイル
- ルートファイルシステムのコンパイル - Busyboxが推奨する(理由は不明)
- ターゲットSoC用のuBootのコンパイル
- ターゲット固有のパーティションテーブルを使用するパーティションストレージ(例:sd)
- フル画像をSDにフラッシュ
その場合、問題は、なぜルートファイルシステムがカーネルイメージから分離されているのかということです。ファイルシステムの作成では、busyboxはどのような役割を果たしますか?また、Linuxイメージがルートファイルシステムなしでコンパイルされている場合、ドライバがルートファイルシステムの/ sysディレクトリにあるように2つのイメージをどのようにマージしますか?
答え1
これは非常に大きな質問なので、簡単にまとめてみましょう。
ルートファイルシステムがカーネルイメージから分離されたのはなぜですか?
カーネルイメージは、組み込みLinuxプロジェクト用のフレームワークを提供するkernel.org(必要に応じて変更できますが、ほとんどの人は変更しません)が提供する実行可能ファイルです。ルートファイルシステムはコードと設定がある場所です。カーネルはルートファイルシステムをロードします。
ファイルシステムの作成でbusyboxはどのような役割を果たしますか?
Busyboxは、コマンドラインインターフェイス、ファイルリスト、プロセスリスト、ファイルコピーなど、多くの便利な機能を提供するアプリケーションです。 Busyboxの機能は、名前がどのように割り当てられるかに応じて変わります。つまり、アプリの名前を変更すると、アプリは他の機能を実行します。これは、多数のユーティリティを小さなファイルシステムにパッケージ化する非常に効率的な方法です。
また、Linuxイメージがルートファイルシステムなしでコンパイルされている場合、ドライバがルートファイルシステムの/ sysディレクトリにあるように2つのイメージをマージするにはどうすればよいですか?
カーネルにいくつかのパラメータを指定して、ルートファイルシステムを見つける場所を知らせることができます。パラメータを設定する必要がありますroot
。バラよりカーネルコマンドラインパラメータ。