Jump to content

DMI/SMBIOS editing in VMware with EFI firmware?


6 posts in this topic

Recommended Posts

Anyone know of any way to edit DMI/SMBIOS data on a EFI machine after using one of the unlockers on VMware?

Or where VMware gets the info from? The host machine?

 

I can't find any option in VMware and don't think it's possible to boot into Chameleon.

Link to comment
Share on other sites

Anyone know of any way to edit DMI/SMBIOS data on a EFI machine after using one of the unlockers on VMware?

Or where VMware gets the info from? The host machine?

 

I can't find any option in VMware and don't think it's possible to boot into Chameleon.

 

The SMBIOS used in the guest is embedded in the hypervisor. AFAIK there's no host VMX setting to change it.

 

The only way to extend the EFI firmware is to write your own EFI programs that can be run from the EFI boot menu or shell.

 

I don't know about any existing EFI program to alter the SMBIOS loaded in RAM before the kernel runs.

 

Chameleon doesn't have an EFI loader like grub does.

 

If you want to boot Chameleon, you have to use legacy bios in the virtual machine. When you use guestos darwin with legacy bios, it restricts you to booting from a CD drive. You can't boot from a hard drive.

You can use guestos freebsd-64 instead with Chameleon. To do this, you may need to manually set the busratio and bus frequency from the VMX file, and probably use fakesmc - not sure whether virtual smc device works with freebsd. You may also need the PS/2 mouse and keyboard drivers, as the virtual USB ones may not work.

 

Added: There are some VMware backdoor functions related to this

#define   BDOOR_CMD_PATCH_SMBIOS_STRUCTS	 37 /* CPL 0 only. */
#define   BDOOR_CMD_PATCH_ACPI_TABLES		43 /* CPL 0 only. */

but it's undocumented how to use them. A current list of backdoor functions can be found in the open VM tools project.

Link to comment
Share on other sites

The EFI ROMs can be extracted and I believe the information is in them. I have uploaded them to http://www.mediafire.com/?psda6i0rsns4odb from Windows Workstation 8.0.0. If you modify them you can use either:

 

efi32.filename = "path to file"

efi64.filename = "path to file"

 

There are tools for looking inside the BIOS e.g. xfv-3. However not sure exactly how to re-compress and build the new BIOS.

Link to comment
Share on other sites

Thanks both of you. I found [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] and XPC are EFI bootloaders, that patch the SMBIOS. I tried them, but they're made to be booted from BIOS and DUET.

The source isn't too big and I think I should be able to port or fix them.

 

I'll try that before attempting to modify the EFI firmware binaries, which sounds pretty difficult.

Link to comment
Share on other sites

  • 2 weeks later...

How is this progressing? I am in sort of exotic setup also.

I use VMDirectPath to passtrough a Radeon 6870 to a virtual machine. (Works great)

The only thing is that it doesn't reconize apple vda. (hardware decoding) Plex/xmbc uses this. First I thought because it was just the name in the videocard with the ATI Kexts (System Profiler) (6xxx Series). So added the bin image of my rom to ATY_Init and it modded it to ATI Radeon 6870. XBMC crashed if VDA is enabled before, now it doesn't but still uses CPU.

When I use [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] (the tony lion iso thing) with legacy bios it works fine (Playback in Plex) and everything is more speedy. (MacPro 3,1 SMBios) Though it has too many issues.

 

Though it should be nice if I could make a 100% EFI Virtual machine Mediacenter so I can use my Home Server even for playback :-). (ESXi 5.0)

Link to comment
Share on other sites

  • 8 months later...

I know this is a very old thread.... but I`m trying to get iCloud working on ML with in ESXi I`m pretty sure the issue is with serial # and model identifier.

Interestingly iCloud works fine on vmware workstation, but on ESXi I get "this apple id is valid but is not an iCloud account" when I change in VMX file the smbios.reflecthost = "True" I get a different error: "you cant sign in at this time, try signing in again".

 

I think I might be able to fix this via SMBios settings, but how do I modify this via VMX or anything else ? Also my CPU shows up as Unknow, I think this needs to be changed as well. Please help

Link to comment
Share on other sites

 Share

×
×
  • Create New...