M4 Mac miniへのLinuxブートに成功、複数のハードウェア互換性課題を解決
November 2024に購入したM4 Mac miniでLinuxを起動するため、開発者はSPTM対応、MMU初期化、WFI命令の動作など複数のハードウェア互換性課題を解決し、April 2026に全コア有効での起動を実現した。解決策はmainline Linuxとbootloaderのm1n1に統合済み。
Asahi Linuxチームの開発者が、Apple Silicon M4チップ搭載Mac miniでのLinuxサポートに向け、複数のハードウェア互換性問題の解決に成功した。November 2024の購入から約18ヶ月を経て、April 2026に全コアを有効にした状態でのLinux起動を実現している。
ハードウェア互換性の課題と解決
M4マシンはApple Siliconの初代世代であり、SPTM(Secure Page Table Monitor)の導入を義務付けている。これにより従来のM1~M3との互換性が損なわれた。GXF機能はM4以降のSoC上でraw bootモード時に無効化・ロックされており、RVBAR(Reset Vector Base Address Register)の書き込みも不要となった。
UART アクセスはメモリマップドI/Oで実装されており、適切なMMUマッピングが必須である。開発段階では、SYS_IMP_APL_VM_TMR_FIQ_ENA_EL2レジスタへの書き込みがM4でクラッシュを招いていたが、その後のiBoot版ではこのレジスタが解放されている。デバイスツリーに「stdout-path = "serial0"」が不足していた点も特定された。m1n1 bootloaderではM4サポート向けのsmp_start_offsetが欠けていた。
WFI命令の動作問題と解決策
M1~M3 SoCに存在する「ARM64_REG_CYC_OVRD_ok2pwrdn_force_mask」というチキンビットはWFI動作に影響を与える。April 2026、開発者はカーネル内の全WFIおよびWFIT(Wait For Interrupt with Timeout)命令をNOP(no-op)に置き換えることで、M4での起動を実現した。
ARM64仕様では「システムがWFI命令を完了するように構成されている場合、WFI命令はアーキテクチャ状態の喪失を引き起こしてはならない」と定められている。本解決策はM4 Pro、M4 Max、M5チップでも動作確認されており、WFI・WFIT命令がLinuxをクラッシュさせることを防ぐメカニズムはmainline Linuxとm1n1 bootloaderの両方に統合されている。
筆者の見立て
- 開発者はM4が従来のM1~M3 Apple Siliconと同様に対応可能であると予想していたと語っている。
- 特定のWFI命令のケースを正確に検出する方法は非常に困難であると解釈している。
- Sven PeterのPSCI EFI conduit作業は将来の上流ソリューションとして有望と論じている。
- 多額の資金を得ているプロジェクトの一部が上流プロジェクトの進展からどのように恩恵を受けているかについて、より透明性があればよいと述べている。
この記事は元記事の事実のみに基づいて自動生成されました。
出典
The forgetful CPU (Linux on M4) - Blog https://yuka.dev/blog-2026-10-02-linux-m4.html