Wayland下的Sunshine+虚拟屏幕配置
看身边有许多朋友们在用平板,非常的羡慕。所以最近我也买了一块平板。
买的是一加的平板,本来是打算做root的,但最后还是有些懒没有刷www
把手写笔键盘这些都弄好之后,我就开始研究了一下sunshine进行桌面串流。在Windows下面所有功能都非常的不错,都可以正常的使用。但是在Linux下,尤其是wayland的Linux下部分功能就有一些小小的bug。但是都不影响正常的使用。
不过对我来说最重要的是需要一块虚拟显示器做串流,这样子我就可以把我的平板作为副屏了。
X11下有非常多的办法,都可以创建虚拟显示器。但是Wayland下面就有些复杂,不过最后还是倒腾出来了,挺简单的,在这做个分享。
使用 Kernel 模拟 EDID + DRM 接口
这是目前最可靠的方案,尤其适用于没有物理显示器的场景(如服务器、远程主机)。
准备 EDID 文件
下载常见分辨率的 EDID(如 QHD/4K),可以参考社区资源如 EDID-Emulator-Profiles 项目 。
将 EDID 文件放到 firmware 路径
sudo mv edid.bin /usr/lib/firmware/edid/myvirt.bin
注意这边edid
目录可能需要自己创建修改内核参数(GRUB 或 systemd-boot,在启动参数后面追加)
指定 GPU 输出端口和模式,比如 HDMI-A-1(随便取一个名字即可,不要重复,使用不存在的接口作为虚拟显示器):
drm.edid_firmware=HDMI-A-1:edid/myvirt.bin video=HDMI-A-1:1920x1080@60e
这样做会强制系统在启动时加载虚拟显示器,并模拟 EDID 内容 。
推荐不填写分辨率和帧数,如直接drm.edid_firmware=HDMI-A-1:edid/myvirt.bin video=HDMI-A-1:e
接着,更新引导并重启
这个时候就可以在桌面环境的显示器栏中看到新的虚拟显示器啦
接着启动sunshine,找到屏幕对应的ID,填写进sunshine配置中
这个时候再用平板连接,就可以使用虚拟显示器啦~
有个挺方便的一点:
KDE(绝大部分应该都可以),可以在设置中禁用显示器,这样子就可以减少不串流时候的性能消耗了。