9月25日、Phoronixが「Patches Posted For Enabling NVMe On All Apple M3 Based SoCs With Linux」と題した記事を公開した。Apple M3シリーズ全SoCにおいてLinux上でNVMeストレージを有効化するパッチが投稿されたという内容だ。
Apple SiliconへのLinux対応は、Asahi Linuxプロジェクトがリードする形でここ数年着実に進んできた。しかし「メインラインLinuxカーネルで動く」となると話は別で、M3シリーズは基本的なSoC認識こそ取り込まれてきたものの、ストレージ(NVMe)は依然として未対応のままだった。その穴を埋める可能性のあるパッチが、今週ついに投稿された。
差分はわずか約140行 — ドライバーはすでに存在している
Asahiチームのメンバーでもある開発者のJanne Grunauが、Apple M3 / M3 Pro / M3 Max / M3 Ultraの全デバイスを対象にNVMeストレージを有効化する計7本のパッチシリーズを投稿した。パッチは現在、Linuxカーネルメーリングリスト(lkml)でレビュー待ちの状態だ。
技術的な肝は「NVMeの動作ロジック自体には手を加えていない」という点だ。M3シリーズのNVMeは先行するApple M2 Pro / Max / Ultraと同じ仕組みで動作するため、ドライバーレベルの新規実装は不要。必要なのは**Device Tree(DT)**と関連YAMLへの記述を約140行追加することだけだ。
Device Treeとは、LinuxカーネルがCPUやメモリ、周辺デバイスの接続情報などハードウェア構成を認識するために使うデータ構造で、特にARMベースのSoCでは欠かせない仕組みだ。言い換えれば、M3対応のNVMeドライバーコードはすでにカーネルに存在しており、「M3はこういう構成のハードウェアだ」とカーネルに教える定義だけが欠けていた状態だった。
Linuxカーネルは約9〜10週ごとに新バージョンをリリースするサイクルを持ち、各サイクルの冒頭に設けられる「マージウィンドウ」と呼ばれる約2週間の期間に新機能が取り込まれる。差分が小さいぶん、次のマージウィンドウ(10月予定)に間に合う可能性が高いとPhoronixは見ている。
M3のメインラインLinuxサポート、現在地
Apple M3シリーズのメインラインLinuxカーネルへの取り込みは段階的に進んでいる。M3の初期SoCサポートが加わったのに続き、M3 Pro / Max / Ultraのサポートも順次マージされてきた。今回のNVMeパッチが次のサイクルに取り込まれれば、ストレージが使えるという大きなマイルストーンに到達する。
ただし現時点でのメインラインカーネルにおけるM3サポートは「very basic(非常に基本的)」な段階であり、GPU・ディスプレイ・電源管理など多くのサブシステムはまだ対応が続いている。日常的な使用に耐えるレベルにはまだ時間がかかるとみられる。
今すぐM3 MacでLinuxを動かしたいなら
メインラインカーネルの整備を待てない場合は、Asahi Linuxが現実的な選択肢だ。Asahi LinuxはApple Silicon向けのダウンストリームLinuxディストリビューションで、メインラインへのマージより早く最新の対応が取り込まれており、M3サポートもすでに提供済みだ。今回のパッチを投稿したJanne Grunau自身もAsahiチームの一員であり、メインラインへの貢献もAsahiチームが主導する流れは今後も続くとみられる。
詳細はPatches Posted For Enabling NVMe On All Apple M3 Based SoCs With Linuxを参照していただきたい。