ARM SoCがコアとして扱いにくいのはなぜですか?

ARM SoCがコアとして扱いにくいのはなぜですか?

たとえば、x64システムにいくつかのLinuxディストリビューションがインストールされている場合は、ストレージドライブを取り外して別のx64システムに挿入し、一部のHLドライバ(グラフィックドライバなど)をインストールすると正常に動作することがあります。問題。

ARMシステム、特にあらゆるタイプのスマートフォンと同様に、ARM SoCの場合、物語はまったく異なります。すべてのスマートフォンには、同じオペレーティングシステム(OEM Androidディストリビューションなど)の異なるバージョンがあります。

私の質問は:なぜこれですか?

私が理解したのは、標準化されたアーキテクチャを搭載したPCとは異なり、SoCには多数のチップとアーキテクチャがあります。しかし、デバイスツリーを考えると、なぜ私はいくつかのROMチップのブートローダと一緒にデバイスツリー(ハードウェアの説明)を配置し、少なくともいくつかの明確な制限内でハードウェア仕様とは無関係にLinux OSを構築する方法がないのかどうか尋ねました。です。 。

答え1

私は何らかのROMチップにブートローダと一緒にデバイスツリー(ハードウェアの説明)を配置し、ハードウェアの仕様に関係なく(少なくとも定義された特定の制限内で)Linuxオペレーティングシステムを構築する方法がないかどうか尋ねました。

答え:安いです。誰もROMチップの費用を支払いたくない。 SoCにブートROMがあり、SoCがどの回路にあるかに応じてデバイスツリーが変わるため、それはうまくいきません。この機能を使用するには、別々の「BIOSチップ」(x86マザーボードなど)が必要です。

ほとんどのARMボードが起動しているSDカードをBIOSチップとして処理し、U-Bootとデバイスツリーをその上に置き、U-BootにUSBドライブからカーネルをロードさせることで動作させることができます。 USBドライバは、ARMボードからARMボードへ(かなり)移植可能です。

最適化の面では通常ARM用にコンパイルできますが、実際には特定のプロセッサをターゲットにすることをお勧めします(x86_64より効率的です)。

関連情報