Information can be put into dmi tables via some qemu-system hosts (x86_64 and aarch64). That information is exposed in Linux under /sys/class/dmi/id
and can be read with dmidecode
. The names are very annoyingly inconsistent. The point of this doc is to map them.
See qemu-system-x86_64 --help
for the fields that qemu will accept.
qemu smbios flags vary with qemu version.
Example qemu cmdline:
qemu-system-x86_64 -smbios type=<type>,field=value[,...]
qemu-system-x86_64 -smbios type=0,vendor=superco,version=1.2.3
type | -smbios field | Linux path | dmidecode --string=F |
---|---|---|---|
0 | vendor | bios_vendor | bios-vendor |
0 | date | bios_date | bios-release-date |
0 | version | bios_version | bios-version |
0 | release=(%d.%d) | bios_release | bios-revision |
0 | uefi=(on|off) | n/a | n/a |
1 | manufacturer | sys_vendor | system-manufacturer |
1 | product | product_name | system-product-name |
1 | version | product_version | system-version |
1 | serial | product_serial | system-serial-number |
1 | uuid | product_uuid | system-uuid |
1 | sku | product_sku | system-sku-number |
1 | family | product_family | system-family |
2 | manufacturer | board_vendor | baseboard-manufacturer |
2 | product | board_name | baseboard-product-name |
2 | version | board_version | baseboard-version |
2 | serial | board_serial | baseboard-serial-number |
2 | asset | asset_tag | baseboard-asset-tag |
2 | location | n/a | n/a |
3 | manufacturer | chassis_vendor | chassis-manufacturer |
3 | version | chassis_version | chassis-version |
3 | serial | chassis_serial | chassis-serial-number |
3 | asset | chassis_asset_tag | chassis-asset-tag |
3 | sku | n/a | n/a |
4 | sock_pfx | n/a | n/a |
4 | manufacturer | n/a | processor-manufacturer |
4 | version | n/a | processor-version |
4 | serial | n/a | n/a |
4 | asset | n/a | n/a |
4 | part | n/a | n/a |
4 | max-speed | n/a | n/a |
4 | current-speed | n/a | processor-frequency |
11 | value | n/a | --oem-string=N |
17 | loc_pfx | n/a | n/a |
17 | bank | n/a | n/a |
17 | manufacturer | n/a | n/a |
17 | serial | n/a | n/a |
17 | asset | n/a | n/a |
17 | part=(%d) | n/a | n/a |
17 | speed=(%d) | n/a | n/a |
- linux exposes these files in
/sys/devices/virtual/dmi/id
and/sys/class/dmi/id
- go-smbios can be used to read OEM strings and other smbios info. More info on OEM string information linked from Bug 1753559
-
6.14.7
$ ( cd /sys/class/dmi/id && grep -r . *) bios_date:0date bios_release:0.0 bios_vendor:0vendor bios_version:0version board_asset_tag:t2asset board_name:t2product board_serial:t2serial board_vendor:t2manufacturer board_version:t2version chassis_asset_tag:t3asset chassis_serial:t3serial chassis_type:1 chassis_vendor:t3manufacturer chassis_version:t3version modalias:dmi:bvn0vendor:bvr0version:bd0date:br0.0:svnt1manufacturer:pnt1product:pvrt1version:rvnt2manufacturer:rnt2product:rvrt2version:cvnt3manufacturer:ct1:cvrt3version:skut1sku: power/runtime_active_time:0 power/runtime_status:unsupported power/runtime_suspended_time:0 power/control:auto product_family:t1family product_name:t1product product_serial:t1serial product_sku:t1sku product_uuid:11111111-1111-1111-1111-111111111111 product_version:t1version sys_vendor:t1manufacturer uevent:MODALIAS=dmi:bvn0vendor:bvr0version:bd0date:br0.0:svnt1manufacturer:pnt1product:pvrt1version:rvnt2manufacturer:rnt2product:rvrt2version:cvnt3manufacturer:ct1:cvrt3version:skut1sku: $ dmidecode --version 3.6 $ for i in $(dmidecode --list-strings); do out=$(dmidecode --string=$i) && echo "$i: $out"; done bios-vendor: 0vendor bios-version: 0version bios-release-date: 0date bios-revision: 0.0 firmware-revision: system-manufacturer: t1manufacturer system-product-name: t1product system-version: t1version system-serial-number: t1serial system-uuid: 11111111-1111-1111-1111-111111111111 system-sku-number: t1sku system-family: t1family baseboard-manufacturer: t2manufacturer baseboard-product-name: t2product baseboard-version: t2version baseboard-serial-number: t2serial baseboard-asset-tag: t2asset chassis-manufacturer: t3manufacturer chassis-type: Other chassis-version: t3version chassis-serial-number: t3serial chassis-asset-tag: t3asset processor-family: Other processor-manufacturer: t4manufacturer processor-version: t4version processor-frequency: 4443 MHz
-
Cirros 0.6.3 (5.15.0-117-generic)
bios_date:0date bios_release:0.0 bios_vendor:0vendor bios_version:0version board_asset_tag:t2asset board_name:t2product board_serial:t2serial board_vendor:t2manufacturer board_version:t2version chassis_asset_tag:t3asset chassis_serial:t3serial chassis_type:1 chassis_vendor:t3manufacturer chassis_version:t3version modalias:dmi:bvn0vendor:bvr0version:bd0date:br0.0:svnt1manufacturer:pnt1product:pvr: product_family:t1family product_name:t1product product_serial:t1serial product_sku:t1sku product_uuid:11111111-1111-1111-1111-111111111111 product_version:t1version sys_vendor:t1manufacturer uevent:MODALIAS=dmi:bvn0vendor:bvr0version:bd0date:br0.0:svnt1manufacturer:pnt1prod:
Below is the --help output of qemu-system-x86 wrt -smbios
.
See boot-guest
file for actual values used
$ qemu-system-x86_64 --version
QEMU emulator version 10.0.2 (v10.0.2)
$ qemu-system-x86_64 --help | grep -A1 -- ^-smbios | sed 's,^--$,,'
-smbios file=binary
load SMBIOS entry from binary file
-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d]
[,uefi=on|off]
-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]
[,uuid=uuid][,sku=str][,family=str]
-smbios type=2[,manufacturer=str][,product=str][,version=str][,serial=str]
[,asset=str][,location=str]
-smbios type=3[,manufacturer=str][,version=str][,serial=str][,asset=str]
[,sku=str]
-smbios type=4[,sock_pfx=str][,manufacturer=str][,version=str][,serial=str]
[,asset=str][,part=str][,max-speed=%d][,current-speed=%d]
-smbios type=8[,external_reference=str][,internal_reference=str][,connector_type=%d][,port_type=%d]
specify SMBIOS type 8 fields
-smbios type=11[,value=str][,path=filename]
specify SMBIOS type 11 fields
-smbios type=17[,loc_pfx=str][,bank=str][,manufacturer=str][,serial=str]
[,asset=str][,part=str][,speed=%d]
-smbios type=41[,designation=str][,kind=str][,instance=%d][,pcidev=str]
specify SMBIOS type 41 fields
Hi @smoser,
At least with Linux 6.14.6 and
dmidecode
v3.6, it looks like those are: