たとえば、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より効率的です)。