Ubuntu 26.04 に採用されている Linux kernel 7.0 では、Wine や Proton といった Windows API 互換レイヤーの性能向上のために準備された /dev/ntsync を使うことができます。
というわけで Ubuntu 版 Steam クライアント(Proton) に ntsync 使わせると Windows ゲーム実行のフレームレートや安定性が向上するはず…という設定メモです。
まずは Steam クライアントを導入します。どうも snap 版だと権限の関係かうまく ntsync を使ってくれなかったので Valve Steam repository の公式 PPA より deb 版を導入。
$ sudo dpkg --add-architecture i386
$ sudo apt update
$ sudo curl -fsSLo /usr/share/keyrings/steam.gpg https://repo.steampowered.com/steam/archive/stable/steam.gpg
$ sudo chmod 0644 /usr/share/keyrings/steam.gpg
$ printf '%s\n' \
'Types: deb' \
'URIs: https://repo.steampowered.com/steam/' \
'Suites: stable' \
'Components: steam' \
'Architectures: amd64 i386' \
'Signed-By: /usr/share/keyrings/steam.gpg' | sudo tee /etc/apt/sources.list.d/steam.sources >/dev/null
$ sudo apt update
$ sudo apt install steam-launcher
ここでいったん Steam クライアントを起動して初期設定を走らせゲームの起動確認をした後に、 .bashrc に以下の環境変数を追加してから、(Steam の全プロセスが確実に落ちるという意味合いで)OS ごと再起動。
export PROTON_USE_NTSYNC=1
OS が起動してきたら、いよいよ ntsync カーネルモジュールをロードします。(Ubuntu 26.04 の標準構成では ntsync は自動ロードされない)
$ lsmod | grep ntsync
$ sudo modprobe ntsync
$ lsmod | grep ntsync
ntsync
できたら、Steam クライアントを起動し Compatibility が Proton Experimental(もしくは Proton 11 以上) になっていることを確認後、試したいゲームを起動。


ゲームが起動したら ntsync が使われているか次のコマンドで確認できます。ntsync が使われていないケースでは何も出力されません。
$ lsof /dev/ntsync
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
steam.exe 20098 hiromasa 17r CHR 10,262 0t0 1252 /dev/ntsync
wineserve 20100 hiromasa 14r CHR 10,262 0t0 1252 /dev/ntsync
services. 20104 hiromasa 15r CHR 10,262 0t0 1252 /dev/ntsync
winedevic 20107 hiromasa 15r CHR 10,262 0t0 1252 /dev/ntsync
plugplay. 20116 hiromasa 15r CHR 10,262 0t0 1252 /dev/ntsync
svchost.e 20124 hiromasa 15r CHR 10,262 0t0 1252 /dev/ntsync
winedevic 20131 hiromasa 15r CHR 10,262 0t0 1252 /dev/ntsync
explorer. 20150 hiromasa 10r CHR 10,262 0t0 1252 /dev/ntsync
rpcss.exe 20168 hiromasa 15r CHR 10,262 0t0 1252 /dev/ntsync
tabtip.ex 20177 hiromasa 15r CHR 10,262 0t0 1252 /dev/ntsync
xalia.exe 20179 hiromasa 15r CHR 10,262 0t0 1252 /dev/ntsync
default.e 20185 hiromasa 15r CHR 10,262 0t0 1252 /dev/ntsync
ゲームによっては相当フレームレートが伸びるとのことなので、環境変数設定やモジュールのアンロードなどで切り替えてベンチマークしてみると良いかもしれません。
よい結果が得られましたら ntsync を自動ロードするように Ubuntu を構成します。
echo "ntsync" | sudo tee /etc/modules-load.d/ntsync.conf
がってん🦸️