ホームページ >運用・保守 >Linuxの運用と保守 >Linuxカーネル移植とは何ですか

Linuxカーネル移植とは何ですか

WBOY
WBOYオリジナル
2022-03-24 10:29:062971ブラウズ

Linux では、カーネル移植とは、あるハードウェア プラットフォームから別のハードウェア プラットフォームにプログラム コードを転送して実行することを指します。Linux カーネル移植には、アーキテクチャ レベルの移植、SOC レベルの移植、およびマザーボード レベルの移植の 3 つのレベルが含まれます。

Linuxカーネル移植とは何ですか

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

Linux カーネル移植とは

いわゆる移植とは、ある動作環境から別の動作環境にプログラム コードを移行することです。カーネル移植の場合、主に、あるハードウェア プラットフォームから別のハードウェア プラットフォームで実行するように移行することが含まれます。

ターゲット ボードへの 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。