使用AMI SCELNX修改BIOS设置

通过linux命令行修改服务器BIOS配置 介绍了Linux平台下修改服务器BIOS的方法,基本上各个服务器厂商都采用AMI的BIOS,基本工具实际是相同的。

AMI Setup Control Environment (AMISCE) 是命令行工具提供了更新NVRAM变量,也就是直接设置BIOS的方法。AMISCE提供了一个脚本来列出系统所有的设置选项问题,然后用户就可以通过修改这个脚本文件并使用它来正确修改NVRAM设置变量。

AMISCE 在 Linux 下通過 SCELNX_64 命令行工具來配置 BIOS ,SCELNX_64 依赖 kernel-devel 软件包:

yum install -y kernel-devel

准备工作

  • 通过远程ipmi方式先验证能够通过串口控制台访问服务器:

ipmitool -I lanplus -H IP  -U username -P password -E sol activate
  • 登录服务器,通过ipmitool将服务器引导到BIOS界面,方法请参考 ipmitool使用tips:

ipmitool raw 0x00 0x08 0x05 0x80 0x18 0x00 0x00 0x00
ipmitool chassis bootdev bios
ipmitool chassis bootparam set bootflag force_bios
  • 重启服务器

sync;sync;sync
shutdown -r now

重启后服务器会自动进入BIOS界面

通过SCELNX设置

  • 首先读取并保存 AMI BIOS 配置文件 NVRAM script file:

对于早期版本工具,可能不支持/lang参数或者/hb参数,可以简化为 SCELNX_64 /o /s BIOS-with-map-string.cfg

只有 /lang 参数导出的配置文件,才包含BIOS配置项对应的 map string

例如:

具有 map string 的导出配置

没有 map string 的导出配置

map string可以帮助我们定位BIOS问题,例如,我们如果只需要检查单一的选项,就可以按照 map string 查询:

  • 查看 BIOS 单一配置选项的命令

设置举例

我们需要开启服务器NUMA功能

  • 首先输出BIOS当前配置文件:

  • 检查配置文件 bios_no_numa.cfg 可以看到有关Numa配置,当前是关闭状态:

此时使用 numactl -H 可以看到只有一个node:

不过,为了能够设置BIOS,需要选择一台同型号规格服务器,通过带外控制台防伪BIOS的交互界面,设置好NUMA,然后重启并使用上述命令导出一份激活了NUMA的BIOS配置,以便确定需要修改的内容:

对比可知激活NUMA的设置如下:

通过对比可以看到,如果只是激活 双node 配置的 NUMA,实际修改配置内容非常少,只有

  • 既然我们通过 /lang 参数已经获得了有关NUMA配置的 map string 值是 CRCS005,所以我们可以通过以下命令单独查询出NUMA配置项

输出就是选项设置,如下

  • 根据 map string 修改单独配置项

提示:

  • 再次检查NUMA单项配置,可以看到BIOS已经调整成激活NUMA

注意:有些BIOS配置需要修改多个位置,例如 Boot Option 就有多个问题设置需要修改,必须全部修改才能生效。见原文:使用 AMI SCELNX 工具配置 BIOS

  • 重启服务器,重启以后,使用 numactl -H 验证可以看到服务器的NUMA已经激活

参考

Last updated

Was this helpful?