- MarMDJtin2026-09-1366795
想在 Linux 上用 Sunshine → Moonlight 做远程桌面,又不想买 HDMI/DP 欺骗器( dummy plug ),也不想一直开着物理显示器。折腾一段时间后,把流程整理成了一个开源项目:
https://github.com/mdj2812/sunshine-vdisplay
原理简述
- 在空闲的 GPU 输出口(未插线的 HDMI/DP )上,通过 自定义 EDID + 内核参数 强制启用虚拟显示器
- 核心参数:
drm.edid_firmware=<接口>:edid/virtual-display.bin video=<接口>:e(两者缺一不可)- Moonlight 连接/断开时,自动切换虚拟屏与物理屏( Sunshine
global_prep_cmd)- 支持 Arch/CachyOS/Fedora/Debian/Ubuntu 等,安装脚本会自动识别 mkinitcpio / dracut / initramfs-tools
致谢
本方案基于 Harry Ankers 的 Gist 教程( EDID 生成与 NVIDIA 虚拟屏思路)。我在此基础上做了 Sunshine 自动化、多发行版安装脚本、KDE 显示切换与亮度调节等。原帖作者 Reddit:u/hankers60。
目前已验证环境
- GPU: NVIDIA RTX 2070 SUPER (闭源驱动)
- 系统: CachyOS ( Arch 系)
- 桌面: KDE Plasma 6 Wayland
- 串流: Sunshine 2026.x ,KMS 捕获 + NVENC
- 引导: Limine (也支持 GRUB / systemd-boot )
已知限制
- 目前 仅支持 NVIDIA + KDE Wayland
- NVIDIA 强制启用的虚拟口 不支持 HDR(驱动限制,非 EDID 问题)
- 虚拟口上 4K@120 可能受驱动/带宽限制,部分环境最高 4K@60
- 修改 EDID 模式后需重建 initramfs 并重启
一键安装( NVIDIA + KDE Wayland )```
curl -fsSL https://raw.githubusercontent.com/mdj2812/sunshine-vdisplay/main/scripts/install.sh | bash
```安装后会改 initramfs 和 内核启动参数,建议先备份或快照,再重启测试 Moonlight 连接。也可 clone 后本地安装(避免
curl | bash):```
git clone https://github.com/mdj2812/sunshine-vdisplay.git
cd sunshine-vdisplay
./scripts/install.sh
``指定虚拟口/物理口示例:``
VDISPLAY=HDMI-A-1 PDISPLAY=DP-3 bash <(curl -fsSL \
https://raw.githubusercontent.com/mdj2812/sunshine-vdisplay/main/scripts/install.sh)后续计划见 GitHub Milestones,欢迎有对应硬件/环境的朋友帮忙验证: 方向 | 需要的环境 | **NVIDIA + KDE Wayland** | 不同显卡、发行版、引导器 — 基线验证 | **AMD** | `amdgpu` 虚拟显示路径(尚未实现,需硬件反馈) | **Intel 核显** | i915 / xe | **X11** | Plasma on X11 ,`xrandr` 切换 | **其他桌面** | GNOME 、Sway 等(非 `kscreen-doctor`) | 反馈方式 请在 GitHub 开 Issue,尽量附上: - 显卡型号 + 驱动版本 - 发行版 + 桌面环境 + Wayland/X11 - 引导器( GRUB / systemd-boot / Limine ) - 失败时的 Sunshine 日志:`journalctl --user -u sunshine` - 对应哪个 Milestone主楼 - haiku2026-09-1349192
感谢分享,我之前让 claude 搓了一个虚拟显示器,不过后来重装系统,配置丢了,懒得折腾了
- wises2026-09-141617
拼夕夕买一个 4 块钱, 有必要这样折腾吗?
- Tink2026-09-142049
- weyou2026-09-142121
感谢分享,很好的创意,之前就想过为什么不能软件欺骗,原来还真可以
- strobber162026-09-1435964
- heyjei2026-09-143643
你们的 Moonlight ,在用 macOS 做客户端的时候,键盘功能都正常吗?很早之前试用的时候,键盘有部分按键不好使框,就没用了
- kapr1k0rn2026-09-1448939
现在一堆 sunshine 的分支项目全都自带这个了,apollo/vipepollo 这些
- cluulzz2026-09-1466796
在个人服务器上折腾过这个,用 sunshine 串流 retroarch,跑着个不关机的 gba 模拟器
- MarMDJtin2026-09-1466795
- MarMDJtin2026-09-1466795
- MarMDJtin2026-09-1466795
- TheNine2026-09-1442555
- TheNine2026-09-1442555
