更新您的 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 固件#

  1. IGX 下载中心 下载 bmc_fw_R36.x.x_aarch64.tbz2 到您的 Linux 主机计算机。

  2. 在您的主机计算机上,使用命令行提取下载的 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

选择正确的更新说明以避免损坏您的硬件

更新您的 IGX Developer Kit BMC (Non-ERoT) 固件#

使用以下过程之一来更新您的 IGX Developer Kit (Non-ERoT)。在连接了 BMC 的本地 Ubuntu 主机计算机上执行这些步骤。

按照以下步骤设置您的主机以访问 BMC 设置您的主机以访问 BMC

备选程序#

  1. 验证您正在使用 IGX Developer Kit。

    警告

    如果您将此过程与 IGX Orin Board Kit 一起使用,您将使您的 BMC 进入不可恢复的状态。

  2. 通过在每行前面加上 #,使用文本编辑器 (例如 vi) 或使用以下 sed 命令,注释掉 /usr/share/mctp/mctp 中的所有内容。

    1sed 's/^/#/' -i  /usr/share/mctp/mctp
    
  3. 重启 BMC。

    1reboot
    
  4. 使用 SCP 工具从主机将 image-bmc获取 BMC 固件的步骤 中的 run/initramfs/ 复制出来。

    1scp image-bmc root@192.168.1.110:/run/initramfs/
    
  5. 更新 BMC 中的新镜像。

    1/run/initramfs/update
    

    等待 100% 完成。

  6. 重启 BMC。等待大约 1 分钟以完成 BMC 重启。

    1reboot
    
  7. 再次设置密码,因为此过程将其重置为默认密码 0penBmc

更新您的 IGX Orin Board Kit BMC (ERoT) 固件#

使用以下过程更新 IGX Orin Board Kit (ERoT)。在连接了 BMC 的本地 Ubuntu 主机计算机上执行这些步骤。

  1. 验证您正在使用 IGX Orin Board Kit,而不是 IGX Developer Kit。

    警告

    如果您将此过程与 IGX Developer Kit 一起使用,您将使您的 BMC 进入不可恢复的状态。

  2. 获取 BMC 固件的步骤 中的路径下载 igx-bmc-apfw-erot.fwpkg

  3. 通过运行以下代码,将您的 BMC 的 IP 地址保存为环境变量。将 <BMC_IP> 替换为您的 IP 地址,例如 192.168.1.110。

    export bmc=<BMC_IP>
    
  4. 登录到您的 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 '"'`
    
  5. 要开始更新,请运行以下命令。您将任务 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")
    
  6. 要检查更新的状态,请运行以下命令。更新完成后,任务状态为 completed

    curl -k \
         -H "X-Auth-Token: $token" \
         -X GET https://$bmc/redfish/v1/TaskService/Tasks/$task_id
    
  7. 在任务状态变为完成之后,从 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"}'