VMware Communities
bmason111
Contributor
Contributor

"hw.model" flag in .vmx files not taking effect. Need a windows VM to see a specifc model of PC... help.

This is my first post in the VMWare forum, though I have been using VMWare products since their version 1 was released so long ago.

My problem may be fairly obscure, however the underlying mechanism that is failing for me affects a wide scope of users.

I am designing a custom FPGA-based tablet human interface device. Sort of similar to a WACOM Cintiq display/drawing tablet...

In this project I am using tablet digitizer boards originally designed for the HP Elitebook 2740p.

This matters because I have received an updated firmware from WACOM designed for these digitizers, which enables UART among

other things.

The problem is that the firmware updates are hardcoded to detect the system-id and board-id using the "wmic CSPRODUCT" command.

This means that unless I can modify the SMBIOS of a system to fool the firmware updater, using a VM to masquerade these identifiers

is the only solution other than purchasing a very expensive tablet PC just to update the digitizers.

Using VMWare workstation 10 to create a new Windows XP Virtual machine, and adding to VM's .vmx file as follows:

board-id.reflectHost = "FALSE"
board
-id = "0x7007"
hw
.model.reflectHost = "FALSE"
hw
.model = "HP Elitebook 2740p Tablet PC"
smbios.reflectHost = "FALSE"


NONE OF THESE FLAGS ARE TAKING EFFECT WITHIN THE VM!


I have performed at least a dozen installs and edited the config file. I have tried using a friend's private cloud with VSphere,

VMWare Workstation 10, and VMWare fusion 5 on a friend's mac. None of them seem to interpret those flags.


When I query the board-id or system-id from within the VM itself (wmic CSPRODUCT), I receive the following:

Board ID: 440BX-Desktop

Model: VMware Virtual Platform

System ID: VMware-56

etc.etc.etc


It's not using the values I specifed or giving me any failure errors when I start the VM. Help.


Why bother providing documentation on these .vmx flags if they aren't going to be active?!?!?!?!?!

I understand most folks are using it to <removed>

This is a much more useful and legitimate application of those flags, and I cannot comprehend why they are not making a shred of difference

here. Please advise, and thanks for the very useful product in the first place Smiley Wink

Message was edited by: Wil van Antwerpen

6 Replies
bmason111
Contributor
Contributor

Just an update, I have definitely checked over the .vmx file and there are no duplicate flags or anything else wrong. The flags for board ID simply aren't working...

I've taken the liberty of extracting the BIOS ROM from the vmware-vmx.exe executable file and using Pheonix Bios Editor to modify the board and system ID's

in the BIOS ROM itself. Surely this will provide the Windows VM the correct system identifiers to allow the WACOM firmware update to proceed past the

SystemID checks...

I will then append the following flag to my .vmx config file:

bios440.filename = "path to my edited ROM"

I will post feedback if this works, but I should not have to know assembly hooks and firmware editors, the effin flags should work and that's a problem!

If I have to switch to the Xen hypervisor or keep running this modded BIOS just to workaround the flags failing I will use my assembly code editing talents

to help the Xen guys support the board-id and system-id flags better instead of investing money in proprietary products such as this. If I could even help

make the flags more functional for uses other than spoofing apple hardware, I'd gladly code some stuff and submit it to your GIT or whatever you use.

Otherwise I am just gonna continue ripping apart the BIOS image until it works and post my brutish solution here and in the blogosphere...

Hope I can find a politically correct way to make some contributions, or at least a solution/workaround.

Thanks Smiley Wink

0 Kudos
bmason111
Contributor
Contributor

Well, editing the VMWare BIOS ROM did the trick, I was able to change the DMI table with Pheonix Bios Editor to match the values I needed.

In this case, it was changing the 'System Product Name' string to '7007' instead of 'VMWare Virtual Platform' and saving the new ROM.

The .vmx config flag to point to the custom BIOS ROM works at least...

I would still like to know why the other flags do not work. Are they hard coded in the DSDT table of the VMWare BIOS to only work if the OSI is

detected as "darwin" or "FreeBSD" or such, or is this just a bug?

Surely a lot of other people would love to know such details when a new config-flag is introduced. If this is indeed the case perhaps somebody

might update the docs?

Either way I will look back here for any developments. I am pretty sure hexediting the BIOS ROM and such is not how we are supposed to

accomplish tasks like this 😕

0 Kudos
bmason111
Contributor
Contributor

In case anyone is wondering how to query these values from within a Windows guest, the command to show you the SMBIOS product data is as follows:

-> wmic CSPRODUCT

it will report the SMBIOS Fields and System ID (UUID)

wila
Immortal
Immortal

Hello bmason111,

First off, I'm glad to hear you found a solution and welcome at the community forums from VMware

Please do not cross-post your question to many different groups. I have removed the identical posts you put out at vSphere Web Client SDK

and

VMware vCenter™

as the question doesn't even relate to either of those areas.

Besides that when you signed up to the forums you agreed to Community Terms of Use which has paragraph i)

i. Do not use the Community to spam other users, including sending identical and irrelevant submissions to many different discussion groups, mailing lists or communities.

another paragraph in there is:

f. Do not post any instructions, software or other materials that would allow participants or third parties to harm other users' computers or to inappropriately access software or websites.

Which caused me having to edit one of your posts.

Thank you for understanding.

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
bmason111
Contributor
Contributor

Sorry, wasn't aware that virtualizing an OSX system was against TOS... I only mentioned it because there are a lot of instructions for using those flags for such here in the forums. Not really something I care about, since my intended purpose for the hw.model and board-id flags has nothing to do with Apple hardware or software.

Also, I posted in the Workstation, Fusion, and meant to post the third in Vsphere not Vcenter. The flags failed to take effect within VM's using all three products. It would figure one of the support groups or forum members might have been more familiar, such as the fusion folks who covered the flags in other forum posts here.

However, I am still curious as to the proper usage of the hw.model and board-id flags in .vmx configuration files. I can't find very comprehensive documentation here outside of the apparently taboo subject which informed me that aforementioned flags even existed.

Can anyone here please point me to proper syntax for these flags, or perhaps enlighten me as to why they wouldn't affect the System and Board ID's on a Windows XP VM?

0 Kudos
wila
Immortal
Immortal

Hi,

Virtualizing OS X isn't against TOS, but posting instructions/hints on how to do so on non apple hardware is as it violates apple's EULA.

bmason111 wrote:

Can anyone here please point me to proper syntax for these flags, or perhaps enlighten me as to why they wouldn't affect the System and Board ID's on a Windows XP VM?

Because those settings are AFAIK for efi and not bios.

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva