看身边有许多朋友们在用平板,非常的羡慕。所以最近我也买了一块平板。

买的是一加的平板,本来是打算做root的,但最后还是有些懒没有刷www

把手写笔键盘这些都弄好之后,我就开始研究了一下sunshine进行桌面串流。在Windows下面所有功能都非常的不错,都可以正常的使用。但是在Linux下,尤其是wayland的Linux下部分功能就有一些小小的bug。但是都不影响正常的使用。

不过对我来说最重要的是需要一块虚拟显示器做串流,这样子我就可以把我的平板作为副屏了。

X11下有非常多的办法,都可以创建虚拟显示器。但是Wayland下面就有些复杂,不过最后还是倒腾出来了,挺简单的,在这做个分享。

使用 Kernel 模拟 EDID + DRM 接口

这是目前最可靠的方案,尤其适用于没有物理显示器的场景(如服务器、远程主机)。

  1. 准备 EDID 文件

  2. 将 EDID 文件放到 firmware 路径
    sudo mv edid.bin /usr/lib/firmware/edid/myvirt.bin
    注意这边edid目录可能需要自己创建

  3. 修改内核参数(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(绝大部分应该都可以),可以在设置中禁用显示器,这样子就可以减少不串流时候的性能消耗了。