gpt4 book ai didi

linux - DMIDecode product_uuid 和 product_serial.有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 11:28:56 25 4
gpt4 key购买 nike

/sys/class/dmi/id/目录下有product_uuidproduct_serial文件。

  1. 它是如何产生的?有什么不同?
  2. 我可以更改这些文件吗?
  3. 重装操作系统后是否存值?

最佳答案

How it are generated?

这些值是在内核代码中生成的。您可以在内核源目录中使用 git grep 命令(使用您感兴趣的关键字)轻松找到它们:

$ git grep --all-match -n -e '\bdmi\b' -e product_uuid -e product_serial

因此,product_uuidproduct_serial sysfs 节点是在 drivers/firmware/dmi-id.c 中创建的:

DEFINE_DMI_ATTR_WITH_SHOW(product_serial,   0400, DMI_PRODUCT_SERIAL);
DEFINE_DMI_ATTR_WITH_SHOW(product_uuid, 0400, DMI_PRODUCT_UUID);

DEFINE_DMI_ATTR_WITH_SHOW 定义中,您可以看到这两个属性都是通过 sys_dmi_field_show() 函数访问的,该函数又调用 dmi_get_system_info(),这只是从 dmi_ident 数组中返回相应的元素。此表在 dmi_decode() 例程中填充:

dmi_save_ident(dm, DMI_PRODUCT_SERIAL, 7);
dmi_save_uuid(dm, DMI_PRODUCT_UUID, 8);

所以product_uuid是在dmi_save_uuid()中生成的功能。只需阅读其代码即可了解其工作原理。

product_serialdmi_save_ident() 中生成功能。它归结为这样的代码:

(struct dmi_header *)(dmi_base)[7];

其中dmi_base是DMI表的地址(显然是重映射到虚拟内存),7对应DMI_PRODUCT_SERIAL常量。

为了更好地理解这一点,请参阅 SMBIOS specification ,特别是 Table 9 – System Information (Type 1) Structure,它对应于这个命令:

# dmidecode --type 1

What is the difference?

至于product_uuid -- 查看SMBIOS specification7.2.1 系统 - UUID 部分。它有描述,也有表格解释这个数字的每个部分。使用该表,您可以解码 UUID 并从中提取一些信息,例如时间戳等。

至于product_serial -- 我相信这是不言自明的,它只是您设备的序列号。您通常可以在计算机上的一些标签上找到它。例如,对于我的笔记本电脑,它是 on the bottom .它与我在 /sys/class/dmi/id/product_serial 中看到的字符串相同。

Can I change this files?

这些文件实际上不是真正的文件,而只是内核函数的接口(interface)。了解 sysfs了解详情。因此,为了“更改”这些文件,您需要相应地编辑提到的内核文件,然后重建整个内核并启动它(而不是您的发行版提供的内核)。

此外,正如@ChristopheVu-Brugier 在评论中提到的那样,您可以更改 DMI 表中的这些值(尽管以一些棘手的方式)。但我不推荐它。这些值肯定有一定的意义,并且在某些情况下可能有用(如果不适合你,那么对你 PC 中的某些软件)。

Is it save a value after reinstall operation system?

这些值实际上是从DMI table获得的,它与 BIOS 一起被硬编码到永久内存(主板上带有 BIOS 的闪存芯片),您只需使用内核函数通过读取这些文件从这个 DMI 表中读取这些值。

关于linux - DMIDecode product_uuid 和 product_serial.有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35883313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com