Solved Low Screen resolution for FreeBSD 14.3Release VMware Fusion guest on Arm Host

When using VMware Fusion (latest version) on an Arm host (Apple Silicon), FreeBSD 14.3Release works well, multiple desktops are stable and blazing fast (e.g. KDE 6, Gnome, XFCE). Over XRDP I see a full 5k resolution remotely, but I am stuck at 1024x768 locally. Not the end of the world, but a bit of an inconvenience, if anyone has suggestions.

Since this is an Arm64 not an x86 system, some of the usual stuff that works on x86 hardware did not work.

Tried enabling open-vmtools guest additions in rc.conf to no avail.
xrandr shows: min/max/current all at 1024x768 with default connected primary as 1024x768+0+0 0mm 0mm

Any help appreciated
 
I think you need UEFI booting correct? scfb settings in /usr/local/etc/X11/xorg.conf.d/20-video.conf

What you can do is stop at the Loader Screen and go to loader prompt. (Beastie Menu #3)
Type the command gop list to show video modes available. Then use gop set mode $ to set a mode.

This setting is the resolution the EFI Framebuffer will use on the command prompt.
On ARM64 FreeBSD 14.3-R The mode '1024x768' is all you get.
It seems this only applies to ARM64 and not the same as AMD64 where GOP LIST usually has several modes.

When you use the generic SCFB driver for Xorg it uses the same video resolution as the EFI Framebuffer / GOP mode.
The same goes for AMD64. The only difference is when you load video driver like i915kms you can have a different Xorg resolution setting than your GOP command prompt resolution.
SCFB is bound to GOP.

That has been my experience.
Why ARM64 GOP has more limited resolutions than AMD64 GOP is the question.
AMD64 GOP gets its settings from BIOS
ARM64 GOP gets its settings from u-boot in some cases.
I am unsure how the EDK2 bootloader GOP video resolutions apply here. Maybe more GOP modes? I have not used it.
 
I think you need UEFI booting correct? scfb settings in /usr/local/etc/X11/xorg.conf.d/20-video.conf

What you can do is stop at the Loader Screen and go to loader prompt. (Beastie Menu #3)
Type the command gop list to show video modes available. Then use gop set mode $ to set a mode.

This setting is the resolution the EFI Framebuffer will use on the command prompt.
On ARM64 FreeBSD 14.3-R The mode '1024x768' is all you get.
It seems this only applies to ARM64 and not the same as AMD64 where GOP LIST usually has several modes.

When you use the generic SCFB driver for Xorg it uses the same video resolution as the EFI Framebuffer / GOP mode.
The same goes for AMD64. The only difference is when you load video driver like i915kms you can have a different Xorg resolution setting than your GOP command prompt resolution.
SCFB is bound to GOP.

That has been my experience.
Why ARM64 GOP has more limited resolutions than AMD64 GOP is the question.
AMD64 GOP gets its settings from BIOS
ARM64 gets its settings from u-boot in some cases. I am unsure how EDK2 video resolutions apply here. Maybe more GOP modes?
This is really interesting and works as described. Is it fair to assume this only applies to the console/terminal (tty) or also to the desktop (e.g. kde Plasma)?

credit to vermaden for the fix below that I implemented on this Arm VM. seems to work as expected.

I was able to solve the desktop issue by forcing it to 1080P by adding the following to /boot/loader.conf file inside FreeBSD VM:

kern.vt.fb.default.mode="1920x1080"
efi_max_resolution="1920x1080"
vbe_max_resolution="1920x1080"
 
Back
Top