8月31日、Phoronixが「Linux Kernel Patches Out For Review To Enable USB4/Thunderbolt For Apple M1 / M2 / M3」と題した記事を公開した。Apple Silicon(M1/M2/M3)向けのUSB4/ThunderboltサポートをLinuxメインラインカーネルへ取り込むための19本のパッチセットが、Linuxカーネルメーリングリスト(LKML)に投稿されレビュー待ちとなった。
Apple SiliconをLinuxで実用的に動かすためには、USB4/Thunderboltは避けて通れないインターフェースだ。ストレージ、ディスプレイ、ネットワークアダプタなど外部デバイスの大半がここを経由するにもかかわらず、メインラインカーネルではこれまで対応が実現していなかった。今回のパッチはその空白を埋める重要な一歩となる。
19本のパッチがレビュー待ちに
投稿者はApple Silicon向けLinux開発の主要人物であり、Apple Silicon向け専用ディストリビューション「Asahi Linux」の中心的開発者でもあるSven Peter氏だ。パッチシリーズはLKMLで公開されており、M1/M2/M3すべてを対象としている。
Asahi Linuxはすでに独自のダウンストリームツリーでUSB4/Thunderboltを有効化済みだ。今回の動きはその実装をLinux本体(メインライン)に取り込む作業にあたり、Asahi Linux以外の環境でもApple Siliconが実用的に扱えるようになるための重要なステップとなる。
なぜこれほど複雑な実装になったか
パッチの実装が難航した最大の理由は、AppleのUSB4ポートが標準的なPC向けThunderboltとは根本的に異なる設計を採用していることにある。Appleの実装はACIO(Apple Converged I/O)と呼ばれる専用ブロックを介しており、パッチの説明文には次のように記されている。
「USB4対応のType-CポートにはそれぞれACIOブロックが付属しており、Cortex-M3コプロセッサとUSB4ルーターを実装するハードウェアが含まれている。NHI(Native Host Interface)およびDART(Apple独自のIOMMU)もこのACIOブロックの一部だ。独立した常時アクセス可能なデバイスとして公開されるのではなく、メインSoCバスはコプロセッサの動作中にACIOのMMIO空間への16 MiBのウィンドウしか持たない。」
整理すると、AppleのUSB4実装はCortex-M3コプロセッサ(Appleが独自に組み込んだマイコン)を内包した専用アーキテクチャであり、標準的なLinuxドライバがそのまま適用できない。加えて、このACIOブロックの仕様が公開されていないためリバースエンジニアリングで把握するしかなく、それがメインライン化を長引かせてきた主因だ。
現時点でできること・できないこと
今回のパッチで有効になるのは、XDomain接続(Thunderboltケーブルを使ったデバイス間の直接通信プロトコル)とUSB3-via-USB4トンネリング(USB4ケーブルを使ったUSB 3.x機器の接続)の2つだ。一方、以下の機能はまだ未対応となる。
- PCIeトンネリング:Thunderbolt経由での外付けGPUや外付けNVMeの接続は不可
- DisplayPortトンネリング:Thunderbolt→映像出力は不可
- サスペンド/レジューム:接続中にサスペンドに入るとレジューム時にSError(システムエラー)が発生するため、接続中はサスペンドを抑止する必要がある
パッチには「PCIeとDisplayPortのトンネリングはまだ完了していないリバースエンジニアリング作業が必要なため、後回しになる」と明記されており、外付けGPUや映像出力への対応は将来の課題として残る。なお、M3のデバイスツリーノードは残りのスタックがアップストリームに取り込まれてから追加される予定だが、現行コードはすでにM3実機でのテストに成功しているとのことだ。
メインライン化が持つ意味
Asahi Linuxはこれまでもアップストリームへの貢献を積み重ねており、GPUドライバやディスプレイエンジンのサポートなど多くの機能がすでにメインラインに取り込まれている。USB4/Thunderboltはその中でも実用上の影響が大きい機能のひとつだ。メインライン化が完了すれば、Ubuntu・Fedora・Arch LinuxといったメジャーなディストリビューションをApple Silicon搭載Macに導入したユーザーも、特別なパッチを当てることなくUSB4デバイスを利用できるようになる。
外付けGPUや映像出力といった機能の対応はまだ先になるが、USB機器やThunderboltストレージが使えるようになるだけでもApple Silicon上のLinux環境は大きく前進する。レビューを経てどのカーネルリリースサイクルでマージされるか、今後の動向が注目される。
詳細はLinux Kernel Patches Out For Review To Enable USB4/Thunderbolt For Apple M1 / M2 / M3を参照していただきたい。