VMware Communities
glo
Contributor
Contributor

windows 11 guest does not work on ubuntu host with nvidia graphics driver

I am running ubuntu 20.04 LTS host whith vmware workstation 16.3 and windows 11 guest. This works fine with hosts original and slow nouveau graphics driver. After installing the nvidia-515 graphics driver, windows 11 guest does not show any graphical output (black screen). Workstation app hangs.

This only happens when activating 3d mode (wich I need becaus of 3d app in windows guest).

Any ideas?

 

 

0 Kudos
5 Replies
bluefirestorm
Champion
Champion

On an Ubuntu 20.04 with Turing card, nvidia-510 driver, Windows 11 VM 3D is fine.

If the GPU is Turing or newer, Workstation 16.2.x will use Vulkan, while Pascal or older, Workstation will use OpenGL. It can be forced to use Vulkan if you want to.

Do you have Intel integrated GPU as well that is active? You may want to check both the vmware.log and mksSandbox.log file. Laptops with Intel/Nvidia optimus can behave strangely (at least several years back).

0 Kudos
glo
Contributor
Contributor

System ist desktop with Xeon-E2174G CPU and Nvidia Quadro P1000. Seems to use OpenGL (Nvidia X-Server Settings)and Vulkan according to mksSandbox.log.

After waiting some time, I get the following error in vmware.log:

2022-06-30T06:35:39.658Z In(05) vcpu-0 Tools: [RunningStatus] Last heartbeat value 6 (last received 21s ago)
2022-06-30T06:36:00.163Z In(05) vmx GuestRpcSendTimedOut: message to toolbox-dnd timed out.
2022-06-30T06:37:08.586Z Wa(03) svga The vmx lost its connection to the mksSandbox.
2022-06-30T06:37:08.586Z Wa(03) svga The mksSandbox process may have crashed or hung.
2022-06-30T06:37:08.586Z Wa(03) svga Check the mksSandbox.log and vmware.log for more details.
2022-06-30T06:37:08.586Z Cr(01) svga PANIC: ISBRendererComm: Lost connection to mksSandbox (2713)

mksSandbox does not show any errors:

2022-06-30T06:35:00.276Z Wa(03) mks  Vulkan Renderer: Using Vulkan presentation
2022-06-30T06:35:00.276Z In(05) mks  MKS-HWinMux: Started VK presentation backend.
2022-06-30T06:35:00.279Z In(05) svga  Vulkan Renderer: Creating swapchain with 3 images
2022-06-30T06:35:00.282Z In(05) mks  SWBWindow: Number of MKSWindows changed: 1 rendering MKSWindow(s) of total 2.
2022-06-30T06:35:01.149Z In(05) svga  Vulkan Renderer: Creating swapchain with 3 images
(EOF)

 

 

 

0 Kudos
bluefirestorm
Champion
Champion

I suspect Workstation is/was using the Intel P630 (assuming it is enabled on motherboard UEFI) of the E2174G and not using the Nvidia P1000 when the nouveau driver was installed. Workstation 16 can use Vulkan for Intel Kaby Lake or newer iGPU. Even without a monitor connected to the Intel iGPU, Workstation can still use Intel iGPU as Vulkan render device. Most motherboards let you disable the Intel iGPU at the BIOS/UEFI.

The mksSandbox.log could look like this for getting Vulkan ready. And it will use the first Vulkan device it finds (assuming no prior changes to vmx configuration files).

<timestamp> In(05) mks Vulkan Renderer: VKRDevice_Create trying DISPLAY=:1
<timestamp> In(05) mks Vulkan Renderer: Available Vulkan devices:
<timestamp> In(05) mks Vulkan Renderer: Vulkan Device 0:
<timestamp> In(05) mks Vulkan Renderer: Vendor= 'Intel'
<timestamp> In(05) mks Vulkan Renderer: ID= 0x3e92
<timestamp> In(05) mks Vulkan Renderer: Type= 0x1
<timestamp> In(05) mks Vulkan Renderer: Name= 'Intel(R) UHD Graphics 630 (CFL GT2)'
<timestamp> In(05) mks Vulkan Renderer: Vulkan Device 1:
<timestamp> In(05) mks Vulkan Renderer: Vendor= 'Mesa'
...
<timestamp> In(05) mks Vulkan Renderer: Vulkan Device 2:
<timestamp> In(05) mks Vulkan Renderer: Vendor: 'NVIDIA'
...
<timestamp> In(05) mks Vulkan Renderer: Using device 0 of 3

It shows Using device 0 meaning the Intel iGPU in this example as it is Vulkan Device 0. If the Nvidia is used, it should show instead

<timestamp> In(05) mks Vulkan Renderer: Using device 2 of 3

You could shut down the VM and add the following lines to the vmx configuration file

mks.forceDiscreteGPU = "TRUE"
mks.vk.allowUnsupportedDevices = "TRUE"

The mks.forceDiscreteGPU is so that the dGPU like Nvidia is used. The mks.vk.allowUnsupportedDevices line is to let Workstation use Vulkan with Nvidia P1000 (since it is Pascal) with Nvidia proprietary driver; I think nouveau driver will also require this line even if the GPU is Turing or newer.

Try this first see if it resolves the problem.

I don't know why you are getting the mksSandbox timeout. The default behaviour is Workstation will try Vulkan first and fallback to OpenGL if Vulkan fails (such as having a Pascal GPU without the vmx configuration change). There are other community posts that has this problem and turning off Vulkan rendering makes the problem go away.

mks.enableVulkanRenderer = "FALSE"
mks.enableGLRenderer = "TRUE"

Aside from looking through mksSandbox.log, you can also use nvidia-smi to confirm if the Nvidia GPU is used. You should see mksSandbox process(es) for every running VM with 3D enabled. For Vulkan, the type is C+G, for OpenGL the type is G.

0 Kudos
glo
Contributor
Contributor

Disabling Intel GPU in BIOS solves all the problems. Win11 with 3d works now perfect!

BTW: Changing vmx config is actually not possible, because config file is encrypted because of win11 requirements. Is there a way to decrypt, edit and encrypt the config.vmx?

Many thanks for your help!!!

 

0 Kudos
bluefirestorm
Champion
Champion

To decrypt/re-encrypt the vmx without decrypting the entire VM have a look at this
https://communities.vmware.com/t5/VMware-Fusion-Discussions/Is-there-a-tool-to-allow-editing-of-an-e...

Alternatively, you could add these to /etc/vmware/config (machine-wide) or ~/.vmware/config (user-specific)

Entries in /etc/vmware/config will affect ALL VMs that are on the physical host. This lets you have a setting(s) apply to all VMs without editing individual vmx files. Generally though it would be better to test first on one VM before applying these to /etc/vmware/config.

0 Kudos