mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 09:00:35 +02:00
iPhone app: test pairing and power against a Holo Core stand-in
Valve publishes no Steam Frame OS image, so tests/frame-container builds the Frame's SSH surface on Valve and Collabora's Holo Core aarch64 base: a steamos user with a password and sudo, OpenSSH with keys and passwords, Python, and a systemctl that only records requests. Against it from the Simulator: password pairing, the host-key pin, the power password check. Found and fixed: a changed host key or a refused login said "Can't reach the Frame" and retried forever; they now say "Pair with the Frame again" and offer that. The server's key rejection now says the header may be wrong, not only missing. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
db75d1ca71
commit
aafd2dbda8
8 files changed
+78
-14
No files matched your search
@@ -0,0 +1,13 @@
|
||||
# A stand-in for the Frame's SSH surface, on Valve's Holo Core aarch64 base (the
|
||||
# Arch Linux ARM64 port the Frame's SteamOS is built on).
|
||||
FROM registry.gitlab.steamos.cloud/holo/holo-core-aarch64-preview/base-devel:latest
|
||||
RUN pacman -Sy --noconfirm --needed openssh sudo python rsync procps-ng && pacman -Scc --noconfirm
|
||||
# The Frame's user, with a Developer Mode style password and sudo, as on SteamOS.
|
||||
RUN useradd -m -s /bin/bash steamos && echo 'steamos:frame-test-pw' | chpasswd \
|
||||
&& echo 'steamos ALL=(ALL) ALL' > /etc/sudoers.d/steamos && chmod 440 /etc/sudoers.d/steamos
|
||||
# SteamOS's sshd: keys and passwords, no keyboard-interactive.
|
||||
RUN ssh-keygen -A && printf 'PasswordAuthentication yes\nKbdInteractiveAuthentication no\nUsePAM yes\n' > /etc/ssh/sshd_config.d/10-frame.conf
|
||||
# No systemd here: a systemctl that records power requests instead of acting.
|
||||
RUN printf '#!/bin/sh\necho "systemctl $*" >> /tmp/power-requests.log\n' > /usr/local/bin/systemctl && chmod +x /usr/local/bin/systemctl
|
||||
EXPOSE 22
|
||||
CMD ["/usr/sbin/sshd", "-D", "-e"]
|
||||
@@ -0,0 +1,20 @@
|
||||
# A Frame stand-in for testing without the headset
|
||||
|
||||
Valve publishes no Steam Frame OS image. This builds the closest thing: Valve and
|
||||
Collabora's [Holo Core aarch64 preview](https://www.collabora.com/news-and-blog/news-and-events/building-an-arch-linux-aarch64-port-for-holo-core.html)
|
||||
(the Arch Linux ARM64 base the Frame's SteamOS is built on) with the Frame's SSH
|
||||
surface: a `steamos` user with a password and sudo, OpenSSH taking keys and
|
||||
passwords, Python and rsync. `systemctl` only records what it's asked to do.
|
||||
|
||||
It exercises pairing with the password, the host-key pin, the server running on
|
||||
the "Frame" (FRAME_LOCAL=1) and the power password check. It has no SteamVR,
|
||||
Steam, battery, cameras or Lepton, so those panels are empty.
|
||||
|
||||
```sh
|
||||
docker build --platform linux/arm64 -t frame-holo-test tests/frame-container
|
||||
docker run -d --name frame-holo -p 127.0.0.1:2222:22 frame-holo-test
|
||||
# password: frame-test-pw. In the iPhone app (Simulator), pair with 127.0.0.1:2222.
|
||||
docker exec frame-holo cat /tmp/power-requests.log # what power actions asked for
|
||||
```
|
||||
|
||||
On a Mac without Docker: `brew install colima && colima start --arch aarch64 --vm-type vz`.
|
||||
Reference in new issue
Block a user