RDP black-screen root-caused: kwin_x11 compositing crash-loop; fixed (#611)
Server-side bisect (session rendered pure black, colors=1) pinned it to plasma-kwin_x11.service timing out and crash-looping: software-GL compositing init under xorgxrdp never completes at 5160x2160. Fix: Compositing=false for the RDP accounts (X11-only key, Wayland console unaffected) + 300s kwin unit start timeout. 12-fix-rdp-bigres.sh now installs both parts. freerdp harness matrix green across all four flows. Details: https://projects.knownelement.com/issues/611
This commit is contained in:
@@ -33,3 +33,41 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
grep -q XRDP_GFX_MAX_COMPRESSED_BYTES "$DROPIN" && echo "drop-in present: $DROPIN"
|
grep -q XRDP_GFX_MAX_COMPRESSED_BYTES "$DROPIN" && echo "drop-in present: $DROPIN"
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Part 2 — kwin_x11 black-screen fix (root-caused 2026-09-01, #611)
|
||||||
|
#
|
||||||
|
# Symptom: RDP login -> KDE spinner -> BLACK screen. Server-side bisect
|
||||||
|
# showed display :10 rendering pure black (colors=1): kwin_x11 was
|
||||||
|
# crash-looping (plasma-kwin_x11.service "start operation timed out",
|
||||||
|
# restart counter 12+). Cause: software-GL compositing init under
|
||||||
|
# xorgxrdp (no DRI) at 5160x2160 never finishes inside the unit's
|
||||||
|
# start timeout; systemd kills kwin -> no desktop. The "spinner" the
|
||||||
|
# user sees is KSplash firing on every kwin restart.
|
||||||
|
#
|
||||||
|
# Fix: disable X11 compositing for the RDP accounts (kwin runs
|
||||||
|
# uncomposited = instant, no GL) and give the kwin unit start-time
|
||||||
|
# headroom. Wayland console session unaffected (Compositing/Enabled is
|
||||||
|
# an X11-only key). Verified with the freerdp harness on rdptest:
|
||||||
|
# fresh 1408x945 / fresh 5160x2160 / resize up mid-session / resize
|
||||||
|
# down on reconnect — all render real desktops.
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
for ACCOUNT in reachableceo reachableceo-offstage; do
|
||||||
|
runuser -u "$ACCOUNT" -- kwriteconfig6 --file kwinrc \
|
||||||
|
--group Compositing --key Enabled false
|
||||||
|
echo "kwinrc Compositing=false: $ACCOUNT"
|
||||||
|
done
|
||||||
|
|
||||||
|
mkdir -p /etc/systemd/user/plasma-kwin_x11.service.d
|
||||||
|
cat > /etc/systemd/user/plasma-kwin_x11.service.d/bigres-timeout.conf <<'EOF'
|
||||||
|
[Unit]
|
||||||
|
# big-res xorgxrdp sessions: software-GL init is slow; give kwin room
|
||||||
|
# instead of kill+crashloop (#611)
|
||||||
|
TimeoutStartSec=300
|
||||||
|
EOF
|
||||||
|
systemctl daemon-reload
|
||||||
|
echo "kwin unit override: /etc/systemd/user/plasma-kwin_x11.service.d/bigres-timeout.conf"
|
||||||
|
echo
|
||||||
|
echo "If a session is currently black: loginctl terminate-session <id> (or"
|
||||||
|
echo "loginctl terminate-user <user> for their RDP sessions) and reconnect."
|
||||||
|
|||||||
+1
-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) |
|
| 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) |
|
| #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 |
|
| #610 | fleet | ✅ | Open Terminal 9-account fleet (tailscale-only :30000-30008) + OpenWebUI UAT PASS |
|
||||||
| #611 | rdp | 🔄 | Jump/iPad + 5160x2160 monitor: EGFX frame-budget fix live (12-fix-rdp-bigres.sh); freerdp UAT all-clean; human UAT pending |
|
| #611 | rdp | 🔄 | ROOT CAUSE FOUND + FIXED (black screen = kwin_x11 GL-compositing crash-loop under xorgxrdp; compositing off + unit timeout, EGFX budget kept). Harness matrix ALL GREEN (fresh/resized 1408<->5160). LIVE human UAT now |
|
||||||
| #612 | dotfiles | ✅ | UAT PASS 2026-09-01 (human): omz+v2 base + kali addendum both accounts; p10k fallback via KALI_PROMPT=0 |
|
| #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 |
|
| #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 |
|
| #616 | macos | ⏳ | macOS VM on pfv-tsys5 (headless CI + iOS dev) — blocked by #601 |
|
||||||
|
|||||||
Reference in New Issue
Block a user