it.xnews.jp
生成: 2026-10-03 読了 約 3 分 model: claude-haiku-4-5 原文: https://yuka.dev/blog-2026-10-02-linux-m4.html raw.md

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の両方に統合されている。

筆者の見立て

この記事は元記事の事実のみに基づいて自動生成されました。

出典

The forgetful CPU (Linux on M4) - Blog https://yuka.dev/blog-2026-10-02-linux-m4.html

この記事をシェア