4.5 KiB
title |
---|
Asahi Linux |
Asahi Linux
AKA: Fedora on aarch64 with extra steps
Envision
Fedora has the envision
package, as well as the envision-monado
and envision-wivrn
metapackages which grab the necessary dependencies for building monado and wivrn, respectively.
This will not be the most up-to-date with upstream envision, but seeing as Envision doesn't currently build aarch64 AppImages, this is the easiest way to build custom commits of monado/wivrn/opencomposite/xrizer for arm64, specifically.
If you are looking to use non-native VR applications, or Steam Games, you should continue on into the Multiarch section.
Multiarch
Depending on what openxr applications you are planning on running, you may need multiple builds of the same component, but for different architectures. You can acquire these builds in multiple ways, such as cross-compiling, or gathering builds from multiple machines.
A repo (vr-multiarch-build) for cross-compiling these components has been thrown together to make things easier. You will need podman, as well as the typical runtime dependencies. Some sample usage:
git clone https://gitlab.com/lvra/vr-multiarch-build
cd vr-multiarch-build
# `./setup_wivrn.sh` and `./setup_xrizer.sh` also exist, depending on what you need.
./setup_monado.sh && ./setup_opencomposite.sh
sudo ./setcap.sh
# you can now start monado by running prefixes/monado-aarch64/bin/monado-service
When you want to update a component, you should manually pull the git repos, then rerun the setup scripts. For example:
cd vr-multiarch-build
git pull # update the build repository
git -C monado pull
git -C OpenComposite pull
./setup_monado.sh && ./setup_opencomposite.sh
sudo ./setcap.sh
Steam Games under muvm
What worked for me was running monado-service
manually, with all the environment variables that envision uses, and manually setting up environment variables for steam launch arguments.
On my machine, the steam launch arguments look like: XR_RUNTIME_JSON=~/.config/openxr/1/active_runtime.x86_64.json PRESSURE_VESSEL_FILESYSTEMS_RW=/run/user/1000/wivrn/comp_ipc:/run/user/1000/monado_comp_ipc %command%
There are some extra complications caused by muvm putting its XDG_RUNTIME_DIR
in a weird spot interfering with monado's ability to connect to itself.
Therefore, my reccomended launch order is as follows:
Lanuch monado-service:
muvm -it -- bash
mkdir -p /run/user/1000/
chmod 700 /run/user/1000/
ln -s $XDG_RUNTIME_DIR/monado_comp_ipc /run/user/1000/
# setup the rest of the environment variables, ensuring XRT_DEBUG_UI is *not* enabled.
./monado-service
Launch Steam. Due to a bug in the steam launcher wrapper on asahi, the "Launching Steam" window will not stick around, but Steam is still launching. If you get a message from OpenComposite complaining that it doesn't support VR Applications of type 6, then you should attempt to re-launch steam, as that will cause Steam to fail to launch.
Optionally, tail -f ~/.steam/steam/logs/console-linux.txt
so you can see errors when a game fails to do the correct thing.
Ensure that openvrpaths.vrpath
has the correct contents.
Launch a game.
wivrn
Due to https://github.com/AsahiLinux/muvm/issues/177, the terminal that you're running WiVRn within must be the one that's starting the VM. Therefore, you should start wivrn before you start steam.
The avahi daemon is not available inside of muvm, so you should use --no-publish-service
.
Since I'm managing my active runtimes through vr-multiarch-build
Here's what I did that worked:
muvm -it -p 9757/udp -p 9757 -- bash
mkdir -p /run/user/1000/wivrn/
chmod 700 /run/user/1000/
ln -s $XDG_RUNTIME_DIR/wivrn/comp_ipc /run/user/1000/wivrn/comp_ipc
# setup the rest of the environment variables, ensuring XRT_DEBUG_UI is *not* enabled.
./wivrn-server --no-publish-service --no-manage-active-runtime
If you are using a commit of WiVRn before https://github.com/WiVRn/WiVRn/commit/5130bdeda51c52137f11e0536273f3bfbb2f7f71, the build system will produce inconsistent commit hashes for its build of monado.
To work-around this, you can either git cherry-pick 5130bdeda51c52137f11e0536273f3bfbb2f7f71
onto your wivrn branch, use a newer commit of wivrn, or add IPC_IGNORE_VERSION=1
to your steam launch arguments.
If you pick the last option, you need to be extra careful that you are actually building things off of the same commit of wivrn/monado.