树莓派4 Debian Bookworm 64位系统VNC会话中Vulkan提示无DRI3支持的解决方法求助
树莓派4 Debian Bookworm 64位系统VNC会话中Vulkan提示无DRI3支持的解决方法求助
我现在用的是树莓派4,装的是最新版Debian Bookworm 64位系统,需要在VNC会话里使用Vulkan。当直接接屏幕的时候一切正常:运行vkcube会弹出一个带3D旋转立方体的窗口。但在VNC会话里运行同样的命令就失败了,vkcube会返回"vulkan: no DRI3 support detected..."。我的VNC会话是用TightVNC启动的。
我对比了两种情况下vulkaninfo的输出,唯一的区别是接屏幕时,在Presentable Surfaces部分会显示两个GPU,而VNC会话里只有一个。多出来的那个GPU信息如下:
GPU id : 0 (V3D 4.2.14): Surface types: count = 2 VK_KHR_xcb_surface VK_KHR_xlib_surface Formats: count = 2 SurfaceFormat[0]: format = FORMAT_B8G8R8A8_SRGB colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[1]: format = FORMAT_B8G8R8A8_UNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR Present Modes: count = 4 PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_RELAXED_KHR VkSurfaceCapabilitiesKHR: ------------------------- minImageCount = 3 maxImageCount = 0 currentExtent: width = 256 height = 256 minImageExtent: width = 256 height = 256 maxImageExtent: width = 256 height = 256 maxImageArrayLayers = 1 supportedTransforms: count = 1 SURFACE_TRANSFORM_IDENTITY_BIT_KHR currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR supportedCompositeAlpha: count = 2 COMPOSITE_ALPHA_OPAQUE_BIT_KHR COMPOSITE_ALPHA_INHERIT_BIT_KHR supportedUsageFlags: count = 6 IMAGE_USAGE_TRANSFER_SRC_BIT IMAGE_USAGE_TRANSFER_DST_BIT IMAGE_USAGE_STORAGE_BIT IMAGE_USAGE_COLOR_ATTACHMENT_BIT IMAGE_USAGE_INPUT_ATTACHMENT_BIT IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT VkSurfaceCapabilities2EXT: -------------------------- supportedSurfaceCounters: None VkSurfacePresentModeCompatibilityEXT: ------------------------------------- presentModeCount = 1 pPresentModes: count = 1 VkSurfacePresentScalingCapabilitiesEXT: --------------------------------------- supportedPresentScaling: None supportedPresentGravityX: None supportedPresentGravityY: None minScaledImageExtent: width = 256 height = 256 maxScaledImageExtent: width = 256 height = 256 VkSurfaceProtectedCapabilitiesKHR: ---------------------------------- supportsProtected = false
我猜测应该在启动VNC服务器的时候指定这个额外的GPU,但不知道具体怎么操作。
目前我的VNC服务器是通过systemctl启动的,对应的.service文件内容如下:
[Unit] Description=Open a virtual session on boot with user "capteur" After=multi-user.target [Service] Type=forking User=capteur ExecStartPre=sleep 20 ExecStart=vncserver [Install] WantedBy=multi-user.target
xstartup脚本是默认的:
#!/bin/sh xrdb "$HOME/.Xresources" xsetroot -solid grey #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #x-window-manager & # Fix to make GNOME work export XKL_XMODMAP_DISABLE=1 /etc/X11/Xsession
最后,我看到有相关问题提到可能和/etc/X11/xorg.conf.d有关,但自己没找到解决办法。我这个目录里只有一个默认文件,内容是:
Section "OutputClass" Identifier "vc4" MatchDriver "vc4" Driver "modesetting" Option "PrimaryGPU" "true" EndSection
我还注意到/etc/X11/目录下有两个文件vncserver-virtual-vnc.conf和vncserver-virtual-dummy.conf,也许需要修改这两个文件?
有没有办法在VNC会话里启用DRI3?我到底漏掉了什么步骤?
希望有人能帮我解决这个问题,谢谢!
注:因为不确定这是树莓派专属问题还是通用Linux问题,我在树莓派论坛也发了一模一样的帖子,如果那边解决了我会更新这里,反之亦然
备注:内容来源于stack exchange,提问作者Eddie_r
相关产品推荐
相关产品推荐

