Running Zwift on Ubuntu using Wine with podman

I am a user of netbrain/zwift, which helps run Zwift application on Linux using the container and wine without hassle. Pretty cool stuff.

I have been enjoying Zwift with it on my Ubuntu desktop with docker until a few days ago, but it stopped working suddenly - it stopped using my GPU and got so slow that I could barely play.

Since the re-installation and upgrade/downgrade of the tools didn't help, I tried with podman instead and succeeded. Here's how I made it work.

Making it work with podman

First, I installed podman and configured CDI (Container Device Interface) as instructed in the official guide.

sudo apt install podman
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
nvidia-ctk cdi list # showed what the guide says

Then I ran the zwift command with podman (podman is used without any option when both docker and podman are installed), and got an error:

Error: runc: runc create failed: unable to start container process: error during container init: error creating device nodes: open /home/yk/.local/share/containers/storage/overlay/97b5d0698932236fed687ddf07b54d8b5f833a1b4d6f11f67bac0cd0248f9255/merged/dev/dri/card1: permission denied: OCI permission denied

Then I saw a GitHub issue mentioning the lack of crun. So I installed crun and tried again, and it worked.

sudo apt install crun

It was not needed to explicitly specify --runtime=crun in the podman command, and the zwift command worked as expected.

Insights?

Nah. I was just happy enough to make it work, and wanted to start riding instead of investigating stuff, but I hope this helps someone who has the same issue :)


288 Words

2024-10-03