mirror of
https://github.com/theupriser/steamify-cachyos-dev.git
synced 2026-10-05 12:45:56 +02:00
docs: VM skill: menu with sub-options, HDMI-CEC and faking it with vivid
This commit is contained in:
1 parent
10357b2d52
commit
788d345a9d
1 file changed
+42
-9
@@ -9,14 +9,18 @@ The wizard (`steamify.sh` + `lib/*.sh`) opens a menu that detects
|
|||||||
which components are on and toggles them to match the user's choice. Menu order:
|
which components are on and toggles them to match the user's choice. Menu order:
|
||||||
|
|
||||||
1. SteamOS conversion (boot into gaming mode via autologin, Return to Gaming Mode shortcut, Steam desktop autostart)
|
1. SteamOS conversion (boot into gaming mode via autologin, Return to Gaming Mode shortcut, Steam desktop autostart)
|
||||||
2. SteamOS theme (installs `cachyos-vapor` and applies the Vapor global theme with its desktop and window layout; needs a running Plasma session)
|
2. └ Boot into: gamescope / desktop (sub-option of 1, shown while 1 is ticked; Left/Right or the number switches it)
|
||||||
3. Steam Deck/Machine icons (`STEAM_GAMEPADUI_ARGS -steamos3`)
|
3. SteamOS theme (installs `cachyos-vapor` and applies the Vapor global theme with its desktop and window layout; needs a running Plasma session)
|
||||||
4. Single user mode (SDDM, no lock screen/user switching/log out; enabling it enables 1, disabling 1 disables it)
|
4. Steam Deck/Machine icons (`STEAM_GAMEPADUI_ARGS -steamos3`)
|
||||||
5. Steamify shortcut (desktop icon + launcher entry that `curl | bash` the newest release; its gear icon is a release asset)
|
5. Single user mode (SDDM, no lock screen/user switching/log out, Valve's empty KDE wallet; enabling it enables 1, disabling 1 disables it)
|
||||||
6. Steam Machine support (only on DMI Valve/Fremont: leds-valve-dkms-git built for every kernel via `/etc/dkms/leds-valve-dkms.conf`, `ensure-kernel-headers.service`, udev rule, steamos-manager, powerdevilrc)
|
6. Steamify shortcut (desktop icon + launcher entry that `curl | bash` the newest release; its gear icon is a release asset)
|
||||||
7. Update BIOS (only on Fremont, an opt-in action, never pre-ticked; tickable only when Valve has a newer BIOS)
|
7. HDMI-CEC (any PC, opt-in, never pre-ticked: Valve's cecd from the holo repo; see "Fake HDMI-CEC")
|
||||||
|
8. Steam Machine support (only on DMI Valve/Fremont: leds-valve-dkms-git built for every kernel via `/etc/dkms/leds-valve-dkms.conf`, `ensure-kernel-headers.service`, udev rule, steamos-manager, powerdevilrc)
|
||||||
|
9. └ Pin the kernel to 7.1.6-1 (sub-option of 8, ticked along with it; packages in `/var/cache/steamify/kernel`)
|
||||||
|
10. Update BIOS (only on Fremont, an opt-in action, never pre-ticked; tickable only when Valve has a newer BIOS)
|
||||||
|
|
||||||
Without `--fremont` the menu has only 1-5.
|
Without `--fremont` the menu has only 1-7. Numbers shift when a parent is
|
||||||
|
unticked (its sub-option is hidden), so read the ticks with `'q\n'` first.
|
||||||
|
|
||||||
Undo journals live in `~/.local/state/cachyos-gamescope-boot/` in the guest.
|
Undo journals live in `~/.local/state/cachyos-gamescope-boot/` in the guest.
|
||||||
|
|
||||||
@@ -264,12 +268,41 @@ differs from Valve's newest. Fake an older one with
|
|||||||
the environment through). fwupd correctly refuses the firmware in the VM
|
the environment through). fwupd correctly refuses the firmware in the VM
|
||||||
("not for this machine's hardware"), so walk the whole flow with
|
("not for this machine's hardware"), so walk the whole flow with
|
||||||
`WIZARD_BIOS_DRY_RUN=1` (skips only that check, never flashes). Scripted:
|
`WIZARD_BIOS_DRY_RUN=1` (skips only that check, never flashes). Scripted:
|
||||||
`printf '7\n\ny\ny\nUPDATE\nm\nq\nn\n' | WIZARD_BIOS_DRY_RUN=1 /mnt/steamify.sh`
|
`printf '10\n\ny\ny\nUPDATE\nm\nq\nn\n' | WIZARD_BIOS_DRY_RUN=1 /mnt/steamify.sh`
|
||||||
(BIOS is item 7 with `--fremont`; the final `n` answers the restart question).
|
(BIOS is item 10 with `--fremont`; the final `n` answers the restart question).
|
||||||
|
|
||||||
A successful dry run counts as staged, so `[m]`/`[r]` and the restart question
|
A successful dry run counts as staged, so `[m]`/`[r]` and the restart question
|
||||||
on `q` show up too; in dry-run mode "restart" only prints.
|
on `q` show up too; in dry-run mode "restart" only prints.
|
||||||
|
|
||||||
|
## Fake HDMI-CEC (vivid)
|
||||||
|
|
||||||
|
The VM has no CEC hardware; the kernel's `vivid` test driver emulates it: a
|
||||||
|
virtual HDMI input (`/dev/cec0`, plays the TV) and output (`/dev/cec1`, the
|
||||||
|
PC). Needs the HDMI-CEC item on (cecd installed); `cec-ctl` is in v4l-utils.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh -p 2222 -o BatchMode=yes theupriser@localhost bash -s << 'EOF'
|
||||||
|
export XDG_RUNTIME_DIR=/run/user/1000 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
|
||||||
|
sudo modprobe vivid n_devs=1 num_inputs=1 input_types=0x3 num_outputs=1 output_types=0x1
|
||||||
|
cec-ctl -d /dev/cec0 --tv --phys-addr 0.0.0.0 --osd-name "Sony TV" >/dev/null
|
||||||
|
# plug the output into the input: the PC side gets 1.0.0.0
|
||||||
|
v4l2-ctl -d /dev/video0 --set-ctrl hdmi_000_0_is_connected_to=2
|
||||||
|
# the cecd service (-e) grabs every CEC device, the TV too: run it on the output only
|
||||||
|
systemctl --user stop cecd; systemd-run --user -q --unit=cecd-test /usr/bin/cecd -d /dev/cec1
|
||||||
|
sleep 4; cec-ctl -d /dev/cec1 | grep -E "Physical Address|Logical Address " # 1.0.0.0, e.g. 8
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, with `T="cec-ctl -d /dev/cec0 -t 8"` (the PC's logical address):
|
||||||
|
`$T --give-osd-name` (the Steam Machine answers "Steam Machine"), remote keys
|
||||||
|
`$T --user-control-pressed ui-cmd=down` + `$T --user-control-released`
|
||||||
|
(arrive as KEY_DOWN on the `cecd vivid-000-vid-out0` input device; there's no
|
||||||
|
evtest, read `/dev/input/eventN` with a small python struct reader), and PC to
|
||||||
|
TV: `sudo cec-ctl -d /dev/cec0 -M` (monitor needs root) while running
|
||||||
|
`cectool -d /dev/cec1 set-active|volume-up|standby`. Afterwards
|
||||||
|
`systemctl --user stop cecd-test; sudo modprobe -r vivid; systemctl --user start cecd`.
|
||||||
|
The menu item is 7 (8 = Steam Machine support, 9 = kernel pin, 10 = BIOS with `--fremont`).
|
||||||
|
|
||||||
## Steamify shortcut
|
## Steamify shortcut
|
||||||
|
|
||||||
Test a double-click with `systemd-run --user kioclient exec
|
Test a double-click with `systemd-run --user kioclient exec
|
||||||
|
|||||||
Reference in new issue
Block a user