On Linux, SysDVR-Client comes as an official Flatpak package for x64 systems — a two-command install. ARM machines such as the Raspberry Pi take a manual route through the cross-platform .NET build, which is more involved and worth attempting only if you’re comfortable in a terminal. This guide covers both, plus the one USB detail Linux users must not skip: the udev rule.
Option A — Flatpak install (x64)
The Flatpak build has existed since version 5.5 and is still labelled experimental by the author, but it is the right first choice on any 64-bit Linux desktop. On Ubuntu, with the commands from the official guide:
- Install Flatpak itself if you don’t have it:
sudo apt install flatpak(other distros: use your package manager’s equivalent). - Download SysDVR-Client-Linux-x64.flatpak from the download page.
- Install it as a user package:
flatpak --user install SysDVR-Client-Linux-x64.flatpak
Then launch it any time with:
flatpak run com.github.exelix11.sysdvr
You can create a shell alias for that command if you use it often. Keep the console and client on the same version — v6.3 with v6.3 — and remember the sysmodule takes about 20 seconds after the console boots before it can be discovered.
USB on Linux: libusb and the udev rule
USB streaming on Linux talks to the console through libusb, and your user account needs permission to access the device. The setup uses a udev rule file named 99-sysdvr.rules so the console is accessible without elevated privileges. Follow that rule’s setup rather than working around permissions, because of one specific trap:
Do not run SysDVR-Client as root. Running it with sudo/root breaks audio on Linux. If USB isn’t being seen, fix the udev rule — never reach for sudo.
The full USB flow, including switching the console to USB mode and cable advice, is in the USB streaming setup guide. Network modes (TCP Bridge and RTSP) need no device permissions at all.
Option B — Manual .NET install (Raspberry Pi & ARM)
Let’s be honest about this path before you start: it is a multi-step, terminal-heavy install with several exact-version dependencies, and the official guide ends its own walkthrough with “hope for the best”. Raspberry Pi 3 and 4 are supported this way; Pi 1 and 2 are not, because .NET doesn’t run on them. In outline, you need:
- .NET 8 or newer installed (mono and older .NET Core will not work).
- SDL2 and SDL2-image development packages:
sudo apt install libsdl2-dev libsdl2-image-dev. - libusb:
sudo apt install libusb-1.0-0-dev. - ffmpeg 5.1.x exactly, i.e.
libavcodec59. A different ffmpeg version results in a “module not found” error at launch; if your distro doesn’t ship it, the fallback is building ffmpeg from source. - The SysDVR-Client-dotnet.zip cross-platform build from the download page, extracted locally.
- A compiled CimguiSDL2Cross library copied into the matching
runtimes/<platform>/nativefolder — or skip the new GUI by launching with the--legacyoption, which shows a simple video player instead.
With the dependencies in place you run the client from its folder with dotnet SysDVR-Client.dll. If dynamic libraries fail to load, --debug dynlib helps identify which one. Because every distro differs, treat the official wiki’s manual-install page as the reference for exact steps and use this section as the map of what you’ll need.
A note on expectations before you choose a route: the Flatpak is the author’s packaged build and behaves like the clients on other platforms. The manual route, by contrast, is a community-style assembly of dependencies around the cross-platform build — powerful because it reaches hardware nothing else supports, but every distro quirk along the way is yours to solve. Choose it for the hardware it unlocks, not as a first resort.
Which route should you take?
| Situation | Recommended route | Why |
|---|---|---|
| 64-bit desktop or laptop | Flatpak | Two commands, self-contained, no dependency hunting |
| Raspberry Pi 3 / 4 or other ARM board | Manual .NET install | The Flatpak is x64-only; ARM is supported only this way |
| Raspberry Pi 1 / 2 | Neither | .NET doesn’t run on these boards, so the client can’t either |
| Linux handheld or mini-PC (x64) | Flatpak first | Same x64 build; fall back to manual only if the Flatpak misbehaves |
After installing: connecting
Launch the client and choose a connection mode, exactly as on other platforms. For TCP Bridge, the console advertises itself on the local network and the client lists it automatically; if your Linux firewall is restrictive, remember the discovery is a UDP broadcast, so a default-deny inbound policy can hide the console until you allow local traffic. For USB, the udev rule above is what makes the console visible to your user account. And as everywhere: console and client versions must match, and the sysmodule needs its ~20 seconds after boot before it can be found.
Updating the Flatpak
There is no in-app updater. Updating means downloading the newer .flatpak file from the release and installing it the same way — flatpak --user install replaces the previous version in place, and your launch command stays flatpak run com.github.exelix11.sysdvr. Update the console sysmodule in the same sitting and reboot the console, so both sides land on the same version together.
Next steps
- TCP Bridge mode guide — recommended network streaming with automatic discovery.
- Simple Network (RTSP) mode — no client needed at all; mpv on Linux handles it well.
- Windows client setup and macOS client setup for your other machines.
- Haven’t installed the console side yet? Start with how to install SysDVR on the Switch.
