Skip to content

Latest commit

 

History

History
116 lines (86 loc) · 3.51 KB

File metadata and controls

116 lines (86 loc) · 3.51 KB

Building

Server (PC)

Compile

From your checkout directory, with automatic detection of encoders

cmake -B build-server . -GNinja -DWIVRN_BUILD_CLIENT=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build-server

It is possible to disable specific encoders, by adding options

-DWIVRN_USE_NVENC=OFF
-DWIVRN_USE_VAAPI=OFF
-DWIVRN_USE_VULKAN_ENCODE=OFF
-DWIVRN_USE_X264=OFF

Force specific audio backends

-DWIVRN_USE_PIPEWIRE=ON
-DWIVRN_USE_PULSEAUDIO=ON

Systemd service and pretty hostname support

-DWIVRN_USE_SYSTEMD=ON

Lighthouse driver support for use with lighthouse-tracked devices

-DWIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON

Additionally, if your environment requires absolute paths inside the OpenXR runtime manifest, you can add -DWIVRN_OPENXR_MANIFEST_TYPE=absolute to the build configuration.

Dashboard

The WiVRn dashboard requires Qt6, and the WiVRn server.

Compile

From your checkout directory, compile both the server and the dashboard:

cmake -B build-dashboard . -GNinja -DWIVRN_BUILD_CLIENT=OFF -DWIVRN_BUILD_SERVER=ON -DWIVRN_BUILD_DASHBOARD=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build-dashboard

See Server for the server compile options.

Client (headset)

Build dependencies

As Arch package names: git pkgconf glslang cmake jdk17-openjdk librsvg cli11 ktx_software-git (AUR)

OpenSSL build dependencies are also needed, as described here, in particular perl 5.

Android environment

Download sdkmanager commandline tool and extract it to any directory. Create your ANDROID_HOME directory, for instance ~/Android.

Review and accept the licenses with

sdkmanager --sdk_root="${HOME}/Android" --licenses

Install the correct cmake version with

sdkmanager --install "cmake;3.31.5"

Apk signing

Your device may refuse to install an unsigned apk, so you must create signing keys before building the client

# Create key, then enter the password and other information that the tool asks for
keytool -genkey -v -keystore ks.keystore -alias default_key -keyalg RSA -keysize 2048 -validity 10000

# Substitute your password that you entered in the command above instead of YOUR_PASSWORD
echo signingKeyPassword="YOUR_PASSWORD" > gradle.properties

Once you have generated the keys, the apk will be automatically signed at build time

Client build

From the main directory.

export ANDROID_HOME=~/Android
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk/

./gradlew assembleRelease

Outputs will be in build/outputs/apk/release/WiVRn-release.apk

Install apk with adb

Before using adb you must enable usb debugging on your device:

Also add your device in udev rules: https://wiki.archlinux.org/title/Android_Debug_Bridge#Adding_udev_rules

Then connect the device via usb to your computer and execute the following commands

# Start adb server
adb start-server

# Check if the device is connected
adb devices

# Install apk
adb install build/outputs/apk/release/WiVRn-release.apk

# When you're done, you can stop the adb server
adb kill-server