CorelliumがLinuxのM1チップへの移植を発表

Corelliumは、 M1チップを搭載した新型Appleコンピュータで動作するように最適化されたLinuxバージョンをリリースした。Apple M1チップに対応したLinuxカーネルのバリアントはGPLv2ライセンスでリリースされており、メインカーネルへの組み込みに向けたパッチが提出されている。

Corelliumは、iPhoneなどのモバイルデバイスで使用されるApple製チップへのLinux移行において豊富な経験を有しています。移行の初期段階では、Apple M1の多くのコンポーネントが、Appleが他のSoCですでに使用している技術に基づいていることをテスターは知ることができました。

しかし、ドライバ開発の過程で、事態はそれほど単純ではなく、 Apple M1チップには多くの非標準的なソリューションが含まれていることが明らかになった。64ビットARM SoC向けのLinuxサポートは、共通の構成要素とファームウェアインターフェースに依存しているが、Apple M1は一般的なソリューションをほとんど使用していない。

例えば、従来のARM SoCでは、CPUコアのアクティベーションはファームウェアが提供するPSCI(Power State Coordination Interface)を介して行われますが、Apple M1ではMMIOレジスタの操作が必要です。

現段階では、Corelliumの開発者たちは、これまでリバースエンジニアリングとブートローダーの実験に限定されていた、Héctor Martin氏がApple M1チップ搭載システムへのLinux移植を目的として設立したAsahi Linuxプロジェクトを追い越した。しかし、Asahi Linuxの主な目的は、Linuxを起動するだけでなく、電力管理メカニズムを完全にサポートし、特定の命令セットを使用するApple M1 GPUの機能を活用することにある。

Corelliumのパッチは、ブート機能の提供と、 SMPモード、タイマー、割り込み、アイドル状態処理、初期化に関連する特定のM1チップ機能のサポートに限定されています。

Asahi Linuxの代表者は、Corelliumパッチのリリースを歓迎し、Linuxカーネルの主流への普及を加速させるために、ピアレビューの支援を提供する意向を表明した。

さらに、Alyssa Rosenzweig(Panfrost GPU Maliドライバーを開発しているCollaboraから)は、Apple M1GPUのリバースエンジニアリングとオープンソースドライバーの開発に関するXNUMX番目のレポートを公開したとも言われています。

現段階では、GPUを使用して三角形を描くことができるコントローラーの初期プロトタイプが準備されています。 M1 GPUの場合、最初の頂点シェーダーとフラグメントシェーダーも手動でコーディングされます。 カーネルドライバーIOKitは、GPUとの対話に使用されます。

Apple M1は、独自のApple割り込みコントローラ(AIC)を使用しており、これは標準的なARM GICとはほとんど互換性がなく、タイマーからの割り込みをバインドするメカニズムも異なります。さらに、複数のプロセッサ間の相互作用を管理するために、IPI(プロセッサ間割り込み)を制御する個別のレジスタが使用されます。

Apple M1チップを搭載したMac Mini M1コンピュータで起動するために、Raspberry Pi用のUbuntuビルドをベースにした、すぐに使用できるrootfsイメージが用意されています。

インストールするには、イメージファイルをUSBドライブにコピーし、USB-Cポートに接続します。起動時に電源ボタンを長押しして、コンピュータを1TRモード(リカバリOS)で起動します。コマンドラインが表示されたら、linuxsetup.shスクリプトを実行します。これにより、カーネルがインストールされ、環境が構成されます。

この時点でLinuxが起動しますが、 macOSに戻すには、1TRモードで「bputil -n」コマンドを実行する必要があります。

Ready buildはUSB、I2C、DARTをサポートしています。ネットワークには外部USBアダプターを使用することをお勧めしますが、グラフィックハードウェアアクセラレーションと拡張周辺機器はまだサポートされていません。 非標準のPCIeベースのプロトコルを使用しているため、Bluetoothサポートでは新しいドライバーを作成する必要があります。

出典:https://corellium.com


Googleで優先ソースとして追加する