Claude_Homelab/110_virtual_display_driver_deployment.md

83 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 110 — Virtual Display Driver Setup (Windows 11 VM)
> Status: Planned — not yet executed
> Created: 2026-07-09
> Purpose: Replace physical dummy HDMI plug with a software virtual display to unlock native 3440×1440 streaming resolution for Moonlight/Sunshine
---
## ⚠️ Context from 2026-07-09 session (read before starting)
- VM 110's actual reachable IP was found to be **192.168.1.250**, not the documented `192.168.1.227`. Root cause not identified (DHCP lease drift suspected). **Confirm current IP before starting**`00_index.md` may still show the stale one until corrected.
- Secure Boot was disabled on VM 110 during unrelated troubleshooting (testing a hang that turned out unrelated). **Currently: Secure Boot = Disabled.** Decide whether to re-enable + run `qm enroll-efi-keys 110` before or after this VDD work — unrelated to VDD itself but worth resolving in the same maintenance window.
- The Windows install ISO (`windows11.iso` on `ide2`) may still have higher boot priority than the real disk. Verify `qm config 110` boot order before rebooting the VM for any reason, to avoid landing back in Windows Setup by accident.
---
## Why this is needed
The physical dummy HDMI plug currently in use has a fixed EDID that doesn't advertise ultrawide timings — Windows can't be forced into 3440×1440 through Display Settings alone because the "monitor" never claims to support it. A virtual display driver reports resolutions defined entirely in software, with no hardware EDID limitation.
---
## Phase 1 — Overview
1. Install a Virtual Display Driver (VDD) on the Windows 11 VM
2. Configure it for 3440×1440 @ 144Hz (matching the physical ultrawide monitor spec)
3. Point Sunshine's capture source at the virtual display instead of the physical dummy-plug output
4. Physically remove (or leave inert as fallback) the dummy HDMI plug
5. Test Moonlight stream at full native resolution
---
## Phase 2 — Install the Virtual Display Driver
- [ ] RDP into VM 110 (`192.168.1.250` — confirm current IP first)
- [ ] Download a maintained Virtual Display Driver release — search GitHub for `itsmikethetech virtual-display-driver` (or current actively maintained fork; check release notes for Windows 11 24H2+ compatibility given VM's Windows version)
- [ ] Reconfirm Secure Boot is still off at time of install — some display drivers require unsigned/test-signed mode
- [ ] Run the installer / register the driver per the project's install instructions
- [ ] Reboot the VM if the driver install requires it
## Phase 3 — Configure resolution
- [ ] Locate the VDD config file (typically JSON, e.g. `vdd_settings.xml` or similar depending on the fork)
- [ ] Add a custom mode: 3440×1440, 144Hz
- [ ] Restart the VDD service/driver (not necessarily the full VM) to apply
- [ ] Confirm the new virtual display appears in Windows Display Settings and can be set to 3440×1440
## Phase 4 — Point Sunshine at the virtual display
- [ ] Open Sunshine web UI (`https://192.168.1.250:47990` — confirm current IP)
- [ ] Under display/capture configuration, select the virtual display as the capture source instead of the physical GPU output
- [ ] Save and restart the Sunshine service
## Phase 5 — Remove physical dependency
- [ ] With the virtual display confirmed working, physically unplug the dummy HDMI adapter from the passthrough GPU (or leave connected as an inert fallback — doesn't need to be removed for this to work, just no longer relied upon)
- [ ] Reboot VM 110 once, fully disconnected from any physical dummy plug, to confirm Windows still boots and streams correctly with only the virtual display present
## Phase 6 — Test
- [ ] Connect via Moonlight from CachyOS
- [ ] Set Moonlight resolution to 3440×1440
- [ ] Confirm image is sharp, not upscaled/blurry
- [ ] Test at 144Hz if bandwidth allows; fall back to 60Hz if streaming quality suffers
---
## Rollback
If the VDD causes instability (driver conflicts, crashes, Sunshine capture failures):
- [ ] Uninstall the VDD driver
- [ ] Re-plug the physical dummy HDMI adapter
- [ ] Revert Sunshine's capture source back to the physical GPU output
---
## Post-completion
- [ ] Update this file's Status header to "Completed" with the date
- [ ] Update `homelab-overview.md` VM 110 entry noting virtual display in use
- [ ] Update `00_index.md` if the IP address discrepancy from 2026-07-09 was resolved
- [ ] Move corresponding task to "Recently Completed" in `Tasks.md`