Aarch64: SteamCMD broken on every new instance — `linuxarm64/steamcmd` never provisioned ("Couldn't find steamcmd ... exiting")


| Field | Value |
|---|---|
| Operating System | Linux — Ubuntu 24.04.4 LTS on aarch64 |
| Product | AMP 'Proteus' v2.8.0.4 (Mainline), built 24/07/2026 |
| Virtualization | KVM — Oracle Cloud VM.Standard.A1.Flex (2 OCPU / 12 GB, Neoverse-N1) |
| Application | Any SteamCMD app — reproduced with Valheim (896660) and 7 Days to Die (294420) |
| Module | GenericModule |
| Running in Container | Yes — default containerised instances (Podman, rootless under `amp` user, image `cubecoders/ampbase:debian`) |
| Current State | Application never installs |
| Licence | AMP Professional Edition — Lifetime |

**Problem description**

On a fresh AMP 2.8.0.4 Mainline aarch64 install (via `getamp.sh`, default options), every newly created SteamCMD-based instance fails to download its application. SteamCMD's own bootstrap self-update completes 100%, but the post-update re-exec fails with exit status 1:

```
[----] Update complete, launching...
steamcmd.sh: Couldn't find steamcmd at /AMP/<instance>/linuxarm64/steamcmd, exiting
```

AMP then logs `SteamCMD Update successful` despite the non-zero exit, and the instance loops indefinitely on:

```
Specified executable '/AMP/<instance>/<appid>/<executable>' does not exist. Updating application...
```

**Steps to reproduce**

1. Fresh Ubuntu 24.04 aarch64 host (Oracle A1); install AMP 2.8.0.4 Mainline via `getamp.sh` with defaults
2. Create any SteamCMD application instance (tested: Valheim, 7 Days to Die)
3. Start or Update the instance
4. Application files never download; the loop above repeats

**Technical analysis**

Inside the instance container, the SteamCMD home as provisioned by the steamcmdplugin contains:

```
/AMP/<instance>/steamcmd.sh
/AMP/<instance>/linux32/steamcmd      (x86 binary)
/AMP/<instance>/linux64/steamcmd
/AMP/<instance>/package/...           (bootstrap payload zips)
```

There is no `linuxarm64/` directory. SteamCMD is however invoked with `STEAM_PLATFORM=linuxarm64`, and Valve's `steamcmd.sh` re-execs after its bootstrap self-update as:

```
STEAMEXE="${STEAMROOT}/${STEAM_PLATFORM:-linux32}/steamcmd"
```

so the re-exec targets `/AMP/<instance>/linuxarm64/steamcmd` — which does not exist, hence "Couldn't find steamcmd ... exiting". The x86 binary itself runs fine under the image's box86 (the 40 MB bootstrap update completes fully), so this is purely a path/packaging issue, not an emulation failure.

Two distinct issues:

1. The `linuxarm64` platform directory is never provisioned on aarch64, while `STEAM_PLATFORM=linuxarm64` is still passed to `steamcmd.sh`.
2. The SteamCMD exit status is not checked — AMP reports `SteamCMD Update successful` after the child exited with status 1, masking the failure and making diagnosis much harder.

**Workaround (confirmed working)**

Per instance, create the expected directory and symlink the x86 binary — binfmt/box86 executes it transparently:

```
mkdir -p /AMP/<instance>/linuxarm64
ln -sfn ../linux32/steamcmd /AMP/<instance>/linuxarm64/steamcmd
```

After this, `app_update` completes normally. Confirmed end-to-end with Valheim on this host: full 1.7 GB download, server runs under CPx emulation, clients connect and play. The workaround must be repeated for every new SteamCMD instance, since each has its own SteamCMD home.

**Suggested fixes**

- Provision `linuxarm64/steamcmd` (wrapper or symlink to `linux32/steamcmd`) when the steamcmdplugin sets up SteamCMD on aarch64, **or** don't set `STEAM_PLATFORM=linuxarm64` on aarch64 and let it default to `linux32` (the binary is x86 either way; binfmt handles execution)
- Check SteamCMD's exit status before logging "SteamCMD Update successful"

**Console excerpt** (Valheim instance, trimmed):

```
Box86 with Dynarec v0.3.9 fa59e748 built on Feb 13 2025 06:33:33
[  0%] Checking for available update...
[100%] Download Complete.
[----] Update complete, launching...
[00:52:30] steamcmd.sh[81]: Couldn't find steamcmd at /AMP/Valheim/linuxarm64/steamcmd, exiting
[00:52:30] socat[80] W waitpid(): child 81 exited with status 1
[00:52:31] SteamCMD Update successful
[00:52:34] Specified executable '/AMP/Valheim/896660/valheim_server.x86_64' does not exist. Updating application...
```

Full logs and SSH-level inspection output available on request.

@IceOfWraith Might want to look at this one.

Somehow I missed this post, but we got to the same resolution either way! Lol