Page 1 of 1

is vboxmanage setextradata SMBIOSAssetTag possible

Posted: 17. Jun 2010, 15:43
by s_k_e_l
Hi
Can I set the SMBIOSAssetTag for a vm using the vboxmanage setextradata commands?

On a real machine I can query the BIOS using WMIC and get returned data.
On a VM that is PXE booting a WinPE 6.1.7600 image I get some information, but not the SMBiosAsset tag that we use on physical machines for naming purposes.

C:\wmictests>wmic csproduct list brief
Caption IdentifyingNumber Name Vendor Version
real:Computer System Product R8PVHR0 7459VTT LENOVO ThinkPad X200
vm: Computer System Product 0 VirtulaBox innotek GmbH 1.2

C:\wmictests>wmic systemenclosure get smbiosassettag
SMBIOSAssetTag
Real: loankit
V: No Instance(s) Available.

I am running VirtualBox 3.2.4 r62467 on a Windows XP host.
The VM to modify will be an XP sp3 image.
It PXE boots from an windows 2003 server (also a vm using Internal Network, intnet) the PCnet-FAST III nic and copies an MDT litetouch image down using the Intel Pro/1000MT desktop nic.
My understanding of this is because only the PCnet-FAST III nic is able to PXE boot, but it isn't supported under the WinPE 6.1.7600 environment I'm using. So I have to use both nics.

I have searched the forum and generally queried on search terms such as virtualbox setextradata. On the forums there seemed to be mention of unpublished settings that were not in the user manual (pdf version which I've checked). I am aware that I may have just missed the settings because of the differences between DMI/SMBIOS, etc and not being overly familiar with any of the tools.

Cheers

Re: is vboxmanage setextradata SMBIOSAssetTag possible

Posted: 17. Jun 2010, 23:33
by Sasquatch
Have you actually tried it?

Re: is vboxmanage setextradata SMBIOSAssetTag possible

Posted: 18. Jun 2010, 12:27
by s_k_e_l
C:\Program Files\Oracle\VirtualBox>VBoxManage setextradata "pxe2" "VBoxInternal/Devices/pcbios/0/Config/DMISMBIOSAssetTag" "loantag"
Oracle VM VirtualBox Command Line Management Interface Version 3.2.4
(C) 2005-2010 Oracle Corporation
All rights reserved.


GUI Dialog
Result Code:
E_FAIL (0x80004005)
Component:
Console
Interface:
IConsole {6375231a-c17c-464b-92cb-ae9e128d71c3}


vbox.log excerpt

00:00:01.266 VMSetError: D:\tinderbox\win-3.2\src\VBox\Devices\PC\DevPcBios.cpp(950) pcbiosConstruct; rc=VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES
00:00:01.279 VMSetError: Invalid configuration for device pcbios device
00:00:01.280 PDM: Failed to construct 'pcbios'/0! VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES (-2801) - A device encountered an unknown configuration value. This means that the device is potentially misconfigured and the device construction or unit attachment failed because of this.
00:00:01.282 VMSetError: D:\tinderbox\win-3.2\src\VBox\VMM\VM.cpp(316) VMR3Create; rc=VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES
00:00:01.282 VMSetError: Unknown error creating VM
00:00:01.283 ERROR [COM]: aRC=E_FAIL (0x80004005) aIID={6375231a-c17c-464b-92cb-ae9e128d71c3} aComponent={Console} aText={Invalid configuration for device pcbios device (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES).
00:00:01.283 Unknown error creating VM (VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES)} aWarning=false, preserve=false
00:00:01.328 Power up failed (vrc=VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES, rc=E_FAIL (0X80004005))

Code: Select all

<?xml version="1.0"?>
<VirtualBox xmlns="http://www.innotek.de/VirtualBox-settings" version="1.9-windows">
  <Machine uuid="{955abbdd-9563-4daf-be92-9a20eebf5b14}" name="pxe2" OSType="WindowsVista" lastStateChange="2010-06-18T10:14:03Z">
    <ExtraData>
      <ExtraDataItem name="GUI/LastCloseAction" value="powerOff"/>
      <ExtraDataItem name="GUI/LastGuestSizeHint" value="640,480"/>
      <ExtraDataItem name="GUI/LastWindowPostion" value="8,60,640,522"/>
      <ExtraDataItem name="GUI/MiniToolBarAlignment" value="bottom"/>
      <ExtraDataItem name="GUI/MiniToolBarAutoHide" value="on"/>
      <ExtraDataItem name="GUI/SaveMountedAtRuntime" value="yes"/>
      <ExtraDataItem name="GUI/ShowMiniToolBar" value="yes"/>
      <ExtraDataItem name="VBoxInternal/Devices/pcbios/0/Config/DMISMBIOSAssetTag" value="loantag"/>
    </ExtraData>
    <Hardware version="2">
      <CPU count="1">
        <HardwareVirtEx enabled="true" exclusive="false"/>
        <HardwareVirtExNestedPaging enabled="true"/>
        <HardwareVirtExVPID enabled="true"/>
        <PAE enabled="true"/>
      </CPU>
      <Memory RAMSize="806"/>
      <Boot>
        <Order position="1" device="Floppy"/>
        <Order position="2" device="DVD"/>
        <Order position="3" device="HardDisk"/>
        <Order position="4" device="None"/>
      </Boot>
      <Display VRAMSize="16" monitorCount="1" accelerate3D="false" accelerate2DVideo="false"/>
      <RemoteDisplay enabled="false" port="3389" authType="Null" authTimeout="5000"/>
      <BIOS>
        <ACPI enabled="true"/>
        <IOAPIC enabled="false"/>
        <Logo fadeIn="true" fadeOut="true" displayTime="0"/>
        <BootMenu mode="MessageAndMenu"/>
        <TimeOffset value="0"/>
        <PXEDebug enabled="false"/>
      </BIOS>
      <USBController enabled="true" enabledEhci="true"/>
      <Network>
        <Adapter slot="0" enabled="true" MACAddress="08002789EBF3" cable="true" speed="0" type="Am79C973">
          <InternalNetwork name="intnet"/>
        </Adapter>
        <Adapter slot="1" enabled="true" MACAddress="080027CA5E90" cable="true" speed="0" type="82540EM">
          <InternalNetwork name="intnet"/>
        </Adapter>
        <Adapter slot="2" enabled="false" MACAddress="080027C14A8D" cable="true" speed="0" type="82540EM"/>
        <Adapter slot="3" enabled="false" MACAddress="080027237D20" cable="true" speed="0" type="82540EM"/>
        <Adapter slot="4" enabled="false" MACAddress="080027B9D111" cable="true" speed="0" type="82540EM"/>
        <Adapter slot="5" enabled="false" MACAddress="080027AD471A" cable="true" speed="0" type="82540EM"/>
        <Adapter slot="6" enabled="false" MACAddress="080027D48186" cable="true" speed="0" type="82540EM"/>
        <Adapter slot="7" enabled="false" MACAddress="08002790B11C" cable="true" speed="0" type="82540EM"/>
      </Network>
      <UART>
        <Port slot="0" enabled="false" IOBase="0x3f8" IRQ="4" hostMode="Disconnected"/>
        <Port slot="1" enabled="false" IOBase="0x3f8" IRQ="4" hostMode="Disconnected"/>
      </UART>
      <LPT>
        <Port slot="0" enabled="false" IOBase="0x378" IRQ="4"/>
        <Port slot="1" enabled="false" IOBase="0x378" IRQ="4"/>
      </LPT>
      <AudioAdapter controller="AC97" driver="DirectSound" enabled="true"/>
      <SharedFolders/>
      <Clipboard mode="Bidirectional"/>
      <Guest memoryBalloonSize="0"/>
      <GuestProperties>
        <GuestProperty name="/VirtualBox/HostInfo/GUI/LanguageID" value="en_US" timestamp="1276856042591029900" flags=""/>
      </GuestProperties>
    </Hardware>
    <StorageControllers>
      <StorageController name="IDE Controller" type="PIIX4" PortCount="2">
        <AttachedDevice type="HardDisk" port="0" device="0">
          <Image uuid="{2d15983f-8443-4181-94b7-0958e2649dec}"/>
        </AttachedDevice>
        <AttachedDevice passthrough="false" type="DVD" port="1" device="0"/>
      </StorageController>
      <StorageController name="Floppy Controller" type="I82078" PortCount="1">
        <AttachedDevice type="Floppy" port="0" device="0"/>
      </StorageController>
    </StorageControllers>
  </Machine>
</VirtualBox>
I am not able to get the machine running. Replacing the pxe2.xml file with one without the specific extrat data is overwritten and I can't currently find out where it pulls the values for it.

Re: is vboxmanage setextradata SMBIOSAssetTag possible

Posted: 18. Jun 2010, 21:16
by Sasquatch
The value is in plain text, last entry of 'extradata':
<ExtraDataItem name="VBoxInternal/Devices/pcbios/0/Config/DMISMBIOSAssetTag" value="loantag"/>
As you just proven, it's not supported ;).

Re: is vboxmanage setextradata SMBIOSAssetTag possible

Posted: 20. Jun 2010, 15:54
by s_k_e_l
I've not given up ..
I've just looked at the source code (possibly not for this version).
http://www.virtualbox.org/browser/trunk ... PcBios.cpp
and a small section near the end of this procedure looks very interesting

Code: Select all

888 	/**
889 	 * @interface_method_impl{PDMDEVREG,pfnConstruct}
890 	 */
891 	static DECLCALLBACK(int)  pcbiosConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
892 	{
893 	    unsigned    i;
894 	    PDEVPCBIOS  pThis = PDMINS_2_DATA(pDevIns, PDEVPCBIOS);
895 	    int         rc;
896 	    int         cb;
897 	
898 	    Assert(iInstance == 0);
899 	    PDMDEV_CHECK_VERSIONS_RETURN(pDevIns);
900 	
901 	    /*
902 	     * Validate configuration.
903 	     */
904 	    if (!CFGMR3AreValuesValid(pCfg,
905 	                              "BootDevice0\0"
906 	                              "BootDevice1\0"
907 	                              "BootDevice2\0"
908 	                              "BootDevice3\0"
909 	                              "RamSize\0"
910 	                              "RamHoleSize\0"
911 	                              "HardDiskDevice\0"
912 	                              "SataHardDiskDevice\0"
913 	                              "SataPrimaryMasterLUN\0"
914 	                              "SataPrimarySlaveLUN\0"
915 	                              "SataSecondaryMasterLUN\0"
916 	                              "SataSecondarySlaveLUN\0"
917 	                              "FloppyDevice\0"
918 	                              "DelayBoot\0"
919 	                              "BiosRom\0"
920 	                              "LanBootRom\0"
921 	                              "PXEDebug\0"
922 	                              "UUID\0"
923 	                              "IOAPIC\0"
924 	                              "NumCPUs\0"
925 	                              "DmiBIOSVendor\0"
926 	                              "DmiBIOSVersion\0"
927 	                              "DmiBIOSReleaseDate\0"
928 	                              "DmiBIOSReleaseMajor\0"
929 	                              "DmiBIOSReleaseMinor\0"
930 	                              "DmiBIOSFirmwareMajor\0"
931 	                              "DmiBIOSFirmwareMinor\0"
932 	                              "DmiSystemFamily\0"
933 	                              "DmiSystemProduct\0"
934 	                              "DmiSystemSerial\0"
935 	                              "DmiSystemUuid\0"
936 	                              "DmiSystemVendor\0"
937 	                              "DmiSystemVersion\0"
938 	                              "DmiChassisVendor\0"
939 	                              "DmiChassisVersion\0"
940 	                              "DmiChassisSerial\0"
941 	                              "DmiChassisAssetTag\0"
942 	#ifdef VBOX_WITH_DMI_OEMSTRINGS
943 	                              "DmiOEMVBoxVer\0"
944 	                              "DmiOEMVBoxRev\0"
945 	#endif
946 	                              "DmiUseHostInfo\0"
947 	                              "DmiExposeMemoryTable\0"
948 	                              ))
949 	        return PDMDEV_SET_ERROR(pDevIns, VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES,
950 	                                N_("Invalid configuration for device pcbios device"));
specifically line

Code: Select all

941 	                              "DmiChassisAssetTag\0"
I'll possibly get to test it tomorrow.
I'll try
VBoxManage setextradata "pxe2" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisAssetTag" "loantag"
rather than
VBoxManage setextradata "pxe2" "VBoxInternal/Devices/pcbios/0/Config/DMISMBIOSAssetTag" "loantag"
unless someone else can test it before then and I can :shock: the world cup in relaxation.

Re: is vboxmanage setextradata SMBIOSAssetTag possible

Posted: 21. Jun 2010, 02:05
by s_k_e_l
testing
VBoxManage setextradata "pxe2" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisAssetTag" "loantag"

I found out this was very case sensitive and a line like
VBoxManage setextradata "pxe2" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisAssetTag" ""
was necessary to remove the value. Hand editing the xml did not seem to clear the entries :?:

vbox.log
00:00:00.879 DmiChassisAssetTag <string> = "LOANTAG" (cb=8)

Code: Select all

  <?xml version="1.0" ?> 
- <VirtualBox xmlns="http://www.innotek.de/VirtualBox-settings" version="1.9-windows">
- <Machine uuid="{955abbdd-9563-4daf-be92-9a20eebf5b14}" name="pxe2" OSType="WindowsVista" lastStateChange="2010-06-20T23:00:02Z">
- <ExtraData>
  <ExtraDataItem name="GUI/LastCloseAction" value="powerOff" /> 
  <ExtraDataItem name="GUI/LastGuestSizeHint" value="640,480" /> 
  <ExtraDataItem name="GUI/LastWindowPostion" value="48,244,640,522" /> 
  <ExtraDataItem name="GUI/MiniToolBarAlignment" value="bottom" /> 
  <ExtraDataItem name="GUI/MiniToolBarAutoHide" value="on" /> 
  <ExtraDataItem name="GUI/SaveMountedAtRuntime" value="yes" /> 
  <ExtraDataItem name="GUI/ShowMiniToolBar" value="yes" /> 
  <ExtraDataItem name="VBoxInternal/Devices/pcbios/0/Config/DmiChassisAssetTag" value="LOANTAG" /> 
  </ExtraData>
- <Hardware version="2">
- <CPU count="1">
  <HardwareVirtEx enabled="true" exclusive="false" /> 
  <HardwareVirtExNestedPaging enabled="true" /> 
  <HardwareVirtExVPID enabled="true" /> 
  <PAE enabled="true" /> 
  </CPU>
  <Memory RAMSize="806" /> 
- <Boot>
  <Order position="1" device="DVD" /> 
  <Order position="2" device="HardDisk" /> 
  <Order position="3" device="None" /> 
  <Order position="4" device="None" /> 
  </Boot>
  <Display VRAMSize="16" monitorCount="1" accelerate3D="false" accelerate2DVideo="false" /> 
  <RemoteDisplay enabled="false" port="3389" authType="Null" authTimeout="5000" /> 
- <BIOS>
  <ACPI enabled="true" /> 
  <IOAPIC enabled="false" /> 
  <Logo fadeIn="true" fadeOut="true" displayTime="0" /> 
  <BootMenu mode="MessageAndMenu" /> 
  <TimeOffset value="0" /> 
  <PXEDebug enabled="false" /> 
  </BIOS>
  <USBController enabled="true" enabledEhci="true" /> 
- <Network>
- <Adapter slot="0" enabled="true" MACAddress="08002789EBF3" cable="true" speed="0" type="Am79C973">
  <InternalNetwork name="intnet" /> 
  </Adapter>
- <Adapter slot="1" enabled="true" MACAddress="080027CA5E90" cable="true" speed="0" type="82540EM">
  <InternalNetwork name="intnet" /> 
  </Adapter>
  <Adapter slot="2" enabled="false" MACAddress="080027C14A8D" cable="true" speed="0" type="82540EM" /> 
  <Adapter slot="3" enabled="false" MACAddress="080027237D20" cable="true" speed="0" type="82540EM" /> 
  <Adapter slot="4" enabled="false" MACAddress="080027B9D111" cable="true" speed="0" type="82540EM" /> 
  <Adapter slot="5" enabled="false" MACAddress="080027AD471A" cable="true" speed="0" type="82540EM" /> 
  <Adapter slot="6" enabled="false" MACAddress="080027D48186" cable="true" speed="0" type="82540EM" /> 
  <Adapter slot="7" enabled="false" MACAddress="08002790B11C" cable="true" speed="0" type="82540EM" /> 
  </Network>
- <UART>
  <Port slot="0" enabled="false" IOBase="0x3f8" IRQ="4" hostMode="Disconnected" /> 
  <Port slot="1" enabled="false" IOBase="0x3f8" IRQ="4" hostMode="Disconnected" /> 
  </UART>
- <LPT>
  <Port slot="0" enabled="false" IOBase="0x378" IRQ="4" /> 
  <Port slot="1" enabled="false" IOBase="0x378" IRQ="4" /> 
  </LPT>
  <AudioAdapter controller="AC97" driver="DirectSound" enabled="true" /> 
  <SharedFolders /> 
  <Clipboard mode="Bidirectional" /> 
  <Guest memoryBalloonSize="0" /> 
- <GuestProperties>
  <GuestProperty name="/VirtualBox/HostInfo/GUI/LanguageID" value="en_US" timestamp="1277074798515625000" flags="" /> 
  </GuestProperties>
  </Hardware>
- <StorageControllers>
- <StorageController name="IDE Controller" type="PIIX4" PortCount="2">
- <AttachedDevice type="HardDisk" port="0" device="0">
  <Image uuid="{2d15983f-8443-4181-94b7-0958e2649dec}" /> 
  </AttachedDevice>
  <AttachedDevice passthrough="false" type="DVD" port="1" device="0" /> 
  </StorageController>
- <StorageController name="Floppy Controller" type="I82078" PortCount="1">
  <AttachedDevice type="Floppy" port="0" device="0" /> 
  </StorageController>
  </StorageControllers>
  </Machine>
  </VirtualBox>
It sets the value, but I still get No Instance(s) using wmic or other wmi query tools in either a virtual WinPE or Windows 2003 server environment.
I'm still trying to work out where the value is exposed on a Microsoft windows based system.
I was looking for an suitable tool as dmidecode that Linux distributions provide, but couldn't find one in a cursory search.
I saw
Due to the rapid development of DMTF technologies, such as Common Information Model (CIM), the DMTF defined an "End of Life" process for DMI, which ended on March 31, 2005.
on http://en.wikipedia.org/wiki/Desktop_Ma ... _Interface

Are there any development plans for other system management interfaces in Virtualbox?
I'm not sure yet if I've answered my initial question. it seems like you can set the asset tag, but I can't seem to read it back on a winpe or windows 2003 virtual machine ...
Ach well time for bed.

Re: is vboxmanage setextradata SMBIOSAssetTag possible

Posted: 22. Jun 2010, 11:39
by s_k_e_l
I'm just reading
http://vbox.innotek.de/pipermail/vbox-d ... 02788.html
which looks interesting.

and the code in the ose edition
static const char *s_szDefDmiChassisSerial = "";
static const char *s_szDefDmiChassisAssetTag = "";
in http://virtualbox-ose.sourcearchive.com ... ource.html
..No, for chassis there is currently a separate, disabled section.
See DevFwCommon.cpp line 650.
also
http://vbox.innotek.de/ticket/6985
Configuring the BIOS DMI information" documentation needs improvement
opened June 2010.
Since I don't intend to do any coding and the faq makes it clear I shouldn't post on it as an end user who could I ask what the status of this is?
I would be happy to point the vm at a different BIOS but can't work out if this works yet.

Re: is vboxmanage setextradata SMBIOSAssetTag possible

Posted: 23. Jun 2010, 21:57
by Sasquatch
Posting in a ticket as end-user is allowed. Asking for status isn't wrong nor not allowed. You have to choose your words carefully when asking something in the dev mailing list, but you shouldn't get yelled at.

Re: is vboxmanage setextradata SMBIOSAssetTag possible

Posted: 24. Jun 2010, 16:09
by s_k_e_l
I've posted on the dev list and made a nonsense of quoting myself, lets home I don't anooy them or get ignored.

gmane.comp.emulators.virtualbox.devel/2896