Bigscreen Beyond #
Kernel Patch #
While the Bigscreen Beyond is supported well on Linux, you may need to patch the kernel depending on your GPU vendor.
There is a general guide to kernel patching at the bottom of the hardware page.
While not strictly necessary, you may want to switch to Matrix’s Monado fork, which fixes some Bigscreen specific issues.
- Git:
https://tangled.org/@matrixfurry.com/monado - Branch:
- Envision:
next-forward - NixOS:
next(you may want to see the commit on coolGi’s dotfiles for a reference on how to do this using flakes)
- Envision:
Bigscreen Beyond Driver #
You can get the “Bigscreen Beyond Driver” app from Steam working via Proton by following these instructions:
- Use a Proton version >=10 that has access to
PROTON_ENABLE_HIDRAWenv var;Proton Experimental [bleeding-edge]works well. - Set
PROTON_ENABLE_HIDRAW=0x35BD/0x0101 %command%as your launch arg for theBigscreen Beyond DriverunderProperties. - Install the
udevrules as mentioned below. - OPTIONAL (won’t actually do anything): Download/Copy a Windows install of SteamVR somewhere, then set the SteamVR path to the location of the Windows install of SteamVR. If you don’t have a Windows version of SteamVR downloaded, you can download it through SteamCMD through the steps below
Currently eye camera firmware loading & updates don’t work (see below for info on getting eyetracking working), but HMD firmware updates do work.
Download Windows SteamVR via SteamCMD #
You can easily download the Windows version of SteamVR via SteamCMD. To do this:
- Download SteamCMD
- Run this command somewhere you can create directories (i.e., your home directory):
mkdir steamvr_win && steamcmd +@ShutdownOnFailedCommand 1 \
+@sSteamCmdForcePlatformType windows \
+force_install_dir $(realpath steamvr_win) \
+login anonymous \
+app_update 250820 validate \
+quit
This will:
- Create a directory in the current directory named
steamvr_win. - Download and validate Windows SteamVR into it.
Your home directory is accessible under
Z:\homeby default in Proton.
Easier Device Mode Swapping #
While under Linux the “Bigscreen Beyond Driver”’s display refresh rate is unable to be changed, you can still change it under Monado using the XRT_COMPOSITOR_DESIRED_MODE environment variable.
Setting it to 0 will keep the mode as it is, while setting it to 1 alternates it as seen by the table below.
- Device is currently on 75hz mode
XRT_COMPOSITOR_DESIRED_MODE=0sets the headset to 75hz modeXRT_COMPOSITOR_DESIRED_MODE=1sets the headset to 90hz mode
- Device is currently on 90hz mode
XRT_COMPOSITOR_DESIRED_MODE=0sets the headset to 90hz modeXRT_COMPOSITOR_DESIRED_MODE=1sets the headset to 75hz mode
It is then possible to verify the mode using your DE/WM’s tooling (such as xrandr for X11-based compositors), or by using drm_info -j | jq ".[].crtcs.[].mode.vrefresh" to show all connected monitor refresh rates.
udev Rules
#
Depending on your use case, you may need udev rules for full functionality.
On regular distros, you will probably need to create a rule through a new file at /etc/udev/rules.d/, then run udevadm control --reload && udevadm trigger.
On NixOS, you’ll need to set services.udev.extraRules.
# Bigscreen Beyond
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0101", MODE="0660", TAG+="uaccess"
# Bigscreen Bigeye
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0202", MODE="0660", TAG+="uaccess"
# Bigscreen Beyond Audio Strap
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0105", MODE="0660", TAG+="uaccess"
# Bigscreen Beyond Firmware Mode?
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="4004", MODE="0660", TAG+="uaccess"
Some even more special use cases (such as using with libsurvive), you may need a more permissive udev rule. If you do, you can instead use the following udev rule (assuming you will also need to be part of the
wheelgroup).KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", TAG+="uaccess", MODE="0660", GROUP="wheel" SUBSYSTEM=="usb", ATTRS{idVendor}=="35bd", TAG+="uaccess", MODE="0660", GROUP="wheel"
Bigscreen Beyond 2e Eyetracking #
For details on setting up eye tracking, please see the Baballonia Eye/Face Tracking guide, but you will need to use BSB2e-specific forks, see below.
The full stack can be pictured as such:
graph TB E[Bigscreen Beyond 2e]-->F F[Bigscreen Bigeye]-->B E-->M[Monado] M-->X[xrizer] X-->D B[Baballonia.Desktop/bsb2e_linux] --> C[VRCFT.Avalonia] --> D[VRChat/etc.] subgraph Linux Native B C E F M X end subgraph Proton/Wine D end
You’ll have better luck currently with the bsb2e_linux fork of Baballonia; It uses libuvc to get around the v4l issues we have with the Bigeye cameras.
Baballonia.Desktop can be given the Bigscreen Bigeye (video0) endpoints for each camera if you’re using the bsb2e_linux fork. You’ll need to adjust cropping and brightness for the cameras as necessary, but it should allow you to easily select the whole left/right areas automatically for the Bigeye in particular.