Se você comparar um dump hexadecimal de smbios_entry_point
com a saída binária do dmidecode, verá que é similar aos bytes 0-31 da saída do dmidecode. Da mesma forma, DMI
corresponde a bytes 32+. O byte 32 está faltando; Eu suponho que é sempre nulo.
Parece perto o suficiente para que eu esperasse que funcionasse.
echo -en '# dmidecode 2.12-dmifs
Reading SMBIOS/DMI data from file table.
SMBIOS 2.8 present.
Bus error (core dumped)
' >NUL
sudo cat /sys/firmware/dmi/tables/smbios_entry_point NUL /sys/firmware/dmi/tables/DMI >table
dmidecode --from-dump table
No entanto, o dmidecode falha com a seguinte saída:
echo -en '# dmidecode 2.12-dmifs
Reading SMBIOS/DMI data from file table.
SMBIOS 2.8 present.
Bus error (core dumped)
' >NUL
sudo cat /sys/firmware/dmi/tables/smbios_entry_point NUL /sys/firmware/dmi/tables/DMI >table
dmidecode --from-dump table
A especificação SMBIOS / DMI é disponível na Internet (pdf) ; Não deve ser muito difícil determinar valores fictícios aceitáveis para o cabeçalho. Estou deixando isso como um exercício para o leitor, pelo menos por enquanto;)