家里云计划:不使用直通获得一个拥有3D加速的Linux VM

最终的实现效果是,在无桌面环境的宿主机上运行使用virgl加速的Linux虚拟机,可以通过rdp连接,也可以在virt-manager上看到画面

环境配置

宿主机:Ubuntu Server 24.04 LTS(无桌面环境),CPU为Ryzen 5700G(amd集成显卡)

虚拟机为Debian13,使用Gnome桌面

首先在宿主机上安装qemu和virt-manager,然后安装virgl所需的包:

 apt install libvirglrenderer-dev libvirglrenderer1 virgl-server

为了在无头环境使用virt-manager,需要安装一个MobaXterm,ssh连接后直接执行”virt-manager”,就可以打开窗口

常规配置步骤——用不了说是

教程参看 https://ivonblog.com/posts/linux-qemu-virglrenderer/#2-%E5%9C%A8%E5%AE%BF%E4%B8%BB%E6%A9%9F%E5%AE%89%E8%A3%9Dvirglrenderer%E5%A5%97%E4%BB%B6

网上常见的配置步骤是,使用virt-manager,把video的Model改成virtio,开启3D Acceleration;Display改成Spice,Listen type设置为None,最后勾选OpenGL——是不是很简单?

然后就黑屏了…在virt-manager上只能看到引导界面,进入系统就会直接黑屏

解决方法

解决方法是配置egl-headless——说实话我也不太清楚是干什么的;(

💡 关于 egl-headless 的作用: 简单来说,virgl (VirGL Renderer) 需要一个 OpenGL/EGL 的上下文才能将虚拟机内的 3D 指令渲染出来。在没有桌面环境(Headless)的宿主机上,宿主机无法提供一个可见的显示窗口来承载这个渲染上下文。egl-headless 显卡类型的作用就是提供一个“无屏幕”的 EGL 渲染上下文,让 virgl 可以在宿主机的 GPU 上(通过 /dev/dri/renderD128)进行计算和渲染,并将渲染结果传递给 Spice 或 VNC 等显示协议,从而解决黑屏问题。

*此方案来自Gemini3

由于virt-manager的Graphics上没有egl-headless这个选项,只能用virsh手动编辑

搜索<graphics>块,将原来的块全部删除,然后改为如下配置

<graphics type='spice' port='5910' autoport='no' listen='192.168.1.114'>
      <listen type='address' address='192.168.1.114'/>
      <image compression='off'/>
</graphics>
<graphics type='egl-headless'>
      <gl rendernode='/dev/dri/renderD128'/>
</graphics>

address和port为spice监听地址,按需修改;注意/dev/dri/renderD128改成你实际的显卡路径;video配置不要改,还是virtio

最后启动虚拟机即可,此时virt-manager上已经可以看到画面;进入系统可以看到显卡这项已经是virgl

开启rdp

打开设置-系统-远程桌面-远程登陆,设置后即可用Windows自带的远程桌面连接(mstsc)进行连接

如果安装了xrdp,记得卸载

连接后会提示连接不安全:

如果只在局域网环境可以忽略,否则建议按如下操作配置:

打开mstsc,输入IP:端口后先不要连接,打开下面的显示选项,点击连接设置-另存为

找到刚才保存的.rdp文件,用记事本编辑,把第一行的use redirection server name:i:0替换为(没有的话就添加)

use redirection server name:i:1

最后双击.rdp文件连接即可

连接后打开chromium,访问chrome://gpu,应该能看到很多Hardware accelerated字样

(完)

啊什么,你还没配置内网穿透?那快去看看这篇超级棒的内网穿透方案介绍()

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇