Bigscreen Beyond#
Kernel Patch#
While the Bigscreen Beyond is well-supported on Linux, you may need to patch the kernel depending on your GPU vendor, and whether you need the BSB2e’s eye-tracking cameras.
- NVIDIA
- Driver 580+ open kernel modules
- AMD
- Kernel <= 6.14:
- Kernel >= 6.15:
- For eye-tracking cameras:
0001-Change-device-uvc_version-check-on-dwMaxVideoFrameSi.patch- Note that an update to the eye-tracking firmware is being released (as of 2026-02-16) to address this camera bug. We don’t have steps to update the firmware from within Linux yet, but soon, this patch may no longer be necessary.
💡 Tip: If you have the ability to use Arch Linux’s AUR, you can install
linux-bsb, which includes all the necessary patches for any BSB device. See the linux-bsb section on the hardware page for instructions and other details.
Collect your patch file(s) and follow the general guide to kernel patching at the bottom of the hardware page.
Bigscreen Beyond Utility#
You can get the “Bigscreen Beyond Utility” 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 works well. - Set
PROTON_ENABLE_HIDRAW=0x35BD/0x0101 %command%as your launch arg for the Bigscreen Beyond Utility under Properties. - Install the udev rules from the section below.
- Download/Copy a Windows install of SteamVR somewhere, then set the “SteamVR path” in the Utility to the location of the Windows install of SteamVR. We won’t actually run this - the Utility requires the path to be set to modify some settings. 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:
-
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 \ +quitThis will:
- Create a directory in the current directory named
steamvr_win. - Download and validate Windows SteamVR into it.
- Create a directory in the current directory named
Your home directory is accessible under
Z:\homeby default in Proton.
Easier Device Mode Swapping#
While under Linux the “Bigscreen Beyond Utility”’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
You can then 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 refresh rates for all connected displays.
Adjusting Software IPD#
The Bigscreen Beyond Utility’s IPD adjustment does not work under wine/Proton.
If you have a windows installation, the easiest way to adjust the value is to boot into that & set it from the Utility.
If you use Monado, you can override the headset’s default IPD of 64mm by setting the environment variable LH_OVERRIDE_IPD_MM to some value (e.g. 64). This should be set such that the monado-service process can see it — if you use Envision, edit your profile and add it under Environment Variables.
Via lighthouse_console#
Very advanced users may use the lighthouse_console CLI program in
~/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/bin/linux64/ to
directly update the headset config with their desired IPD. Exact instructions
are not included here on purpose.
Make sure to keep a local & offsite backup of your config before editing it if you try this.
Do not attempt this unless you understand the process & risks, which may include sending your headset back to Bigscreen for repairs.
udev Rules#
In most use-cases, you will need udev rules for full functionality.
The following script will:
- Create a udev rules file, setting their GROUP fields to one your user is in so you have access to the devices
- Tell the udev daemon to apply the rules
Other notes about this script:
- This purposefully avoids using
TAG+="uaccess", since it is undocumented and unexpectedly picky about the exact number in the filename. It is easier to just pick a group. - On regular distros, run this script as your regular user, not root.
export udev_group=$(groups | tr ' ' '\n' | grep -E "$(whoami)"'|wheel|sudo|adm|admin|video|plugdev' | head -n 1)
bash -c 'sudo tee "/etc/udev/rules.d/99-bigscreen-beyond.rules" > /dev/null <<EOF
# Bigscreen Beyond
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0101", MODE="0660", GROUP="${udev_group}"
# Bigscreen Bigeye
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0202", MODE="0660", GROUP="${udev_group}"
# Bigscreen Beyond Audio Strap
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0105", MODE="0660", GROUP="${udev_group}"
# Bigscreen Beyond Firmware Mode?
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="4004", MODE="0660", GROUP="${udev_group}"
EOF'
sudo udevadm control --reload && sudo udevadm triggerIf your headset is already plugged in, disconnect & reconnect it to force the rules to fire.
On NixOS, use the following option, where you replace the PLACEHOLDER with the first group your user has from this list (You can list your groups with the groups command in the terminal): wheel, sudo, adm, admin, video, plugdev
services.udev.extraRules = ''
# Bigscreen Beyond
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0101", MODE="0660", GROUP="PLACEHOLDER"
# Bigscreen Bigeye
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0202", MODE="0660", GROUP="PLACEHOLDER"
# Bigscreen Beyond Audio Strap
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0105", MODE="0660", GROUP="PLACEHOLDER"
# Bigscreen Beyond Firmware Mode?
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="4004", MODE="0660", GROUP="PLACEHOLDER"
'';For some even more special use cases (such as using with libsurvive), you may need a more permissive udev rule. If you do, use the following udev rule. You will also need to be part of the wheel group.
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", MODE="0660", GROUP="wheel"
SUBSYSTEM=="usb", ATTRS{idVendor}=="35bd", 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 and its README. It uses libuvc to get around the v4l issues we have with the Bigeye cameras.
NixOS has not yet packaged Baballonia (see nixpkgs-xr PR #532), but you can still run it with nix run 'git+https://github.com/leon-costa/Baballonia?submodules=1#default'.
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.