Support #489
Using VirtualBox To Emulate Unique Hardware
Description
- Table of contents
- Configuring the BIOS DMI Information
- Acquiring DMI information
- Resources
Configuring the BIOS DMI Information¶
The DMI data VirtualBox provides to guests can be changed for a specific VM. Use the following commands to configure the DMI BIOS information. In case your VM is configured to use EFI firmware you need to replace pcbios by efi in the keys.
DMI BIOS Information (type 0)¶
- The following commands configure a VM for type 0 emulation
VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor" "BIOS Vendor" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVersion" "BIOS Version" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseDate" "BIOS Release Date" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseMajor" 1 VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseMinor" 2 VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSFirmwareMajor" 3 VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSFirmwareMinor" 4
DMI System Information (type 1)¶
- The following commands configure a VM for type 1 emulation
VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor" "System Vendor" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemProduct" "System Product" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVersion" "System Version" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "System Serial" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemSKU" "System SKU" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemFamily" "System Family" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemUuid" "9852bf98-b83c-49db-a8de-182c42c7226b"
DMI Board Information (type 2)¶
- The following commands configure a VM for type 2 emulation
VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardVendor" "Board Vendor" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardProduct" "Board Product" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardVersion" "Board Version" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardSerial" "Board Serial" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardAssetTag" "Board Tag" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardLocInChass" "Board Location" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardBoardType" 10
DMI System Enclosure or Chassis (type 3)¶
- The following commands configure a VM for type 3 emulation
VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisVendor" "Chassis Vendor" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisType" 3 VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisVersion" "Chassis Version" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisSerial" "Chassis Serial" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisAssetTag" "Chassis Tag"
DMI Processor Information (type 4)¶
- The following commands configure a VM for type 4 emulation
VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiProcManufacturer" "GenuineIntel" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiProcVersion" "Pentium(R) III"
DMI OEM Strings (type 11)¶
- The following commands configure a VM for type 11 emulation
VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiOEMVBoxVer" "vboxVer_1.2.3" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiOEMVBoxRev" "vboxRev_12345"
If a DMI string is not set, the default value of VirtualBox is used. To set an empty string use "<EMPTY>".
Note that in the above list, all quoted parameters (DmiBIOSVendor, DmiBIOSVersion but not DmiBIOSReleaseMajor) are expected to be strings. If such a string is a valid number, the parameter is treated as number and the VM will most probably refuse to start with an VERR_CFGM_NOT_STRING error. In that case, use "string:<value>", for instance
VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "string:1234"
Hard Disk Vendor Product Data¶
VirtualBox reports vendor product data for its virtual hard disks which consist of hard disk serial number, firmware revision and model number.
- These can be changed using the following commands:
VBoxManage setextradata "VM name" "VBoxInternal/Devices/ahci/0/Config/Port0/SerialNumber" "serial" VBoxManage setextradata "VM name" "VBoxInternal/Devices/ahci/0/Config/Port0/FirmwareRevision" "firmware" VBoxManage setextradata "VM name" "VBoxInternal/Devices/ahci/0/Config/Port0/ModelNumber" "model"
The serial number is a 20 byte alphanumeric string, the firmware revision an 8 byte alphanumeric string and the model number a 40 byte alphanumeric string. Instead of "Port0" (referring to the first port), specify the desired SATA hard disk port.
- The above commands apply to virtual machines with an AHCI (SATA) controller. The commands for virtual machines with an IDE controller are:
VBoxManage setextradata "VM name" "VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/SerialNumber" "serial" VBoxManage setextradata "VM name" "VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/FirmwareRevision" "firmware" VBoxManage setextradata "VM name" "VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/ModelNumber" "model"
Changing this information can be necessary to provide the DMI information of the host to the guest to prevent Windows from asking for a new product key.
Acquiring DMI information¶
- On Linux hosts the DMI BIOS information can be obtained with
dmidecode -t0
- Example output:
# dmidecode 2.12 SMBIOS 2.3 present. Handle 0x0000, DMI type 0, 20 bytes BIOS Information Vendor: American Megatrends Inc. Version: 1009.005 Release Date: 09/20/2005 EMAXS Address: 0xF0000 Runtime Size: 64 kB ROM Size: 512 kB Characteristics: ISA is supported PCI is supported PNP is supported APM is supported BIOS is upgradeable BIOS shadowing is allowed ESCD support is available Boot from CD is supported Selectable boot is supported BIOS ROM is socketed EDD is supported 5.25"/1.2 MB floppy services are supported (int 13h) 3.5"/720 kB floppy services are supported (int 13h) 3.5"/2.88 MB floppy services are supported (int 13h) Print screen service is supported (int 5h) 8042 keyboard services are supported (int 9h) Serial services are supported (int 14h) Printer services are supported (int 17h) CGA/mono video services are supported (int 10h) ACPI is supported USB legacy is supported AGP is supported LS-120 boot is supported ATAPI Zip drive boot is supported BIOS boot specification is supported
- Example output:
- And the DMI system information can be obtained with
dmidecode -t1
- Example output:
# dmidecode 2.12 SMBIOS 2.3 present. Handle 0x0001, DMI type 1, 25 bytes System Information Manufacturer: ASUSTeK Computer Inc. Product Name: K8V-MX Version: Serial Number: UUID: 8051E622-8EFE-E511-81A3-01F1D8C8E15F Wake-up Type: PCI PME#
- Example output:
- And the DMI board information can be obtained with
dmidecode -t2
- Example output:
# dmidecode 2.12 SMBIOS 2.3 present. Handle 0x0002, DMI type 2, 8 bytes Base Board Information Manufacturer: ASUSTeK Computer Inc. Product Name: K8V-MX Version: Rev 1.XX Serial Number:
- Example output:
- And the DMI system enclosure or chassis can be obtained with
dmidecode -t3
- Example output:
# dmidecode 2.12 SMBIOS 2.3 present. Handle 0x0003, DMI type 3, 17 bytes Chassis Information Manufacturer: emaxs Type: Mini Tower Lock: Not Present Version: SCEP Serial Number: Asset Tag: Boot-up State: Safe Power Supply State: Safe Thermal State: Safe Security Status: None OEM Information: 0x00000001
- Example output:
- And the DMI processor information can be obtained with
dmidecode -t4
- Example output:
# dmidecode 2.12 SMBIOS 2.3 present. Handle 0x0004, DMI type 4, 35 bytes Processor Information Socket Designation: Socket 754 Type: Central Processor Family: Athlon 64 Manufacturer: AMD ID: C6 0F 02 20 AF FB 8B 17 Signature: Family 15, Model 44, Stepping 2 Flags: FPU (Floating-point unit on-chip) VME (Virtual mode extension) DE (Debugging extension) PSE (Page size extension) TSC (Time stamp counter) MSR (Model specific registers) PAE (Physical address extension) MCE (Machine check exception) CX8 (CMPXCHG8 instruction supported) APIC (On-chip APIC hardware supported) SEP (Fast system call) MTRR (Memory type range registers) PGE (Page global enable) MCA (Machine check architecture) CMOV (Conditional move instruction supported) PAT (Page attribute table) PSE-36 (36-bit page size extension) CLFSH (CLFLUSH instruction supported) MMX (MMX technology supported) FXSR (FXSAVE and FXSTOR instructions supported) SSE (Streaming SIMD extensions) SSE2 (Streaming SIMD extensions 2) Version: AMD Sempron(tm) Processor 3400+ Voltage: 1.5 V External Clock: 200 MHz Max Speed: 2200 MHz Current Speed: 2000 MHz Status: Populated, Enabled Upgrade: Socket 754 L1 Cache Handle: 0x0005 L2 Cache Handle: 0x0006 L3 Cache Handle: Not Provided Serial Number: To Be Filled By O.E.M. Asset Tag: To Be Filled By O.E.M. Part Number: To Be Filled By O.E.M.
- Example output:
- And the DMI OEM strings can be obtained with
dmidecode -t11
- Example output:
# dmidecode 2.12 SMBIOS 2.3 present. Handle 0x002D, DMI type 11, 5 bytes OEM Strings String 1: ASUSTeK Computer Inc. String 2: String 3: 011BD8C8E25D
- Example output:
- The Hard Disk Vendor Product Data
hdparm -I /dev/sda
- Example output:
/dev/sda: ATA device, with non-removable media Model Number: WDC WD2000JB-00REA0 Serial Number: WD-WCANK4421153 Firmware Revision: 20.00K20 Standards: Supported: 7 6 5 4 Likely used: 8 Configuration: Logical max current cylinders 16383 16383 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 16514064 LBA user addressable sectors: 268435455 LBA48 user addressable sectors: 390721968 Logical/Physical Sector size: 512 bytes device size with M = 1024*1024: 190782 MBytes device size with M = 1000*1000: 200049 MBytes (200 GB) cache/buffer size = 8192 KBytes Capabilities: LBA, IORDY(can be disabled) Standby timer values: spec'd by Standard, with device specific minimum R/W multiple sector transfer: Max = 16 Current = 16 Recommended acoustic management value: 128, current value: 128 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 Cycle time: min=120ns recommended=120ns PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=120ns IORDY flow control=120ns Commands/features: Enabled Supported: * SMART feature set Security Mode feature set * Power Management feature set * Write cache * Look-ahead * Host Protected Area feature set * WRITE_BUFFER command * READ_BUFFER command * NOP cmd * DOWNLOAD_MICROCODE SET_MAX security extension * Automatic Acoustic Management feature set * 48-bit Address feature set * Device Configuration Overlay feature set * Mandatory FLUSH_CACHE * FLUSH_CACHE_EXT * SMART error logging * SMART self-test Media Card Pass-Through * General Purpose Logging feature set * URG for READ_STREAM[_DMA]_EXT * URG for WRITE_STREAM[_DMA]_EXT * SMART Command Transport (SCT) feature set * SCT Read/Write Long (AC1), obsolete * SCT Write Same (AC2) * SCT Error Recovery Control (AC3) * SCT Features Control (AC4) * SCT Data Tables (AC5) Security: Master password revision code = 65534 supported not enabled not locked frozen not expired: security count not supported: enhanced erase HW reset results: CBLID- above Vih Device num = 0 determined by the jumper Checksum: correct
- Example output:
Resources¶
Updated by Daniel Curtis about 10 years ago
- Description updated (diff)
- Estimated time set to 3.00 h
Updated by Daniel Curtis almost 10 years ago
- Description updated (diff)
- Status changed from New to In Progress
- % Done changed from 0 to 50
Updated by Daniel Curtis over 7 years ago
- Category set to Virtualization
- Status changed from In Progress to Closed
- Target version set to *nix