本文へスキップ

Linux 7.4、blockプルでApple M4のNVMeに対応

Linux 7.4のblock(ブロック)サブシステムのプルが、Apple M4のANS2 NVMeコントローラー用ドライバーを追加。旧Macのフロッピードライバーへの33件の修正も含みます。

著者 Tech AI Wire Team

4 分で読めます

木のテーブルに置かれた銀色のM4 Mac mini。上面にAppleロゴがあり、前面に2つのUSB-Cポートとヘッドホン端子が見えます。
写真: Kyu3a / Wikimedia Commons, CC BY-SA 4.0

数字で見る

maximum queue depth the new driver sets for the M4 controller
64
fixes to the SWIM floppy driver for classic Macs
33
files changed by the 7.4 block pull
66

Linux 7.4は、AppleのM4チップに内蔵されたNVMeストレージコントローラーへの対応をマージしました。Phoronixが2026年10月24日に報じたblockサブシステムのプルに含まれています。同じプルでは、クラシックなMacintosh向けのものを含むフロッピーディスクドライバーも修正されました。Apple Silicon上でLinuxを動かす人にとって、M4ドライバーは内蔵ドライブを読み書きするために必要な一歩です。

blockプルの中身

blockサブシステムは、SSD、ハードディスク、フロッピーディスクといったストレージ機器を扱うカーネルの部分です。Jens Axboe氏がリリースごとにblock関連の変更をまとめ、プルリクエストとしてLinus Torvalds氏に送ります。

マージコミットによると、「for-7.4/block-20261021」というタグの付いた同氏の7.4向けプルは、10月25日にメインラインのカーネルに入りました。66ファイルに及び、3,793行が追加され、1,541行が削除されています。その概要には、Keith Busch氏がまとめたNVMe関連の更新として「Apple M4 (t8132) ANS2 NVMe support」が挙げられています。

7.4のblockプルの変更担当者修正・追加の内容
Apple M4のANS2 NVMe対応Yureka Lilian氏M4チップのストレージコントローラー
フロッピードライバーのメモリー修正Denis Efremov氏(Oracle)スタックメモリーのオーバーランの可能性
フロッピーの不具合(リグレッション)修正Denis Efremov氏(Oracle)2017年のドライブフラグのリファクタリングで生じたバグ
フロッピーのデータ競合の修正Cen Zhang氏同時に動くコード間の競合
SWIMドライバーの修正Finn Thain氏旧Macintoshのフロッピーコントローラーへの33件の修正

カーネルの高速な非同期入出力インターフェースであるio_uringの更新も、この期間にマージされました。Phoronixはその変更内容を挙げていません。

M4ストレージドライバーの違い

NVMeは、高速なSSDがコンピューターとやり取りするための標準的な方式です。コンピューターはコマンドをサブミッションキューに置き、結果をコンプリーションキューから読み取ります。ANS2は、カーネルがM4のシステムオンチップ内のNVMeコントローラーを呼ぶ名前で、チップIDはt8132です。

コミットは、M4版の変わった点を説明しています。「この派生版では、追加のMMIO書き込みを使ってIOキューを登録する必要がある」と書かれています。MMIO(メモリーマップドI/O)とは、ドライバーが特別なメモリーアドレスに書き込むことでハードウェアとやり取りする方式です。

通常、ドライバーは各キューの大きさを、そのキューを作るコマンドの中でNVMeドライブに伝えます。M4では、そのサイズの欄は無視されます。代わりに、ドライバーはオフセット0x1210のレジスターにキューのサイズを書き込みます。カーネルでは以前、このレジスターをAPPLE_ANS_MAX_PEND_CMDS_CTRLと呼んでいました。

変更は小さなもので、既存のApple NVMeドライバーの1ファイルに35行を追加し、4行を削除しています。M4のキューの最大深さを64に設定します。Yureka Lilian氏が2026年9月6日に書き、Sven Peter氏がレビューし、Keith Busch氏がコミットしました。これに合わせた1行の変更で「apple,t8132-nvme-ans2」というデバイスの記述が追加され、Conor Dooley氏が承認(ack)しています。

このドライバーは、M4搭載Mac向けの最初のデバイスツリーと同じリリースに入ります。デバイスツリーとは、マシンにどんなハードウェアがあり、どこにあるかをカーネルに伝えるファイルです。Phoronixが10月2日に報じたところでは、Asahi Linuxの開発者であるSven Peter氏が6機種のM4搭載Mac向けのツリーを提出しました。14インチMacBook Pro、24インチiMac 2機種、13インチと15インチのMacBook Air、Mac Miniです。ツリーが扱うのはCPUコア、割り込みコントローラー、シリアルポート、フレームバッファーなどの基本的な部分だけです。Phoronixの一覧にNVMeは含まれておらず、GPUも有効になっていません。

ツールで見つかり、旧Macで試されたフロッピー修正

プルの残りは、Linuxがどれほど長くハードウェアを生かし続けるかを思い出させます。Denis Efremov氏のメモリー修正は、KASAN(Kernel Address Sanitizer)が見つけたものです。KASANは、触れてはいけないメモリーを読み書きするコードを捕まえるデバッグツールです。

Phoronixによると、Cen Zhang氏のデータ競合の修正は「our tools(私たちのツール)」で見つかりました。同メディアはAIツールだと推測していますが、ツールの名前は示されていません。

Motorola 68000系のMacでLinuxを動かし続けるコミュニティのFinn Thain氏は、SWIMドライバーに33件の修正を送りました。SWIMは、クラシックなMacintoshのフロッピーコントローラーです。同氏はMac Quadra 650、Mac LC III、Mac Quadra 700、Mac IIvxで修正を試しました。

このマージウィンドウでは、Nintendo Switch 2コントローラーのドライバーや、大規模サーバー向けのworkqueueフラッシュの高速化も入りました。

開発者にとっての意味

M4ドライバーが最も重要なのは、Asahi Linuxのコミュニティと、最近のMacでLinuxを使いたい人です。

  • 7.4だけでM4搭載MacがLinuxで動くとは期待しない。 Phoronixによると、7.4のデバイスツリーはカーネルの起動を始めるには十分ですが、ほかの多くのハードウェアは今後のカーネルを待つことになります。Apple SiliconへのLinux移植プロジェクトであるAsahi LinuxがM3の公式サポートに到達したのは9月のことで、その時点でもまだ足りない機能を挙げていました。
  • アップストリームへの道筋を見守る。 このドライバーはフォークではなく、メインラインのカーネルに入りました。アップストリームに入ったコードは、ほかのすべてのコードと一緒にレビューされ保守されるので、ディストリビューションが出荷しやすくなります。
  • ドライバーを書くならコミットを読む。 新しいドライバーを作らず、既存のドライバーにフラグを足してハードウェアの派生版に対応する、簡潔な例になっています。
  • 古いハードウェアを使っているなら試す。 フロッピードライブ付きのLinuxマシンを持っているなら、7.4ではフロッピーとSWIMのドライバーが変わります。7.4-rc1から始まるリリース候補版で試してみましょう。
  • ツールが見つけるバグは増えると考える。 1件はKASANが、ほかは名前のないツールが見つけました。古いドライバーを保守するプロジェクトも、自分たちのテスト環境でサニタイザーを動かすべきです。

出典

  1. Linux 7.4 Block Updates Range From Floppy Disk Driver Fixes To Apple M4 NVMe Support - Phoronix
  2. nvme: apple: add t8132 (M4) ANS2 NVMe support - Linux kernel (GitHub mirror)
  3. Linux 7.4 To Introduce Initial Device Trees For Apple M4, A18 Pro For MacBook Neo - Phoronix
  4. Merge tag 'for-7.4/block-20261021' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux - Linux kernel (GitHub mirror)

関連記事

電子工作ラボの灰色の静電気防止マットに置かれた、ブランド表示のない小型シングルボードコンピューター。USBフラッシュドライブが差し込まれ、隣には頑丈なアルミ製ケースがあります。
プログラミング

BeamFSのRFC:Reed-Solomon符号を使うLinuxファイルシステム

18件のパッチからなるLinuxのRFC、BeamFSは、すべてのブロックをReed-Solomon(リード・ソロモン)符号語として保存します。これにより、1台のディスク上で反転したビットを修復できます。代わりに容量の7%を使います。

KernelNewbiesのLinux 7.3変更履歴ページ。failfs、fchroot(2)、RWF_DONTCACHEを挙げた概要の下に、主な機能の目次が並んでいます。
プログラミング

Linux 7.3公開、fchrootとfailfs、Btrfsの高速化

Linus Torvalds氏が2026年10月18日にLinux 7.3を公開しました。3,021人の開発者による18,765件のコミットで、新しいサンドボックス機能と、最大5倍速いBtrfsのfsyncを備えています。