I run a virtualized automation lab via VMWare Fusion. This lab is used to QA test Mac software. I have dozens of VMs running on a variety of Mac hardware using VMWare Fusion 6.0.2. The problem I am seeing is that the Mavericks VMs have their screen resolution reset to 1024x768 upon every reboot and that is the only resolution available in the System Preferences Display panel.
The way I set up VMs is like so:
1. Using the VMWare Fusion app create a new VM and install the operating system.
2. Install VMWare Tools in the guest. Restart the VM.
3. Configure the guest OS with my settings. This always includes setting the screen resolution to something above 1400x1050. I do this by stretching the window in the VMWare Fusion application or by setting the resolution via System Preferences.
4. Shutdown the VM and make a copy of it. This copy is my default state.
In actual use after that the VMs are run headless using vmrun with the nogui argument. For all versions of OS X VMs the resolution stays the same when the VM is restarted. For Mavericks VMs the resolution is changed to 1024x768.
For all other OSes multiple resolutions show up in the System Preferences Display panel. For Mavericks only that one resolution appears in the Scaled options.
I have tried the steps in KB 1003:
but that did not fix the problem.
I have tried turning 3d acceleration on and off and the problem exists in both cases. Changing the resolution by resizing the window while using VMWare Fusion app works fine but that is not possible when running headless.
Tech support via phone suggested I post this problem to the community and see if there are any answers here. Thanks in advance.
Message was edited by: AzironaZack to add more details.
Is there any chance of VMWare adding this workaround solution to a KB article, or (even better) incorporating it into an update to VMWare Tools? Currently, I'm at 95% of what I need (since I'm not using the "nogui" option), but it's annoying to have to resize after each restart.
At least, by setting the max width and height of the virtual display, I can stretch out the window beyond what I need and it'll have the correct dimensions when it shrinks back down, instead of playing around with resizing the window a pixel or two at a time until it's right.
The issue is internally tracked by bug 1162641. We hope to be able to fix it soon.
Hi AZ,
Would love to get a copy of your code if you're still sharing. With no VMware bugfix I guess this is all we can do for now. Thanks!
Sure, send me your email address and I'll send you the compiled application. If you want the code I can send that too but you'll need to compile it yourself.
Zack
Thanks! Please use cdrop at sanssome dot com. Appreciate the help! Oh, and both compiled and source would be good to have.
Done. Good luck!
I would appreciate the code as well. Thanks! billbrasky66 at gmail dot com.
Hi AzironaZack, could you please send me a copy as well? files at santarelli dot net.
Thank you so much!
Is there any reason VMWare or AzironaZack can't post the file someplace where people who find this thread can download it, instead of emailing it to everyone?
Could I also please get access to this little piece of code? Would help me greatly!
wolvyreen at gmail dot com
I've also found that switching from the VmwareGfx.kext driver to the open source VMSvga2.kext driver works as well! It adds back in all of the resolution options under "scaled".
Hi, please could you also share the program with me at temp1 at olij.co.uk?
Thanks.
Done! Good luck.
I've put the utility up where anyone can access it. It's available at:
http://www.zackswagon.com/random/VMWareFusionSetScreenResolutionPack.zip
Good luck!
Care to share the source code as well?
Note that in the Mac OS Tool that are bundled with Fusion 7.1, a VM will now remember its last graphics resolution across a power cycle. So the program should not be needed anymore.
We store that resolution in the VM's EFI NVRAM, so it should also be remembered in VM snapshots.
To programmatically set the last graphics resolution to 0xmnklijgh x 0xuvstqrop, issue the following commands in the Mac OS VM:
sudo nvram AC20C489-DD86-4E99-992C-B7C742C1DDA9:width=%gh%ij%kl%mn
sudo nvram AC20C489-DD86-4E99-992C-B7C742C1DDA9:height=%op%qr%st%uv
then restart the Mac OS guest.
Thank you! The executables work great when I open them in the GUI, but I'm having trouble getting them to become persistent / run at startup. I've updated the plist so that the filename and username / paths are correct and I've also updated permissions and checked the owner but to no avail. Is this something to do with Yosemite?
I'm using 7.1 but I still have a problem making the resolutions persistent. Can you expand a little on your post? What is: 0xmnklijgh x 0xuvstqrop?
Thanks,
Sorry, ignore me! - I edited and installed the plist on the wrong machine! Working like a charm now.
> What is: 0xmnklijgh x 0xuvstqrop?
This is the display resolution you want, with each number written in hexadecimal.