更新您的 BMC 固件#
使用以下命令行说明来更新您的 NVIDIA IGX Developer Kit 或 NVIDIA IGX Orin Board Kit 上的 BMC 固件。但是,我们建议您使用 BMC Web 用户界面 来更新您的 BMC 固件。
注意
BMC Web 用户界面 (BMC Web UI) 仅适用于 BMC 固件版本 24.04-11-v3.2 或更高版本。
使用本文档执行以下任务
获取 BMC 固件#
从 IGX 下载中心 下载
bmc_fw_R36.x.x_aarch64.tbz2
到您的 Linux 主机计算机。在您的主机计算机上,使用命令行提取下载的 BMC 固件,例如
1tar -xvjf bmc_fw_R36.x.x_aarch64.tbz2
固件镜像位于 bmc/fw/apfw 目录中。
注意
查看 bmc/README 以获取有关发布版本和日期的信息。
确定您的 BMC 模块是 ERoT 还是 Non-ERoT#
外部信任根 (ERoT) 硬件是 NVIDIA IGX Orin Board Kit 的 BMC 模块的一部分,该套件旨在用于生产。ERoT 硬件提供安全的闪存和启动机制。由于 IGX Developer Kit 不用于生产,因此它在没有 ERoT 硬件的情况下提供。
警告
在更新固件之前,请验证您的 BMC 平台是 ERoT 还是 Non-ERoT,并使用正确的说明。如果您使用错误的说明,您的 BMC 将处于不可恢复的状态。
要确定您的 BMC 模块是 ERoT 还是 Non-ERoT,请运行以下代码。
1root@mgx-3809:~# i2cdump -f -y 10 0x50
结果应如下所示。
1No size specified (using byte-data access)
2 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4e ...............N
410: 56 49 44 49 41 c5 50 33 38 30 39 cd 00 00 00 00 VIDIA?P3809?....
520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 33 .............-13
630: 38 30 39 2d 30 33 30 30 2d 51 53 32 00 00 00 00 809-0300-QS2....
按如下方式使用索引 0x2E 到 0x38 的结果
13809-0300 — Non-ERoT BMC
13809-0100 — ERoT BMC
选择正确的更新说明以避免损坏您的硬件
Non-ERoT, IGX Developer Kit — 使用 Non-ERoT 固件更新说明。
ERoT, IGX Orin Board Kit — 使用 ERoT 固件更新说明。
更新您的 IGX Developer Kit BMC (Non-ERoT) 固件#
使用以下过程之一来更新您的 IGX Developer Kit (Non-ERoT)。在连接了 BMC 的本地 Ubuntu 主机计算机上执行这些步骤。
按照以下步骤设置您的主机以访问 BMC 设置您的主机以访问 BMC。
推荐程序#
bmc_non_erot_updater.sh 脚本需要
sshpass
。如果您未安装它,请运行以下命令。1sudo apt-get install sshpass
(仅限 Windows 或 macOS) 如果您从非 Linux 计算机运行 bmc_non_erot_updater.sh 脚本,请先更新脚本。
将
ping
命令从ping -w1 -c1
更改为ping -n 1
。将
sleep
命令从sleep 40
更改为sleep 90
。
运行 bmc_non_erot_updater.sh 脚本。
1./tools/bmc_non_erot_updater.sh -f fw/apfw/image-bmc -p YourBmcPassword
备选程序#
验证您正在使用 IGX Developer Kit。
警告
如果您将此过程与 IGX Orin Board Kit 一起使用,您将使您的 BMC 进入不可恢复的状态。
通过在每行前面加上
#
,使用文本编辑器 (例如vi
) 或使用以下sed
命令,注释掉/usr/share/mctp/mctp
中的所有内容。1sed 's/^/#/' -i /usr/share/mctp/mctp
重启 BMC。
1reboot
使用 SCP 工具从主机将
image-bmc
从 获取 BMC 固件的步骤 中的run/initramfs/
复制出来。1scp image-bmc root@192.168.1.110:/run/initramfs/
更新 BMC 中的新镜像。
1/run/initramfs/update
等待 100% 完成。
重启 BMC。等待大约 1 分钟以完成 BMC 重启。
1reboot
再次设置密码,因为此过程将其重置为默认密码
0penBmc
。
更新您的 IGX Orin Board Kit BMC (ERoT) 固件#
使用以下过程更新 IGX Orin Board Kit (ERoT)。在连接了 BMC 的本地 Ubuntu 主机计算机上执行这些步骤。
验证您正在使用 IGX Orin Board Kit,而不是 IGX Developer Kit。
警告
如果您将此过程与 IGX Developer Kit 一起使用,您将使您的 BMC 进入不可恢复的状态。
从 获取 BMC 固件的步骤 中的路径下载
igx-bmc-apfw-erot.fwpkg
。通过运行以下代码,将您的 BMC 的 IP 地址保存为环境变量。将
<BMC_IP>
替换为您的 IP 地址,例如 192.168.1.110。export bmc=<BMC_IP>
登录到您的 BMC 并通过运行以下代码将您的访问令牌保存为环境变量。将
<BMC_Password>
更改为您的密码。export token=`curl -k \ -H "Content-Type: application/json" \ -X POST https://$bmc/login \ -d '{"username": "root", "password": "<BMC_Password>"}' | grep token | awk '{print $2;}' | tr -d '"'`
要开始更新,请运行以下命令。您将任务 ID 保存为环境变量,以便可以在以下步骤中检查更新的状态。
export task_id=$(curl -k \ -H "X-Auth-Token: $token" \ -H "Content-Type: application/octet-stream" \ -X POST https://$bmc/redfish/v1/UpdateService \ -T "<path and filename of igx-bmc-apfw-erot.fwpkg>" | jq -r ".Id")
要检查更新的状态,请运行以下命令。更新完成后,任务状态为
completed
。curl -k \ -H "X-Auth-Token: $token" \ -X GET https://$bmc/redfish/v1/TaskService/Tasks/$task_id
在任务状态变为完成之后,从 BMC Web UI 或使用以下命令重启 BMC。
curl -k \
-H "X-Auth-Token: $token" \
-X POST https://$bmc/redfish/v1/Managers/IGX_BMC_0/Actions/Manager.Reset \
-d '{"ResetType": "GracefulRestart"}'