ホームページ >運用・保守 >Linuxの運用と保守 >Linuxカーネル移植とは何ですか
Linux では、カーネル移植とは、あるハードウェア プラットフォームから別のハードウェア プラットフォームにプログラム コードを転送して実行することを指します。Linux カーネル移植には、アーキテクチャ レベルの移植、SOC レベルの移植、およびマザーボード レベルの移植の 3 つのレベルが含まれます。
#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。
いわゆる移植とは、ある動作環境から別の動作環境にプログラム コードを移行することです。カーネル移植の場合、主に、あるハードウェア プラットフォームから別のハードウェア プラットフォームで実行するように移行することが含まれます。
ターゲット ボードへの Linux カーネルの移植には、アーキテクチャ レベルの移植、SoC レベルの移植、およびマザーボード レベルの移植の 3 つのレベルが含まれます。
アーキテクチャ レベルの移植とは、異なるアーキテクチャ プラットフォームへの Linux カーネルの移植を指します。たとえば、ARM、MIPS、PPC などの異なるアーキテクチャでは、各システムを個別に移植する必要があります。 . 特定の移植作業のための構造。新しいアーキテクチャの出現には、このレベルでの移行が必要です。
SoC レベルの移植とは、特定の SoC プロセッサ プラットフォーム上の Linux カーネルの移植を指します。たとえば、ARM920T IP コアの 2 つのプロセッサ、S3C2410 と AT91RM9200 を実行する必要があります。 SoC 固有の移植作業。
マザーボードレベルの移植とは、特定のターゲットマザーボードに Linux カーネルを移植することを指します。たとえば、FS2410 ターゲットボードでは、マザーボード固有の移植作業が必要です。
ここではマザーボード レベルの移植について説明します。主に開発ボードの初期化とドライバーのコードを追加します。このコードの大部分はアーキテクチャに関連しており、arch ディレクトリ内のさまざまなアーキテクチャに従って管理されます。
Linux 2.6 カーネルは、SMDK2410、Simtec-BAST、IPAQ-H1940、Thorcom-VR1000 など、S3C2410 プロセッサ用のさまざまなハードウェア ボードをすでにサポートしています。 SMDK2410 リファレンス ボードを参照して、開発ボードのコアを移植できます。
S3C2410 はシステムオンチップであり、プロセッサ チップにはシリアル ポート、LCD およびその他の周辺インターフェイス用のコントローラーが搭載されています。このようにして、リファレンス ボード上のほとんどのデバイス ドライバーを直接使用できます。ただし、すべての外部デバイスが同じというわけではなく、異なる開発ボードでは異なる SDRAM、フラッシュ、イーサネット インターフェイス チップなどを使用できます。これには、ハードウェアに基づいてドライバーを変更または開発する必要があります。
たとえば、シリアル ポート ドライバーは典型的なデバイス ドライバーの 1 つであり、このドライバーはほとんど変更を必要としません。ただし、2.4 カーネル構成方法を使用する場合は、シリアル コンソール情報を取得できません。 2.6 カーネルでは、/dev ディレクトリ内のシリアル デバイスの対応するデバイス ノードは、/dev/ttySAC0、/dev/ttySAC1 などです。したがって、以前のシリアル ポート デバイス ttyS0 を使用すると、コンソール印刷情報は取得されません。この問題は、カーネル コマンド ライン パラメータのコンソール設定を console = ttySAC0,115200 に変更することで簡単に解決できるようになりました。
カーネルがすでに S3C2410 プロセッサをサポートしている後は、基本的にカーネルを実行するためにコードを変更する必要はありません。ただし、場合によっては、異なるデバイスに対してドライバーレベルの移植を実行する必要があり、少なくともハードウェア アドレスと割り込み番号が異なる場合があります。たとえば、ネットワーク チップや Nand フラッシュ チップなどの周辺機器のドライバーを移植する必要がある場合があります。
関連する推奨事項: 「Linux ビデオ チュートリアル 」
以上がLinuxカーネル移植とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。