Looking glass是不是kvm上最好的共享显示器方案了?
本帖最后由 塔奇克马 于 2023-7-3 16:33 编辑随便说说:
最近继续鼓捣KVM虚拟机
环境:Ubuntu 22.04 STL 2080TI解锁了VGPU支持
我一直在找一种流畅的控制虚拟机Windows的方案,但是每个都不完美
免费的流畅度 本地自建RustDesk > Nomachine > RDP > VNC
这些是远程控制端,专门给网络优化的,所以画质帧数都是可以牺牲的,而且也并不流畅,本地控制我不需要考虑这个网络问题,这些都是不行的,
Spice GL_virtio 这个不知道怎么样了,实现一部分GPU功能到windows类似VM的虚拟显卡,有VGPU了不可能考虑这种代价偏大的方案
VNC spice 直通GPU方案
上面这两行不适合我,我是VGPU是完整的支持各种功能的所以不行的,也不可能用直通方案.
然后随便找..发现了looking glass..支持直通/VGPU/Gvt
直接打洞实现内窥镜功能,通过共享一部分内存32M+来把画面传给host,其他功能通过spice通讯实现,这种肯定要比网络实现好得多想都不用想
那么还有其他方案吗?
我先做个记录:
官网关于安装部分非常详细的,这里只是记录一部分注意事项:
官网中使用vga显示,实际上应该设置成none,没有显示,控制可以用RDP等解决
为了避免其他问题,客户端源码包和host端版本号要一致,在download页面Bleeding Edge下载最新的源码编译和host端程序
我装完了无法听到windowsguest的声音,无法解决,最终使用了PulseAudio穿透方案,Aur Wiki上的教程貌似不完整,这里做下记录
修改 /etc/libvirt/qemu.conf 中 user = "你的用户名"
virsh edit 你的虚拟机名字
头部修改为
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
并且加入如下的配置(在最后一个</devices>之后,</domain>之前):
<qemu:commandline>
<qemu:arg value='-device'/>
<qemu:arg value='ich9-intel-hda,bus=pcie.0,addr=0x1b'/>
<qemu:arg value='-device'/>
<qemu:arg value='hda-micro,audiodev=hda'/>
<qemu:arg value='-audiodev'/>
<qemu:arg value='pa,id=hda,server=unix:/run/user/1000/pulse/native'/>
</qemu:commandline>
参考了这位的方案
在 /etc/apparmor.d/abstractions/libvirt-qemu 中添加 /run/user/1000/pulse/native rw,
1000是你的用户ID,如果必要的话改为你的用户ID,用户ID可以通过id命令查看。
systemctl restart libvirtd.service
systemctl --user restart pulseaudio.service
直接用窗口可以随便拉伸很不爽,所以用一些参数比如:
looking-glass-client app:shmFile=/dev/shm/looking-glass win:autoResize win:size=1920x1080 win:dontUpscale win:shrinkOnUpscale
End; 延迟如何?要不试试Sunshine或者Parsec这类的Streaming软件? 痴货 发表于 2023-6-30 13:33
延迟如何?要不试试Sunshine或者Parsec这类的Streaming软件?
和实机一样无区别,所有经过网络都不行,可以淘汰了 搜了下发现个挺有用的网页,里面涉及到了一些Looking Glass的配置
https://asus-linux.org/wiki/vfio-guide/#option-3-looking-glass-setup 本帖最后由 塔奇克马 于 2023-6-30 14:21 编辑
痴货 发表于 2023-6-30 13:46
搜了下发现个挺有用的网页,里面涉及到了一些Looking Glass的配置
官网文档和AUR里有的
看了下
根据配置FPS应该能跑好几百
分配内存影响分辨率,(128MB)4K打底不知道能不能分配到8K分辨率,内存频率对这个性能影响多大未知 痴货 发表于 2023-6-30 13:33
延迟如何?要不试试Sunshine或者Parsec这类的Streaming软件?
Looking glass延迟应该是一帧
—— 来自 S1Fun 装个 DisplayLink USB 显卡,输出到显示器再外接鼠键 痴货 发表于 2023-6-30 13:46
搜了下发现个挺有用的网页,里面涉及到了一些Looking Glass的配置
补充下:如果有人用他的脚本建议把
/etc/libvirt/hooks/qemu.d/win10/vm-vars.conf
中
VM_MEMORY=8388608
这个要比虚拟机需求大2%-10%不然会导致hugepages不够而被拒绝启动
比如你需要8192 count hugepages,那么最好8800之后转换成kib得到18022464
那么
VM_MEMORY=18022464
-----------
原文中大概是没有这个说法 看玻璃用的共享内存,延迟还是有些的,当然秒杀网络栈型远程桌面是必然的
之前直通用过,不过虚拟机还是麻烦,现在只用lutris啥的玩游戏了 我的vm视频就开了virtio。vga我记得最新版也是支持的但我自己没有用。这个的好处是如果lg的服务挂了的话还是能在系统内调试,不过我一般是直接rdp了。
声音不需要用pulseaudio穿透,要装spice windows client
同时lgc也支持配置文件,这样执行的时候就不需要写那么多参数。我自己的配置就很简单:
$ cat .looking-glass-client.ini
shmFile=/dev/kvmfr0
host=192.168.9.12
port=5901
micDefault=allow
micShowIndicator=no
不要叫水狗做主人 发表于 2023-7-2 21:58
我的vm视频就开了virtio。vga我记得最新版也是支持的但我自己没有用。这个的好处是如果lg的服务挂了的话还 ...
spice-vdagent-x64-0.10.0
virtio-win-gt-x64
virtio-win-guest-tools
spice-guest-tools-latest
都装了,没用的,是这几个中的一个吗? 塔奇克马 发表于 2023-7-2 08:57
spice-vdagent-x64-0.10.0
virtio-win-gt-x64
virtio-win-guest-tools
驱动直接用fedora的最新iso:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.229-1/
libvirt我不清楚是怎么配置的,我用proxmox要加上`-spice 'addr=0.0.0.0,port=5901,disable-ticketing=on'`让spice端口可以网络访问,然后你要在lgc里面指定vm的ip
本帖最后由 塔奇克马 于 2023-7-3 16:32 编辑
不要叫水狗做主人 发表于 2023-7-3 15:39
驱动直接用fedora的最新iso:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archiv ...
你看看吧,反正里面一堆说正常这正常就是没声音
我要不装的话里面不会说我连上agent的,反正我没解决...什么都试过了,我就不解决了吧,
感觉这个选项disable-ticketing=on也没什么用,spice默认接口不需要任何参数的,本地连接不需要密码的
塔奇克马 发表于 2023-7-3 16:06
你看看吧,反正里面一堆说正常这正常就是没声音
我要不装的话里面不会说我连上agent的,反正我没解决... ...
$ looking-glass-client
559338722 main.c:1785 | main | Looking Glass (B6)
559338743 main.c:1786 | main | Locking Method: Atomic
559338843 cpuinfo.c:37 | lgDebugCPU | CPU Model: AMD Ryzen 7 3700X 8-Core Processor
559338853 cpuinfo.c:38 | lgDebugCPU | CPU: 1 sockets, 8 cores, 8 threads
559340541 config.c:559| config_load | Loading config from: /home/excalibur/.looking-glass-client.ini
559348601 main.c:1162 | lg_run | Using font: /nix/store/2qrasnzp0m1k640dw3phiwykzrfvwf31-dejavu-fonts-2.37/share/fonts/truetype/DejaVuSansMono.ttf
559348685 ivshmem.c:128| ivshmemOpenDev | KVMFR Device : /dev/kvmfr0
559360893 audio.c:159| audio_init | Using AudioDev: PipeWire
559360914 ps.c:245| purespice_connect | Connecting to socket 192.168.9.12:5901
559384058 rsa.c:178| rsa_encryptPassword | Using Nettle
559384478 ps.c:268| purespice_connect | Connected
559384604 agent.c:103| agent_connect | Connected to the spice guest agent
559384625 channel_main.c:167| onMessage_mainName | Guest name: windows
559384639 channel_main.c:183| onMessage_mainUUID | Guest UUID: 9856c5f6-f455-472e-ba0a-5c1b425a0ab2
559396642 ps.c:644| ps_connectChannel | RECORD channel connected
559408445 ps.c:644| ps_connectChannel | PLAYBACK channel connected
559413962 ps.c:644| ps_connectChannel | INPUTS channel connected
559414097 egl.c:267| egl_initialize | Double buffering is off
559414107 main.c:1116 | tryRenderer | Using Renderer: EGL
559414116 channel.c:312| onMessage_notify | keyboard channel is insecure
559416123 gl.c:58 | waylandGetEGLDisplay | Using eglGetPlatformDisplay
559440785 egl.c:828| egl_renderStartup | Single buffer mode
559442419 egl.c:855| egl_renderStartup | EGL : 1.5
559442432 egl.c:856| egl_renderStartup | Vendor: AMD
559442435 egl.c:857| egl_renderStartup | Renderer: AMD Radeon RX 460 Graphics (polaris11, LLVM 15.0.7, DRM 3.52, 6.3.9)
559442440 egl.c:858| egl_renderStartup | Version : OpenGL ES 3.2 Mesa 23.0.3
559442445 egl.c:859| egl_renderStartup | EGL APIs: OpenGL OpenGL_ES
559442455 egl.c:930| egl_renderStartup | Debug messages disabled, enable with egl:debug=true
559471581 eglutil.c:35 | swapWithDamageInit | Using EGL_KHR_swap_buffers_with_damage
559477525 main.c:1566 | lg_run | Guest Information:
559477542 main.c:1567 | lg_run | Version: B6
559477547 main.c:1588 | lg_run | UUID : 9856c5f6-f455-472e-ba0a-5c1b425a0ab2
559477553 main.c:1597 | lg_run | CPU Model: AMD Ryzen 7 3700X 8-Core Processor
559477565 main.c:1598 | lg_run | CPU : 1 sockets, 8 cores, 8 threads
559477575 main.c:1600 | lg_run | Using : DXGI Direct3D 11
559477581 main.c:1636 | lg_run | OS : Windows
559477588 main.c:1638 | lg_run | OS Name: Windows 10 Pro (Build: 22621)
559477592 main.c:1660 | lg_run | Starting session
559478399 main.c:548| main_frameThread | Using DMA buffer support
559654476 main.c:698| main_frameThread | Format: FRAME_TYPE_BGRA 3440x1440 stride:3456 pitch:13824 rotation:0
559656543 main.c:698| main_frameThread | Format: FRAME_TYPE_BGRA 3440x1440 stride:3456 pitch:13824 rotation:0
我这边看到有连接RECORD和PLAYBACK channel,你的log里面没有
不过我看到你的guest version和我的不一样。你的guest是自己编译的么?是的话用正式release的版本看看 不要叫水狗做主人 发表于 2023-7-10 21:51
我这边看到有连接RECORD和PLAYBACK channel,你的log里面没有
不过我看到你的guest version和我的不一样 ...
是自己编译的最新版本,不搞了玩够了,过一段时间再说
页:
[1]