M4 Mac miniでLinuxを起動するまでの道のり
The Forgetful CPU (Linux on M4)
筆者は2024年11月に購入したM4 Mac miniでLinuxを起動することに成功した。M4 SoCはSPTM(Secure Page Table Monitor)を必須とするため、従来のMMIOトレースを用いたアプローチが困難であった。筆者はm1n1ハイパーバイザーの変更、起動セキュリティの無効化、シリアルコンソールの確保といった手順を踏んだ。起動プロセスでは、GXF機能の無効化やRVBARへの書き込みスキップ、MMU初期化時のMMIO空間のマッピング追加、SYS_IMP_APL_VM_TMR_FIQ_ENA_EL2レジスタへの書き込みコメントアウトといった課題を解決した。また、WFI(Wait For Interrupt)命令がCPUレジスタをクリアするM4特有の問題に対処するため、カーネル内のWFI/WFIT命令をNOPに置き換えることで、全コアを有効にした状態でのLinux起動を実現した。このWFI問題への対処法はメインラインLinuxとm1n1にマージされ、M4およびそれ以降のApple SiliconチップでLinuxが起動可能になった。今後は周辺機器のリバースエンジニアリングなどが進められる予定である。
- 筆者が2024年11月購入のM4 Mac miniでLinux起動に成功。M4 SoCはSPTMを必須とするため従来のMMIOトレース手法が困難だった
- m1n1ハイパーバイザー改変、起動セキュリティ無効化、シリアルコンソール確保、GXF無効化、MMU初期化時のMMIO空間マッピング追加などを通じて起動を達成
- M4特有のWFI命令によるCPUレジスタクリア問題を、カーネル内WFI/WFIT命令のNOP置換で解決し全コア有効状態のLinux起動を実現
- WFI問題への対処法がメインラインLinuxとm1n1にマージされ、M4以降のApple SiliconチップでLinux起動が可能になった
M4 Mac mini上でのLinux起動成功は、Apple Siliconの閉鎖性を前提とした周辺チップ・OS制約がハッカーコミュニティ主導で突破されつつあることを示す。WFI問題への対処がメインラインLinuxとm1n1にマージされた点は、Apple Siliconが汎用コンピューティング基盤として長期サポート対象になる転換点であり、Macの法人・開発者利用拡大や、ARM系Linuxエコシステムの裾野拡大を通じて半導体・クラウド・開発ツール各社の需要構造に波及しうる。投資家としては、Appleの垂直統合戦略が第三者によるプラットフォーム開放圧力にどう応じるか、およびARMベースのクライアントLinux市場の立ち上がり速度を注視したい。