linuxでzwiftをやる方法

まとめ

・linuxでも問題なくzwiftができる

・仮想コンテナ化されているのでlinuxの種類は問わない

・コンパニオンアプリを使ったスマホ経由のブリッジ接続となることに注意

参考にした情報

netbrainさんのgithub

Easily zwift on linux. Contribute to netbrain/zwift development by creating an account on GitHub.

仮想コンテナとしてzwiftができるようにしたもの。

正直こちらのホームページのwikiに全てが記載されていると言ってよい。

(英語表記なのが難点だが)。

元々のzwiftアプリはlinux対応していないので、自前でやろうとしたらWindowsソフトを動かすためにwineやらが必要になるが、そこらへんの面倒な処理を仮想コンテナとして用意してくれているということです。

非常にありがたい。

筆者の環境

・Ubuntu 24.04 LTS

・intel core i7 7700

・メモリ8GB、SATAのSSD

・グラボなし

linuxにzwiftを入れる手順

手順① dockerを入れる

まず仮想コンテナのソフトウェアであるdockerを入れます。

最近はpodmanというのもdockerみたいに使えるみたいですが、筆者はdockerしか知らないのでdockerを使います。

以下のサイトを参考にdockerをインストールします。

Docker のインストール方法は 色々 あるみたいですが,パターン 1: Docker Engine のインストールパターン 2: Docker Desktop のインストールの 2 つにつ…

上記サイトの通りだが、レポジトリをaptに追加する必要があるのと、dockerグループの作成等に注意。

手順② install.shする

以下のコマンドでgithub上からinstall.shを持ってきて実行します。

sudo bash -c “$(curl -fsSL https://raw.githubusercontent.com/netbrain/zwift/master/bin/install.sh)”

install.shはコードを見ればわかりますが、/usr/local/bin/にzwift.shを配置したりするシンプルなものです。

手順③ zwiftコマンドを実行

install.shで/usr/local/bin/にzwift.shが入ったので、以下コマンドラインで「zwift」と打てば、docker上でzwiftが立ち上がります。

zwift

初回は、githubからのpullの処理がありそれなりに時間がかかるかもしれません。

githubからのpullが完了したら、zwiftが立ち上がります。

GUI画面が立ち上がり、途中「zwiftは応答していません」と何回か表示されますが、無視していればそのままzwiftのログイン画面にいきます。

(タイムアウトの判定がデフォルトだと厳しすぎるのが原因。直す方法はgithubのwikiに書いてある。)

手順③ コンパニオンアプリからブリッジ

以下の公式サイトの手順を参考にします。

Using the Zwift Companion App as a Bridge When using Zwift on a computer or Apple TV you can use the Zwift Companion ZC app on your mobile device to create

コンパニオンアプリ>その他>設定>デバイスの接続をオン にしておけば、自然につながります。

ちなみに、ブリッジするときは、linuxPCとスマホが同一ネットワークであればよいためか、linuxPCは有線でいけました。

やってみての感想

・普通にzwiftができてびっくり。

・仮想コンテナ上なので動作に不安があったが、解像度はMAXにしても問題なく動く。

・ただ、動作が微妙にカクつく時がある。リソースモニタを見たが、zwift使用時はCPU使用率がかなり高いので、筆者が使っているlinuxマシンのCPU性能の問題かもしれない。

・ブリッジ接続すると走行データの通信がもたつきそうなイメージがあったが、通信量も少なく、ネットワーク関係のラグが少ないのが意外だった。

さいごに

以上、「linuxでzwiftをやる方法」でした。ここまで読んでくださりありがとうございました。

今のところうまく使えていますが、今後検証を進めていきます。

(参考)詰まった点のメモ

dockerインストールの際のusermodでの注意

Docker のインストール方法は 色々 あるみたいですが,パターン 1: Docker Engine のインストールパターン 2: Docker Desktop のインストールの 2 つにつ…

上記サイトにも書いてありますが、ユーザーをdockerグループに含ませる必要があります。

sudo usermod -aG docker <ユーザー名>

ここで、コマンドを打った後、ロゲアウトか再起動しないとグループ加入の情報が反映されないので注意しましょう。

グループ加入の情報が反映されない場合、zwiftコマンドを打ってもsocket関係のエラーが出て起動しません。

このとき、sudo zwiftとしても無駄なので注意が必要です。

おそらくdockerの初歩的なエラーかと思いますが、筆者があまりdockerに詳しくないので、やってしまいました。