Apple M1 チップを搭載したデバイス上で GNOME を使用した Linux 環境の起動を実証

ASAHI Linux プロジェクトと Corellium プロジェクトによって推進されている Apple M1 チップの Linux サポート実装の取り組みは、Apple M1 チップを搭載したシステム上で動作する Linux 環境で GNOME デスクトップを実行できる段階に達しました。 画面出力はフレームバッファを使用して編成され、LLVMPipe ソフトウェア ラスタライザーを使用して OpenGL サポートが提供されます。 次のステップは、ディスプレイ コプロセッサが最大 4K 解像度で出力できるようにすることです。ドライバはすでにリバース エンジニアリングされています。

Project ASAHI は、メイン Linux カーネルで M1 SoC の非 GPU コンポーネントの初期サポートを実現しました。 デモされた Linux 環境では、標準カーネルの機能に加えて、PCIe、内部バス用の pinctrl ドライバー、およびディスプレイ ドライバーに関連するいくつかの追加パッチが使用されました。 これらの追加により、画面出力を提供し、USB およびイーサネット機能を実現できるようになりました。 グラフィックアクセラレーションはまだ使用されていません。

興味深いことに、M1 SoC をリバース エンジニアリングするために、Asahi プロジェクトは、macOS ドライバーを逆アセンブルする代わりに、macOS と M1 チップの間のレベルで実行され、チップ上のすべての操作を透過的に傍受してログに記録するハイパーバイザーを実装しました。 サードパーティ オペレーティング システムでのチップのサポートの実装を困難にする SoC M1 の機能の XNUMX つは、ディスプレイ コントローラー (DCP) へのコプロセッサーの追加です。 macOS ディスプレイ ドライバーの機能の半分は、指定されたコプロセッサー側に転送され、特別な RPC インターフェイスを通じてコプロセッサーの既製の関数を呼び出します。

愛好家は、画面出力にコプロセッサを使用したり、ハードウェア カーソルを制御して合成およびスケーリング操作を実行したりするために、この RPC インターフェイスへの十分な呼び出しをすでに解析しています。 問題は、RPC インターフェイスがファームウェアに依存しており、macOS のバージョンごとに異なるため、Asahi Linux は特定のファームウェア バージョンのみをサポートする予定であることです。 まずは、macOS 12「Monterey」に同梱されるファームウェアのサポートが提供される。 iBootによるファームウェアのインストールは、OSに制御を移す前の段階で、デジタル署名による検証を行った上で行われるため、必要なファームウェアのバージョンをダウンロードすることはできません。

Apple M1 チップを搭載したデバイス上で GNOME を使用した Linux 環境の起動を実証
Apple M1 チップを搭載したデバイス上で GNOME を使用した Linux 環境の起動を実証


出所: オープンネット.ru

コメントを追加します