mirror of
https://gitlab.com/lvra/lvra.gitlab.io.git
synced 2025-07-02 01:35:30 +02:00
99 lines
No EOL
4.3 KiB
Markdown
99 lines
No EOL
4.3 KiB
Markdown
---
|
|
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.
|
|
|
|
## 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 easy.
|
|
Some sample usage:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
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 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:
|
|
```sh
|
|
muvm -it -- bash
|
|
```
|
|
|
|
```sh
|
|
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](https://pagure.io/fedora-asahi/steam/issue/18) 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:
|
|
|
|
```sh
|
|
muvm -it -p 9757/udp -p 9759 -- bash
|
|
```
|
|
|
|
```sh
|
|
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.
|
|
|
|
[vr-multiarch-build]: https://gitlab.com/lvra/vr-multiarch-build |