塔奇克马 发表于 2023-6-30 13:00

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;

痴货 发表于 2023-6-30 13:33

延迟如何?要不试试Sunshine或者Parsec这类的Streaming软件?

塔奇克马 发表于 2023-6-30 13:34

痴货 发表于 2023-6-30 13:33
延迟如何?要不试试Sunshine或者Parsec这类的Streaming软件?
和实机一样无区别,所有经过网络都不行,可以淘汰了

痴货 发表于 2023-6-30 13:46

搜了下发现个挺有用的网页,里面涉及到了一些Looking Glass的配置

https://asus-linux.org/wiki/vfio-guide/#option-3-looking-glass-setup

塔奇克马 发表于 2023-6-30 13:56

本帖最后由 塔奇克马 于 2023-6-30 14:21 编辑

痴货 发表于 2023-6-30 13:46
搜了下发现个挺有用的网页,里面涉及到了一些Looking Glass的配置
官网文档和AUR里有的

看了下
根据配置FPS应该能跑好几百

分配内存影响分辨率,(128MB)4K打底不知道能不能分配到8K分辨率,内存频率对这个性能影响多大未知

2stage 发表于 2023-7-1 07:33

痴货 发表于 2023-6-30 13:33
延迟如何?要不试试Sunshine或者Parsec这类的Streaming软件?

Looking glass延迟应该是一帧

—— 来自 S1Fun

Midnight.Coup 发表于 2023-7-1 11:37

装个 DisplayLink USB 显卡,输出到显示器再外接鼠键

塔奇克马 发表于 2023-7-2 15:29

痴货 发表于 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
-----------
原文中大概是没有这个说法

tsubasa9 发表于 2023-7-2 16:24

看玻璃用的共享内存,延迟还是有些的,当然秒杀网络栈型远程桌面是必然的
之前直通用过,不过虚拟机还是麻烦,现在只用lutris啥的玩游戏了

不要叫水狗做主人 发表于 2023-7-2 21:58

我的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 22:57

不要叫水狗做主人 发表于 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-3 15:39

塔奇克马 发表于 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:06

本帖最后由 塔奇克马 于 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-10 21:51

塔奇克马 发表于 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:52

不要叫水狗做主人 发表于 2023-7-10 21:51
我这边看到有连接RECORD和PLAYBACK channel,你的log里面没有
不过我看到你的guest version和我的不一样 ...

是自己编译的最新版本,不搞了玩够了,过一段时间再说
页: [1]
查看完整版本: Looking glass是不是kvm上最好的共享显示器方案了?