You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何更新Supermicro服务器的DMI信息(含SKU编号等)

如何更新Supermicro服务器的DMI信息(含SKU编号等)

我之前也碰到过Supermicro服务器DMI信息里一堆「To be filled by O.E.M.」的情况,刚好可以给你分享两种靠谱的方法,你有ipmitool权限和BMC控制台权限,这俩方法都能用得上:

先给你对应一下你当前的DMI信息示例,方便明确要更新的字段:

Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: Supermicro
Product Name: Super Server
Version: 0123456789
Serial Number: 0123456789
UUID: XXX
Wake-up Type: Power Switch
SKU Number: To be filled by O.E.M.
Family: To be filled by O.E.M.

方法一:通过ipmitool命令行更新

这个方法适合批量操作或者习惯命令行的用户,Supermicro的IPMI接口支持直接写入DMI字段:

  1. 先备份当前的DMI信息,防止操作出错:
    dmidecode -t 1 > dmi_system_backup.txt
    
  2. 优先尝试简化命令(部分新固件支持):
    如果你的BMC固件版本比较新,直接用ipmitool dmi set命令就能快速更新:
    # 更新SKU编号
    ipmitool dmi set 1 sku "你的实际SKU编号"
    # 更新Family字段
    ipmitool dmi set 1 family "你的服务器Family信息"
    
  3. 如果简化命令不支持,用raw命令手动写入:
    把要写入的内容转换成ASCII十六进制(可以用echo -n "内容" | hexdump -v -e '/1 "%02X "'命令转换),然后用raw命令写入:
    比如要把SKU更新为"SMS-8765",先转成十六进制是53 4D 53 2D 38 37 36 35,然后命令是:
    ipmitool raw 0x06 0x52 0x01 0x00 0x14 0x08 53 4D 53 2D 38 37 36 35 00
    
    命令参数解释:
    • 0x06 0x52:IPMI标准的「Set DMI Field」命令
    • 0x01:指定DMI类型为1(System Information)
    • 0x00:对应你dmidecode里的Handle 0x0001
    • 0x14:SKU Number在DMI Type 1里的偏移地址
    • 0x08:要写入的字符串长度(不含结尾的00)
    • 最后是内容的十六进制和字符串结束符00

方法二:通过BMC Web控制台图形化更新

这个方法更直观,适合新手:

  1. 用浏览器登录到服务器的BMC Web控制台,输入管理员用户名和密码
  2. 找到「Configuration」或者「System Settings」菜单,里面会有「DMI Configuration」或者「System Information」的选项(不同固件版本菜单名称可能略有差异)
  3. 进入配置页面后,就能看到和dmidecode输出对应的所有字段,包括SKU Number、Family这些显示「To be filled by O.E.M.」的项
  4. 把你订单上的实际信息填入对应的输入框,点击「Save」或者「Apply」保存设置
  5. 重启服务器,之后再用dmidecode -t 1检查,就能看到更新后的正确信息了

注意事项

  • 操作必须使用BMC管理员权限,普通权限会被拒绝
  • 不管用哪种方法,更新后都需要重启服务器才能让新的DMI信息生效
  • 如果写入后信息没有变化,检查BMC固件版本,必要时先升级到最新的稳定版

备注:内容来源于stack exchange,提问作者MaKaNu

火山引擎 最新活动