Install script and README: treat SteamOS as the read-only system it is

SteamOS's system is read-only and replaced by every update, so the
installer must never send anyone to pacman on the Frame, and everything
it puts there has to live in the home folder.

- On SteamOS, a missing podman/docker or qemu now gets its own message:
  nothing can be installed into the system (and should not be, with the
  read-only mode switched off), so build on a PC and install over SSH,
  or on the Frame itself where podman is present.
- --frame local refuses to run on anything but an ARM64 machine, so it
  cannot install onto the PC it was meant to build on.
- The disc folder is checked for being writable before a few GB are
  copied; a path in the read-only system gets a clear message instead of
  a failed copy.
- Config.toml goes where the game reads it, honouring XDG_DATA_HOME.
- Other image-based systems (Bazzite, Silverblue) get the rpm-ostree hint.
- README: what the installer puts on the Frame (all in the home folder,
  surviving updates) and how to remove it; building on the Frame needs
  podman to come with SteamOS, without claiming it always does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019HBRGKTE1GnN2ah8gcZKr3
This commit is contained in:
Claude committed 2026-10-05 07:45:40 +00:00
1 parent 09ef5f4eea
commit 15ee82f59f
2 files changed
+53 -11

No files matched your search

+22 -3
View File
@@ -93,6 +93,20 @@ curl -fsSL https://raw.githubusercontent.com/mitch030504/Wiicompiled_VR_Frame/op
- `--help` lists every option. From a downloaded release, run `Launcher/steam-frame-install.sh`
with the same options: it then builds that release's source.
**What it changes on the Frame.** SteamOS's system is read-only and every update replaces it, so the
installer installs no packages there, needs no root, and never switches the read-only mode off.
Everything it puts on the Frame is in your home folder, where it survives SteamOS updates:
| Where | What |
| --- | --- |
| `~/devkit-game/WiiCompiled/` | the game |
| `~/wiicompiled/disc/` | your extracted disc (`--frame-disc` puts it elsewhere in your home folder or on a mounted card) |
| `~/.local/share/WiiCompiled/` | `Config.toml`, saves and logs, written by the game itself |
| Steam's library | the **WiiCompiled** shortcut, made through Valve's devkit tools in `~/devkit-utils` |
To remove it, delete the shortcut from the library and those three folders (the last holds your
saves).
### 3. Play
Start **WiiCompiled** from the library in the headset. Open the settings panel with the left
@@ -298,8 +312,10 @@ is open.
## Other ways to build
**On the Frame itself.** SteamOS's root file system is read-only, but it ships podman, and the
install script runs there too. Over SSH (`ssh steamos@<frame-ip>`), or in a Desktop Mode terminal:
**On the Frame itself.** This needs podman, which has to come with SteamOS: its system is read-only,
and anything installed into it with `pacman` (after switching the read-only mode off) is gone at the
next update, so don't. The script checks and says so if it is missing; then build on a PC as above.
If it is there, run the script over SSH (`ssh steamos@<frame-ip>`) or in a Desktop Mode terminal:
```bash
curl -fsSL https://raw.githubusercontent.com/mitch030504/Wiicompiled_VR_Frame/openxr-work/Launcher/steam-frame-install.sh \
@@ -307,7 +323,10 @@ curl -fsSL https://raw.githubusercontent.com/mitch030504/Wiicompiled_VR_Frame/op
```
It is native ARM64, so no emulation, but the Frame has less memory and cooling than a PC; keep it
on its charger. The game then reads the disc straight from `~/wiicompiled-frame/disc`. By hand, the
on its charger. Everything stays in your home folder: the container image and its packages in
podman's storage (`~/.local/share/containers`), the toolchain, Dawn and the build in
`~/wiicompiled-frame` (about 20 GB), and the game reads the disc straight from
`~/wiicompiled-frame/disc`. By hand, the
steps under [Building by hand](#building-by-hand) work the same in a container started without
`--platform linux/arm64`, with `nodtool-linux-aarch64` in place of `nodtool-linux-x86_64`.