Thunderbolt
関連記事
最近のバージョンの Linux カーネルでは特に設定をしなくても Thunderbolt 3 が動作します [1]。バージョン 4.13 から Linux カーネルは Thunderbolt Security もサポートしています。
目次
ファームウェアのアップデートの取得
Thunderbolt 端子とデバイスを正しく動作させるためのファームウェアアップデートがメーカーによって頻繁にリリースされています。特定のベンダーのアップデートを得るための方法については https://thunderbolttechnology.net/updates を見てください。
ユーザーデバイス認証
最近の Thunderbolt デバイスはセキュリティモードを実装しており、デバイスの接続時にユーザー認証を必要とします。悪意のあるデバイスが DMA 攻撃を実行したりハードウェアに干渉するのを防ぐための機能です (Thunderstrike 2 を参照)。
Linux では現在以下のモードがサポートされています:
none
- セキュリティなし。デフォルトで全てのデバイスが接続・初期化されます。BIOS の設定では大抵 Legacy mode と表記されます。user
- デバイスが接続されるたびにユーザー認証が必要です。BIOS の設定では大抵 Unique ID と表記されます。secure
- ユーザー認証が必要ですが、一度認証されるとそのデバイスが記憶され、その後は再認証が不要となります。BIOS の設定では大抵 One time saved key と表記されます。dponly
- DisplayPort 機能のみが許可され、他のデバイスは許可されません。BIOS の設定では大抵 Display Port Only と表記されます。
セキュリティレベルは基本的にファームウェアで設定します。secure
以上に設定することが推奨されています。
グラフィカルフロントエンド
- GNOME ではバージョン 3.30 から UI でデバイスを認証するためのネイティブなサポートが追加されました。
- Plasma 統合はこの git リポジトリと plasma-thunderbolt パッケージで入手できます。
自動的に全てのデバイスを接続
手動で設定せずに全てのデバイスに接続したい場合、以下のような 99-removable.rules
udev ルールを作成してください:
/etc/udev/rules.d/99-removable.rules
ACTION=="add", SUBSYSTEM=="thunderbolt", ATTR{authorized}=="0", ATTR{authorized}="1"
電源を強制する
多くの OEM 製品には、Thunderbolt コントローラの電源を強制的にオン状態にすることのできる方法があります。マシンによってサポートされているならば、WMI バスによって force_power という名前の sysfs 属性でこの機能が公開されます [2]。
電源の強制は、接続済みのデバイスの接続が失われる場合や、コントローラが自身をオフにしてしまう場合に特に便利です。
電源を強制的にオン/オフにするには、1 か 0 を属性に書き込んでください。例えば、強制的にオンにするには:
# echo 1 > /sys/bus/wmi/devices/86CCFD48-205E-4A77-9C48-2021CBEDE341/force_power
トラブルシューティング
PCI のバスが登録されない
Thunderbolt デバイスに接続する際に、PCI バスが登録されないことがあります。これは、スクリーンは機能しているのに、USB デバイスがコンピュータに登録できないといった症状で発見できます。この問題は PCI の再スキャンを発行することで解決できます:
# echo 1 > /sys/bus/pci/rescan
ホットプラグなバスのサイズとメモリを増やす
一部の BIOS はバスのサイズとメモリを過剰に小さくカーネルに報告する可能性があり、これによってドライバのロードに失敗してしまいます。サイズを手動で設定するには、以下をカーネルコマンドラインに追加してください:
pci=hpbussize=0x33,hpmemsize=256M