mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 00:00:21 +02:00
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>
14 lines
1.0 KiB
Docker
14 lines
1.0 KiB
Docker
# 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"]
|