![如何更改 OEM 供应商信息?](https://linux22.com/image/154500/%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%20OEM%20%E4%BE%9B%E5%BA%94%E5%95%86%E4%BF%A1%E6%81%AF%EF%BC%9F.png)
运行:
cat /sys/devices/virtual/dmi/id/{sys_vendor,chassis_vendor,product_name}
产生输出:
To Be Filled By O.E.M.
To Be Filled By O.E.M.
To Be Filled By O.E.M.
我将如何更改这些值?我知道这可以通过 Windows 中的注册表来完成,因此希望 Linux 中也有类似的简单方法。
编辑:我尝试使用 sudoedit 更改文件,但它们被锁定以进行编辑(据我所知,就像大多数 /sys/ 目录一样)。在 Windows 中可以通过多种方法来完成此操作,但我没有在网上找到任何有关如何在 Linux 中编辑这些值的信息。
答案1
BIOS 编写者向使用这些 BIOS 制造设备的公司提供更新 DMI 信息的工具,而无需修改 BIOS 映像。例如,急性心肌梗死AMIDEDOS
在 DOS 下有一个工具,或者AMIDEWIN
用于 Windows 的 DMIEdit(曾经有一个AMIDELNX
用于 Linux 的工具,但不再提供)。这些工具通常在 NDA 下提供,但一些制造商在其 BIOS 更新映像中提供它们。本文提供了对可能性的良好描述,以及工具列表(2012 年编写时相关)。
基本上,您所要求的是可能的,但使用您可能无法正式访问的工具,除非您的系统制造商提供了它们(例如 联想,但是这样一来您就不会有“To Be Filled By OEM”条目了)。
答案2
据我所知,并根据这个SE链接发布在评论中,DMI 信息来自硬编码到系统 BIOS(或 UEFI 固件)中的表。要持续更改它们,需要解压 BIOS 更新,使用 BIOS 供应商特定的工具修改其中的 DMI 表,然后将其打包回自定义 BIOS 更新并将其刷新到您的系统。在此过程中的任何错误都会有导致计算机变砖的风险。
具有安全启动功能的系统通常需要对固件更新进行加密签名,因此如果没有供应商的私钥,您将无法创建以正常方式安装的自定义固件更新包。
Windows 可能具有可能会覆盖 BIOS 报告的 DMI 信息的注册表项,但这基本上只是设置您的操作系统来向您的应用程序撒些善意的谎言,仅此而已。