configure esxi VM with external monitor

102 views
Skip to first unread message

Арсений Осипов

unread,
Dec 26, 2022, 6:40:42 AM12/26/22
to Android-x86
Hello everyone!

Need an advice about deploying Android 9 x86 on ESXI with passthrough to a PCI video card.
My task is to display a picture on hdmi monitor or monitor emulator so that the remote desktop works thru Anydesk / Teamviewer.
As I understand I need to set sorrect video mode.
What parameters of the virtual machine and kernel should I set?

Firstly, I tried with standard kernel and no 3d.
With nomodeset xforcevesa in the kernel, as advised in most cases, the image output in the ESXI web console works, but the monitor has a black screen, Anydesk hangs in the status - waiting for the image.
Then I tried to specify UVESA_MODE=1024*768 instead, the boot screen with the word Android started to be displayed on the monitor for a couple of seconds, but then the virtual machine crashes.

Then I tried with kernel 4.9 and also with 3d.
Same kernel parameters as above, both provided similar resuts - there is an image in webconsole, but external monitor remains black. 

Thanks in advance for any hint.

crw

unread,
Dec 26, 2022, 9:21:47 AM12/26/22
to Android-x86
You have to use video=1024x768 kernel parameter. 
But ideally you shouldn't need to manually set video=, Android hwcomposer/gralloc should already determine a proper resolution based on the EDID of the monitor.
Make sure you passthrough only a supported AMD /Intel GPU and not Nvidia GPU, Android x86 has a old mesa and kernel so some very recent GPUs might not work too.

Арсений Осипов

unread,
Dec 26, 2022, 3:57:27 PM12/26/22
to Android-x86
Well, I have Intel UHD Graphics 630 video card, so it should be fine based on your advice.
However, video=1024x768 did not help. I am afraid some parameters are missed however.
In fact maybe it's better to split my general question into several small ones:
1) What mode should be used if it matters - EFI or BIOS?
2) Which kernel should be used - standard or 4.9?
3) Should I enable 3d for the video card? Or maybe I should set svga.present to FALSE at all so that video is streamed to external PCI video card only?
4) What parameters should be set to kernel?

понедельник, 26 декабря 2022 г. в 17:21:47 UTC+3, crw:

crw

unread,
Dec 27, 2022, 2:36:15 AM12/27/22
to Android-x86
1) It doesn't matter but I would choose UEFI since grub2 for efi is newer
2) For Intel UHD 630 kernel 4.19 is better.
3) That means the VM is using SVGA3D and not the passthrough physical GPU, in that case use kernel 4.9, only with kernel 4.9 you can get VMware SVGA3D working with 3d acceleration.
4) nomodeset only if you want to boot with software rendering to troubleshoot GPU related issues.  

Арсений Осипов

unread,
Dec 28, 2022, 1:07:46 AM12/28/22
to Android-x86
Finally it works like charm! Thanks tons!!!

So for those who will face similar task, the setup is:
1) EFI mode
2) Standard 4.19 kernel
3) PCI videocard passthrough and svga.present = FALSE in VM configuration parameters
4) video=1024x768 as kernel parameter in /efi/boot/android.cfg in Grub partition (/dev/block/sda1)

вторник, 27 декабря 2022 г. в 10:36:15 UTC+3, crw:
Reply all
Reply to author
Forward
0 new messages