asahilinux.orgのページ
出典: asahilinux.org

Linuxカーネルへの主要ドライバー提出が進展

Asahi LinuxはLinux 7.3の公開に合わせ、Apple Silicon対応の進捗を更新しました。音声ドライバー「macaudio」と映像関連の「avd」がLinuxカーネルのレビューに提出され、M4 Pro、M4 Max、M5向けの初期デバイスツリーも加わりました。

デバイスツリーは、カーネルがSoCのハードウェア構成を把握するための情報です。M4 Pro、M4 Max、M5向けの初期版は、起動してTTYと呼ばれる文字ベースの画面を表示する段階に限られ、各機能への対応は続いています。

macaudioのドライバーとデバイスツリーの変更は約3,100行、avd関連は約13,000行です。avdは、Asahi Linux側のコードに入ってから約3カ月でレビュー提出に至りました。

M3の一般提供とGPU対応の現状

M3シリーズのMacは、これまでインストーラーで「EXPERT」フラグを有効にした場合に限り、初期対応を利用できました。早期利用者から寄せられた問題がほとんどなかったため、フラグなしで使える一般提供へ移行しました。

M3対応ではDCPも有効になりました。性能とバッテリー駆動時間が改善し、スリープに対応したほか、MacBookのノッチ周辺も利用できるようになりました。

一方、M3のGPUは引き続き開発上の課題です。GPUを初期化して三角形を描画する段階まで進みましたが、M1やM2とは異なる設計への対応が必要で、Mesaへの統合に向けた開発が続いています。

Thunderboltは一部機能から利用可能に

Apple Silicon MacのThunderboltコントローラーに対応する変更は、Linuxカーネルへの提出と並行してAsahi Linuxのカーネルにも取り込まれ、利用者に提供されています。コントローラーはRTKitを実行するCortex-M3と、独自のThunderbolt/USB4ルーターで構成されています。

LinuxのThunderboltサブシステムは、これまで広く使われてきたIntel製コントローラーを前提としており、Apple独自の構成には調整が必要でした。また、各コントローラーのリセットはPMGRのレジスター操作に結び付いています。

現時点で使えるのはUSB 3、XDomain、Thunderboltネットワーキングです。USB機器を接続できるほか、Thunderboltで2台のコンピューターをつないで通信できますが、多くのドックで使われるPCIeとDisplayPortのトンネリングには未対応です。

FEXとWineを組み合わせたゲーム実行

Apple Silicon上でPCゲームを動かすには、異なる種類のソフトウェアを組み合わせます。FEXはx86やx86-64向けの命令をArm向けに変換し、WineはWindowsのAPIをLinux上で扱えるようにします。Asahi Linuxでは、これらを組み合わせてゲームを実行します。

ゲームの多くは4KiBのメモリーページを前提にしていますが、Linuxカーネルはシステムと同じ粒度でページを割り当てます。この差を埋めるため、muvmは小規模な仮想マシンを使い、ゲームに4KiBページを提示します。

ただし、muvmの使用には負荷があり、ワークロードによって約20%の性能低下が生じます。仮想マシン内ではWaylandを使えず、入出力が遅く、一部の入力機器にも問題が残ります。以前試された仮想マシン外での実行方法は、FEXの保守性と変換の正確性を優先して削除されました。