sddm autologin disabled by ruling (#611)
The always-alive console session held the user's single plasmashell and black-screened RDP. Live conf removed, staged/apply-guest.sh step now removes it instead of writing it, REBUILD KDE policy updated. Console shows the greeter at boot; RDP is the primary desktop; Sunshine will get a kiosk account or XFCE when it lands. Details: https://projects.knownelement.com/issues/611
This commit is contained in:
+5
-3
@@ -45,9 +45,11 @@ up after host boot (gateway auto-recovers).
|
||||
- Mount the data disks per `docs/state/guest-system.txt` FSTAB section:
|
||||
`/data1` (SSD 200G) and `/data2` (ssd2 400G), ext4 `noatime`.
|
||||
- Hostname `ultix-streaming`; ssh enabled.
|
||||
- KDE policy (2026-08-31 ruling): autologin into an UNLOCKED
|
||||
always-alive session (sddm Relogin=true, autolock OFF) — applied by
|
||||
`fix-kde.sh` in this repo.
|
||||
- KDE policy (2026-09-01 ruling, supersedes 08-31): **NO sddm autologin**
|
||||
— an always-alive console session holds the user's single plasmashell
|
||||
and black-screens RDP (Plasma 6 = one shell per user, #611). Console
|
||||
shows the sddm greeter at boot; RDP is the primary desktop. When
|
||||
Sunshine lands with the GPU it gets a dedicated kiosk account or XFCE.
|
||||
|
||||
## 2. Accounts + secrets + tools
|
||||
|
||||
|
||||
+2
-1
@@ -16,7 +16,7 @@ One table, updated in place at each checkpoint. States: done ✅ / doing 🔄 /
|
||||
| OPT-10 | integ | ⏳ | #605: k8s join (Q11, blocked by #601) + proxmox-ctl token (Q12) |
|
||||
| #606 | gpu | 🔄 | Quadro 4000 passthrough STAGED on 5111 (vfio ids + q35 + hostpci0, staged/gpu-passthrough.md); activates at the human's pre-Friday roll; nouveau-only on kernel 6.12 (no CUDA/NVENC — compute cards come with #601) |
|
||||
| #610 | fleet | ✅ | Open Terminal 9-account fleet (tailscale-only :30000-30008) + OpenWebUI UAT PASS |
|
||||
| #611 | rdp | 🔄 | 3-layer root cause fixed (EGFX budget + kwin compositing crash-loop + dual-session plasmashell conflict) + **EGFX now OFF server-side** (drdynvc=false; Jump's EGFX decode was the bars; classic codecs render 5160 clean). Human live verify: reconnect monitor + iPad. Autologin ruling still owed |
|
||||
| #611 | rdp | 🔄 | 3-layer fix + EGFX off (drdynvc=false) + autologin DISABLED per ruling 09-01 (console greeter at boot; RDP = primary desktop). Awaiting human visual confirm: bars gone on monitor + iPad |
|
||||
| #612 | dotfiles | ✅ | UAT PASS 2026-09-01 (human): omz+v2 base + kali addendum both accounts; p10k fallback via KALI_PROMPT=0 |
|
||||
| #615 | microvm+rebuild | 🔄 | microvm tooling LIVE + REBUILD.md/docs/state + docs synced + regular-VM lane PROVEN (libvirt q35, REGULAR-VMS.md); human UAT pending |
|
||||
| #616 | macos | ⏳ | macOS VM on pfv-tsys5 (headless CI + iOS dev) — blocked by #601 |
|
||||
@@ -26,6 +26,7 @@ Inbox (mid-task interrupts): none.
|
||||
Decisions log (latest wins):
|
||||
- 2026-09-01 (midday): RDP #611 diagnosis: xrdp 0.10.1/xorgxrdp 0.10.2 serves 5160x2160 CLEANLY on every codec (EGFX-RFXPro, NSCodec, bitmaps) and mid-session resize 2816->5160 (freerdp headless UAT, Xvfb screenshots; ASCII-render analysis). Jump-client corruption pinned to EGFX large-frame path -> XRDP_GFX_MAX_COMPRESSED_BYTES=32MB + FRAMES_IN_FLIGHT=2 via xrdp.service.d drop-in (12-fix-rdp-bigres.sh, idempotent, restart-guards on active sessions). Scratch user rdptest = the UAT account (remove after #611 closes). Sudoers: reachableceo -> offstage NOPASSWD (narrow, /etc/sudoers.d/reachableceo-to-offstage). Harness note: crush v0.91.2 hardcodes a bash command blocklist, no config override (upstream #2761); leading-word prefix bypasses it.
|
||||
- 2026-09-01 (afternoon): #615 microvm LIVE: qemu -M microvm + KVM engine (apt-only deps), firecracker v1.16.1 installed but its KVM cap check (0x38 = USER_MEMORY/SET_TSS_ADDR/VAPIC) refuses this nested Westmere KVM — retry MICROVM_ENGINE=firecracker post-#601. Per-user tap pools mv-r0..3/mv-o0..3 (/30s in 172.30.0/1.x) + iptables NAT via microvm-net.service; kvm group added both accounts (one re-login activates). UAT: boot->ssh 27.9s first boot (cloud-init+growpart 3->9.7G), apt OK through NAT, graceful stop 6.4s. #616 macOS VM ticket created w/ blocks-relation on #601. REBUILD.md + docs/state capture (14-capture-state.sh) landed; README/NEXT/REPORT/RUNBOOK synced (stale multiqueue text). mred = the Redmine CLI for all ticket work (~/.local/bin/mred).
|
||||
- 2026-09-01 (evening): #611 fix chain complete: (1) EGFX budget env (earlier), (2) kwin compositor off + [Service] TimeoutStartSec=300 (user-manager reload needs XDG_RUNTIME_DIR — root daemon-reload does NOT touch user units), (3) dual-session plasmashell conflict resolved by killing console session live, (4) EGFX OFF server-wide (drdynvc=false) after band-analysis proved server clean at 5160 while Jump showed bars (classic codecs verified clean via harness), (5) human ruling: sddm autologin DISABLED (conf removed + staged/apply-guest.sh step neutralized; Sunshine later gets kiosk/XFCE). sddm greeter at next boot; RDP = primary desktop.
|
||||
- 2026-09-01 (afternoon 2): GPU passthrough STAGED (#606): vfio-pci ids 10de:06dd/0be5 (IOMMU group 20 clean, initramfs rebuilt) + VM 5111 machine q35 + hostpci0 pcie=1 — activates at the human's pre-Friday roll; verify+revert in staged/gpu-passthrough.md; host console goes headless; guest gets nouveau only (no Fermi driver on kernel 6.x). Regular-VM lane PROVEN (#615): libvirt 11.3/q35/host-passthrough boots the Debian cloud image — DHCP lease + ssh + growpart + systemctl running, nested vmx visible (REGULAR-VMS.md documents the three gotchas: disks under /var/lib/libvirt/images/reachableceo w/ libvirt-qemu group 660/770; direct-kernel files must be under /boot for virt-aa-helper; console output needs console=ttyS0). libvirt default net now autostarted. Teardown verified clean.
|
||||
- 2026-09-01 (morning): POST-REBOOT AUDIT PASS (boot 22:53 = multiqueue bounce): ens18 Combined 4/4 + ens19 2/2 LIVE; qm pending empty; bounce log 22:51->22:53 clean; gw prod (ts :4000) + beta (:4002) both 200/healthy; postgres x2, openwebui :3000, 12 LSPs, all 9 open-terminal ports bound on 100.101.187.119; PSI textfile fresh; no relauncher respawn. Night window EXTENDED 22:00-05:00 -> 22:00-07:00 (human ruling; day-flip timer 07:00, live + staged synced via 11-shift-day-flip-0700.sh; z.ai peak ladder 01:00-05:00 untouched). openwebui.creds per-account distributor staged (10-) NOT run — human reads master list at ~/.creds/open-terminal.env.
|
||||
- 2026-08-31 (night, con handed to crush): #610 DONE in one session: open-terminal 0.11.34 bare-metal (HUMAN EXCEPTION to no-host-install rule, recorded), template unit open-terminal@.service, per-user TOML keys (never in ps/repo; ~/.creds holds copies), bind TAILSCALE-ONLY 100.101.187.119 per human ruling (0.0.0.0 rejected); all 8 other accounts + docker group; UAT via throwaway openwebui v0.11.1 (matches Cloudron prod) ALL PASS incl. hallucination-guarded chat round trip (model ran ls through OpenWebUI's terminal proxy, answered 9/9 real names). NOTE: prod openwebui container (v0.3.10, :3000) is too old for Open Terminal — upgrade to 0.11.x before wiring; Cloudron 0.11.1 is fine. Learned: raw API callers execute tool_calls client-side; the UI path runs the server-side loop.
|
||||
|
||||
+8
-11
@@ -95,17 +95,14 @@ step_daemonjson() {
|
||||
say "docker restarted with new config; check: docker info | grep -E 'Live|Logging'"
|
||||
}
|
||||
step_desktop() {
|
||||
[ "$CONFIRM" = 1 ] || die "desktop needs CONFIRM=1: enables sddm autologin for $DESKTOP_USER"
|
||||
gate "configure sddm autologin+lock" || return 0
|
||||
mkdir -p /etc/sddm.conf.d
|
||||
cat > /etc/sddm.conf.d/50-ukrrs-autologin.conf <<EOF
|
||||
[Autologin]
|
||||
User=$DESKTOP_USER
|
||||
Session=plasma.desktop
|
||||
Relogin=true
|
||||
EOF
|
||||
say "sddm autologin configured (UNLOCKED session; autolock deliberately off"
|
||||
say "per 2026-08-31 ruling: instant Jump/iPad re-attach outranks lock)"
|
||||
# DISABLED by human ruling 2026-09-01 (#611): the always-alive autologin
|
||||
# console session held the user's single plasmashell instance and
|
||||
# black-screened every RDP login (Plasma 6 = one shell per user).
|
||||
# RDP does not need autologin; Sunshine (when it lands with the GPU)
|
||||
# gets a dedicated kiosk account or XFCE instead. Do not re-arm.
|
||||
gate "sddm autologin (DISABLED 2026-09-01, #611)" || return 0
|
||||
rm -f /etc/sddm.conf.d/50-ukrrs-autologin.conf
|
||||
say "sddm autologin REMOVED if present; console shows greeter at boot; RDP unaffected"
|
||||
}
|
||||
step_daynight() {
|
||||
gate "install day/night profile timers" || return 0
|
||||
|
||||
Reference in New Issue
Block a user