5.10 [i-dp-2]使用DisplayLink驱动外屏实现Windows虚拟机方式使用浏览器

备注

不需要本地X11环境,因此不需要以GUI模式启动unRAID。可设定unRAID使用核显,也可能适合CPU无核显的情况。可选字符模式启动。Win虚拟机驱动VNC显卡+直通DisplayLink显卡,接外屏作为主屏。可部署其他Win虚拟机应用如VCSA,核显也可留给unRAID做emby解码,如果另有独显也可用于解码或者计算。

回顾一下我验证所用的软硬件环境:

  • unRAID 6.11.5

  • Windows 10 LTSC 2021 虚拟机

  • DisplayLink®USB转HDMI适配器

操作步骤简述(i-dp-2)

重要

unRAID系统、VM Manager等的基本配置过程不再详述,也以此作为整个配置过程的起点。

  • (推荐)设定以基本模式(非GUI)启动unRAID系统

  • (必须)安装Windows虚拟机

  • (可选)设定Windows启动后自动登录到桌面

  • (可选)设定开机自启动脚本,登录后全屏打开Edge浏览器,进入unRAID控制台

  • (推荐)设定外屏为Windows虚拟机的主显示屏

  • (推荐)部署Grafana状态显示面板

可以看到实现步骤非常直观,也很简单。

5.10.1 (推荐)设定以基本模式启动unRAID系统

这种模式下,我们使用虚拟机来驱动外屏;因此,不需要使用GUI方式启动unRAID系统。这样可以显著减少unRAID系统负载,我很推荐这样做。

当然如果你已经是用基本模式启动unRAID的话,这一节可以直接跳过。

unRAID主控台转到Main页面,下拉、点击Flash。

unRAID主控台转到Main页面,下拉、点击Flash

进入Flash页面后下拉到这里,选择基本模式,点击Apply即可。

选择基本模式,点击Apply即可

至此,基本模式启动设置完成,可以重启unRAID系统了。

5.10.2 安装Windows虚拟机

注意

请务必确认DisplayLink®USB转HDMI适配器已经插在主机上,并且已经用HDMI线连接到eDP驱动板上。

点击进入VM主页面,新建虚拟机,主要设置见下图;注意几个问题:

  • 系统CPU、内存、硬盘大小等按需配置即可

  • 虚拟机类型选择Q35

  • BIOS类型选择OVMF

  • 选择提前准备好的Windows安装光盘、VirtIO驱动光盘

  • 主显卡设置为VNC虚拟显卡

  • 别忘了,USB设备中,一定要把DisplayLink勾选上

  • 而且,后面把外屏设定主显示屏的时候,很可能需要使用鼠标;建议也把鼠标勾选上

  • 即使DisplayLink是USB3.0接口,也建议将“USB 控制器”选为“2.0 EHCI”,可能兼容性会好一些。

新建虚拟机的主要设置

建议完整检查一遍,确定没有问题之后,点击 CREATE

回到VM主页面,点击刚创建好的虚拟机图标,用VNC方式启动

用VNC方式启动刚刚建好的Windows虚拟机

一切顺利的话,就开始Windows安装过程了;这里不再详细讲。

开始Windows安装过程

Windows安装完成之后,可以看到未识别设备;不要慌,使用VirtIO驱动光盘上的驱动程序安装就好。另外,DisplayLink的驱动暂时不用管。

安装VirtIO驱动光盘上的驱动程序

驱动安装完之后,建议顺便设定好网络、打开远程桌面访问等等一些基本设置,这个就看个人习惯了。建议重启一下虚拟机。

重启完成之后,可以看到,DisplayLink已经正确识别到了。

DisplayLink已经正确识别了

不出意外的话,登录以后就可以看到外屏已经顺利点亮了。

DisplayLink已经外屏已经顺利点亮

在系统显示设置里,可以看到显示器1是VNC虚拟显示,显示器2是外屏

DisplayLink已经外屏已经顺利点亮

并且可以看到外屏是使用1920x515原生分辨率的。完美!

外屏使用1920x515原生分辨率

5.10.3 (可选)设定Windows启动后自动登录到桌面

做这一步主要是为了图省事儿,每次启动虚拟机之后,不用登录就可以自动进入桌面。

首先在虚拟机VNC窗口运行注册表编辑器

运行注册表编辑器

找到注册表路径

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device

并将注册表项 “DevicePasswordLessBuildVersion” 设定为“0”。点击确定即可。

修改注册表项 DevicePasswordLessBuildVersion 为 0

接下来,我们在虚拟机VNC窗口中运行 netplwiz 用户账户设置。

运行用户账户设置

取消 “要使用本计算机,用户必需输入用户名和密码” 勾选,并点击应用。

取消 “要使用本计算机,用户必需输入用户名和密码” 勾选

这时,会弹出密码输入对话框;输入你的用户名和密码,点击 确定确定 就可以了。

输入你的用户名和密码

这样,我们设定虚拟机开始自动登录桌面的步骤就完成了。

5.10.4 (可选)设定开机自启动脚本,登录后全屏打开Edge浏览器,进入unRAID控制台

做这一步还是为了图省事儿,每次启动虚拟机之后自动进入桌面;接下来,我们当然是希望它能够自动打开浏览器,并且全屏显示。

运行命令,打开系统启动程序文件夹

打开系统启动程序文件夹

在这个文件夹下面,新建一个bat可执行脚本文件。

在文件夹中新建文本文档

给文件取个名字,比如 run_edge.bat

务必确定文件后缀为bat

警告

务必确定文件名后缀为 “.bat”

右键点击编辑这个bat文件,输入下面的代码:

@start msedge.exe --kiosk "http://192.168.7.89:20080" --edge-kiosk-type=fullscreen --no-first-run

这里需要注意,把上面的URL链接改成你自己unRAID主机的访问地址。

为了方便,你也可以在 附录中 下载这个bat文件,然后修改使用。

编辑这个bat文件

保存。可以了,这一步结束。

这样,虚拟机开机以后,就会自动全屏运行EDGE浏览器,并转到你的unRAID控制台页面

5.10.5 (推荐)设定外屏为Windows虚拟机的主显示屏

前面设定全部完成以后,现在该把外屏设定为主屏了;这样做的好处是,开机外屏自动进入可用状态。

警告

请务必确定已经将鼠标直通给虚拟机使用,否则会相当尴尬;因为只有这样,你才能在虚拟机中跨两个屏幕操作。

打开显示设置,将外屏设定为主屏。注意,建议将模式 选定为“扩展”而不是“仅在”,因为很多时候我们还是需要使用VNC处理虚拟机内部的设置。

将外屏设定为主显示屏

再翻回头对照前面的步骤回忆一下,确定没什么问题,然后点击勾选框。这时候,就可以重启虚拟机验证下最终效果了。注意到没有,此时你需要用鼠标在外屏上操作“重启”。

没什么意外的话,重启完成之后,就最终进入可用状态了。

重启之后进入指定页面

登录unRAID控制台,unRAID系统面板状态显示达成。

成功进入unRAID系统面板

这里要澄清一个问题: 我实在是太懒了,有没有办法自动登录unRAID控制台呢?

警告

答案是: 有;但是需要清除 unRAID系统root密码。这样做会带来很大的安全问题,而且会导致root用户无法SSH登录(也许可以用SSH秘钥登录,未验证)。 因此, 强烈建议不要这样做

一个达到近似效果的替代方法,就是在浏览器中保存用户名密码,也许会稍微方便些。

到此,基本配置完毕,外屏状态显示、快捷操作已达到可用状态。

5.10.6 (推荐)部署Grafana状态显示面板

5.10.7 常见问题

Q1:EDGE浏览器没有进入全屏模式?

A1:有可能是EDGE浏览器版本的问题。另外,根据个人喜好可以考虑:

  • 1、EDGE浏览器从版本89开始支持展台(kiosk)模式,建议升级一下。

  • 2、另外,可以考虑使用启动参数 –edge-kiosk-type=public-browsing;这样更灵活一些。

  • 3、如果不用展台模式,也可以在浏览器启动后,按F11进入一般全屏模式;这样最灵活。