Playstation VR2#
The Playstation VR2 is a fairly well supported headset on Linux, either with the Ignition and PSVR2 Toolkit driver, or with Monado natively.
Currently, Monado supports neither 6DOF (Full motion controls) with the PSVR2 Sense controllers, nor passthrough with the headset.
💡 TipThe Playstation Sense controllers included with the PSVR2 can be picky about the Bluetooth adapter you are using.
The main recommendation is the UB500 Plus as it has proven to work reliably with the Sense controllers.
If you already have a Bluetooth adapter, do see if it works well for you first.
Monado’s driver presently supports:
- Full 6DOF headset tracking
- Mixed device tracking with SteamVR Lighthouse tracked controllers
- OpenXR Eye tracking extensions for use in games or for social VR
Ignition with the PSVR2 Toolkit driver does presently all of the same features as the Monado driver, as well as:
- 6DOF Controller tracking
- Adaptive trigger support
- Improved controller haptics
- Tracking improvements
- and more
Some of PSVR2 Toolkit features require a jailbreak which enables support for direct eye tracking camera feeds and headset haptics.
The jailbreak is not needed for the Toolkit driver to run, it is only needed for those features.
Ignition & PSVR2 Toolkit#
Ignition enables the use of the PSVR2’s Windows driver and the modified PSVR2 Toolkit driver on linux.
The PSVR2 Toolkit driver offers improvements over the Official PSVR2 driver, enabling extra features. This driver can be used on Linux through Ignition.
This also includes full 6DOF controller support, Controller tracking improvements over the original driver and more.
Using PSVR2 Toolkit + Ignition#
⚠️ WarningThe PSVR2 Toolkit driver also includes optional features that require enabling of a Jailbreak.
While there haven’t been any cases yet, this does have the risk of bricking the headset. Enabling of these features is at your own risk.Enabling of the Jailbreak is at your own peril!
Before starting setup, ensure that all the below dependencies are installed:
- Steam
- SteamVR
- Proton Experimental
- The PlayStation VR2 App
- jq
- Monado’s xr-hardware udev rules
- Headset firmware of
0x06000102
Steam, jq and xr-hardware should all be available as system packages, with Proton Experimental and the PSVR2 App being available via Steam.
You can verify the firmware version your headset is using by following the first part of the Firmware update guide
With all this installed, setup can begin.
-
Download the latest version of Ignition and extract this folder to a path that the Steam Linux Runtime can see, such as
/opt/ignitionor~/Documents/ignition -
Find the path of where Steam has installed the PSVR2 App. It should be in
$HOME/.local/share/Steam/steamapps/common/PlayStation VR2 App -
Run the below commands to install the Ignition driver, making sure to edit this command to point to where you have put the Ignition files
cd /path/to/ignition/ ./install_ignition.sh "$HOME/.local/share/Steam/steamapps/common/PlayStation VR2 App/SteamVR_Plug-In" -
Change directory into the path of the newly created
linux64folder in the PSVR2 App’sSteamVR_Plug-Infolder, then Rundriver_install.shfrom thelinux64folder.cd "$HOME/.local/share/Steam/steamapps/common/Playstation VR2 App/SteamVR_Plug-In/bin/linux64" ./driver_install.sh -
Change directory into the
win64driver folder and rename thedriver_playstation_vr2.dllfile in the folder todriver_playstation_vr2_orig.dllcd "$HOME/.local/share/Steam/steamapps/common/Playstation VR2 App/SteamVR_Plug-In/bin/win64" mv driver_playstation_vr2.dll driver_playstation_vr2_orig.dll -
Extract the contents of the
PSVR2TK-win64-Ignition.zipfrom the PSVR2 Toolkit releases page into the$HOME/.local/share/Steam/steamapps/common/Playstation VR2 App/SteamVR_Plug_In/bin/win64folder.
You can now launch SteamVR to verify that the headset is being detected, and to set up your playspace. Setting up the playspace is needed for full 6DOF movement in headset.
To set up the playspace, all you need to do is download the PSVR2 Unity Room setup utility and follow the on screen instructions.
This will also work with Monado with the below settings in Envision:
ℹ️ NoteThis does not allow mixed tracking with SteamVR/Lighthouse devices presently.
- Repo:
https://gitlab.freedesktop.org/Supremium/monado - Branch:
psvr2-linux-steam-lh
Set the XR Service CMake flag XRT_BUILD_DRIVER_PSVR2 to OFF to prevent the Native Monado driver from taking priority.
Then add the Environment variable in your envision profile of LH_LOAD_PSVR2 with a value of 1.
Setting up the PSVR2 Jailbreak#
🛑 CautionThis jailbreak can potentially brick your headset. While there have been no cases of this reported during testing, it is still possible.
This jailbreak is also not persistent. Every time the headset turns off (Red front LED), you will have to do this again.
Continue at your own peril!
The jailbreak is required for specific features in the PSVR2 Toolkit driver such as Headset haptics and direct Eye Tracking camera feeds.
To set up the jailbreak, follow the below.
Before you can run the Jailbreak, check that your headset is on firmware 0x06000102 (V6.0), as this is required for the Jailbreak to function.
This also means you cannot use the headset on PS5 without having to repeatedly downgrade the headset, which could (in the future) have risk of preventing downgrades to V6.0.
If this is not the case, and you are on a version before V6.0, follow the Firwmare update part of the guide, then return here.
-
Grab the
vr2jbbinary from the Jailbreak releases page -
Turn on your PSVR2 Headset (Should have a white light)
-
Run
vr2jb
If you are seeing a white flashing light on the headset, the jailbreak should now be active!
PSVR2 Toolkit Baballonia module#
ℹ️ NoteThis requires the Jailbreak to be running, and for the Ignition driver to be active in either Monado or SteamVR.
There is a custom Baballonia module that enables the PSVR2 Eye tracking camera feeds under the Toolkit driver.
To install it, grab the latest release from the Releases section of the PSVR2Toolkit.Baballonia module github page
Extract the PSVR2.Baballonia.zip file, then copy the contents of the resulting folder into your Baballonia modules folder.
In Baballonia, set a fake address for each eye of COM1 and COM2 for the Left and Right Eyes, then select the preferred backend PlayStation VR2
Go into the Cropping menu, and select the Left and Right frames.
You now have full Baballonia Eye Tracking!
Monado’s native driver#
ℹ️ NoteThe below section uses the native Monado driver, which has some limitations compared to Ignition presently. This notably includes: 6DOF controller tracking, Sensor fusion on headset movements (Jittery head movement) and no direct Eyetracking camera feeds for Babble Eye tracking. This is still a usable driver if you wish to not use anything beyond Monado itself.
This driver is included with Monado itself and requires no additional dependencies. It supports full headset 6DOF movement, 3DOF controller movement and full OpenXR Eye Tracking support.
Using SteamVR controllers for 6DOF motion controls with the Monado driver#
As the PSVR2 Sense controllers currently only have 3DOF on the Monado driver, you may wish to use a branch which enables the use of SteamVR tracked devices to be able to use the headset for VR applications. This requires the use of a branch of Monado which enables it, and Motoc to combine the tracking spaces.
To set this up with Envision:
- Enable
developer modein the configuration drop down - Enable
Use development profiles - Create a new profile, and set the XR Service repo to
https://gitlab.freedesktop.org/Beyley/monadoand the XR Service Branch topsvr2-work-steamvr - Save and clean build the profile
With this branch, you will need to install Motoc which allows the PSVR2 and SteamVR controllers to track properly together.
You can follow the Motoc section below which has pre-written commands ready for use
Using the built in OpenXR Eye Tracking for Social VR on the Monado driver#
Install VRCFT.Avalonia, then install the ALXR Local module in the module registry page.
Make sure to start up VRCFT.Avalonia after Monado, and you will have Eye tracking ready for use for Social VR experiences.
Additional steps that may be required#
This section notes any troubleshooting or additional requirements for both Ignition and the Monado driver.
Using Pre-PC firmware for Sony Playstation VR2#
If your headset doesn’t have a firmware newer than or including V5.00 (First PC supporting firmware, which released 6th of August 2024), you need to:
- Download and copy the custom
psvr2_edid.bin(Thank you iVRy in the Monado Discord) to/lib/firmware/edid. - Confirm what display your headset is plugged into. You can do this by turning the headset on and checking
xrandr --verboseand looking for a device which only shows the following 2 resolution options:1920x1080and640x480. - Add the following kernel parameter to your boot-loader:
drm.edid_firmware={The display your headset is plugged in to}:edid/psvr2_edid.bin. See the Arch wiki’s page on this for more info.
In GRUB, you would edit/etc/default/gruband add the option toGRUB_CMDLINE_LINUX_DEFAULT. (Example:GRUB_CMD_LINE_LINUX_DEFAULT="quiet drm.edid_firmware=DP-3:edid/psvr2_edid.bin") - Grab this kernel patch (Thank you to Nas in the Monado Discord!) and follow the kernel patch section on the hardware page.
Firmware update utility#
If you want to flash firmware updates, Supremium has released a utility called PSVR2Updater which allows flashing firmware without requiring a Windows VM or a PS5. This set of instructions is going to focus on installing firmware V6.00 as it has PCVR support, and enables the full PSVR2 Tooklit feature set.
⚠️ WarningThis tool does have a non-zero chance of bricking the headset, and the DepotDownloader tool requires your Steam login information. Continue at your own peril. Only run software from sources you trust!
-
Download the latest release of PSVR2Updater.
-
Extract the zip file, turn on the headset and run
PSVR2Updaterwithout arguments to check your firmware version. If you are below version0x06000102, continue. Otherwise, you are already good to go. -
Add the official Sony Playstation VR2 app to your Steam library.
-
Use DepotDownloader to download the PlaystationVR 2 app with the V6.00 firmware with this command, while providing your username and password:
ℹ️ Note
If you have installed DepotDownloader via your package manager, the binary may be named
depotdownloaderinstead../path/to/DepotDownloader -app 2580190 -depot 2580191 -manifest 8448590652442674786 -username 'STEAM_USERNAME' -password 'STEAM_PASSWORD'
If you are on a version of PSVR2 Firmware higher than 0x06000102, follow this section
- Download the vr2jb binary
- Turn on your PSVR2 headset (Should have a white light)
- Run
vr2jb downgrade
This will put the headset into recovery mode.
If your headset is below 0x06000102 or you have enabled recovery mode, you can follow the below:
You can now flash the downloaded 0x06000102 firmware:
./path/to/PSVR2Updater ./path/to/depots/2580191/19697519/Firmware/PS_VR2_FW/HMD2_FIRMWARE.CUPThe firmware should now be on Firmware V6.00 and ready to use with Monado or Igniton and PSVR2 Toolkit.
Using Motoc for SteamVR controllers with the PSVR2#
To use this, you will need your PSVR2’s serial and a SteamVR device serial. You can get the serial numbers by using motoc show while Monado is running.
Once you have the serial numbers, you can use the command below to begin calibration.
💡 TipYou do have to move the headset and a controller you are using to calibrate them together, ideally with them rigidly attached.
motoc calibrate --src {PSVR2 Serial Number} --dst {SteamVR device Serial Number}💡 TipIf you are using a SteamVR tracker (i.e. HTC Vive tracker or Tundra tracker), you can use continuous calibration if you attach it to the headset.
motoc calibrate --src {PSVR2 Serial Number} --dst {SteamVR Tracker Serial Number} --continue