mx-mft 用户手册

概述

墨芯 AI 计算卡上的固件分为板载固件和动态加载的固件两个部分。板载固件是存储在计算卡 Flash 上的固件,又分为板卡设备固件和板卡上的 MCU 固件。mx-mft 是用于管理墨芯 AI 计算卡设备固件的工具,您可使用 mx-mft 查询设备固件版本、给设备加载动态固件、重启设备、更新板载设备固件和 MCU 固件。

前提条件

在主机上安装 SOLA。具体的步骤,请参见《SOLA Toolkit 安装指南》。 安装 SOLA 后,mx-mft 的二进制文件位于/usr/bin 目录下。

命令说明

执行 mx-mft --help 命令获取 mx-mft 的使用方法:

$ mx-mft --help
mx-mft(V1.11) avaliable commands:
    mx-mft status <id> : show device status
    mx-mft boot <id> <firmware package>: load bootimage for devices
    mx-mft reboot <id> : reboot device
    mx-mft mcu-ota <S30_id> [<fw_file_path>]: ota S30 mcu fw
    mx-mft update <id> <firmware package> <-f>: update bootloader for devices

for command detail help, use "mx-mft -h <command>"
for mx-mft version information, use "mx-mft -v"

mx-mft 命令支持以下选项:

选项 说明
-v 查看 mx-mft 的版本信息。
status 显示设备的状态和版本信息。如不指定设备 id,则显示所有设备的状态和版本信息。
boot 对设备加载固件。
update -f 更新板卡设备固件。
注意您需要获取 root 权限后才能更新板卡固件。卡处于 Bootloader 模式时才能更新卡的固件,如果卡已经加载动态固件,请使用mx-mft reboot命令使卡重新启动到 Bootloader 模式。固件升级可以不加 -f 参数,固件降级和平级更新则需要增加-f参数。
reboot 重启设备,使设备进入 Bootloader 模式。
mcu-ota [] 更新板卡上 MCU 的固件。
注意仅 S30 计算卡支持此功能,墨芯其他计算卡不支持此功能。

说明

  • device_id:设备的 ID,参数可以类似是 0 或者 0-2(表示 0,1,2 这 3 个设备),或者是 all(表示所有的设备)

  • firmware package:墨芯发布的固件包压缩文件,例如 moffett-antoum-V3.71.15-20240823.tar.gz

  • fw_file_path:墨芯发布的 MCU 固件文件的路径,例如 /usr/local/sola/driver/firmware/ota-test/mcu_fw.tar.gz

使用示例

目前发布包 /usr/local/sola/driver/firmware/ota-test 目录下的压缩包是用来做固件更新测试的固件,仅用于测试目的。如果您烧录了该测试固件,请在测试完成后烧录回/usr/local/sola/driver/firmware/目录下的固件压缩包。

更新板载设备固件

  1. 查询当前的固件版本。

    $ mx-qual list | grep "Firmware version"
    Firmware version:   1.0.14
    Firmware version:   1.0.14
    Firmware version:   1.0.14
    
  2. 重启设备,使设备进入 Bootloader 状态。

    $ sudo mx-mft reboot all
    
  3. 更新板载的设备固件到 V1.0.15 版本。

    #以实际文件名为准
    $ sudo mx-mft update all /usr/local/sola/driver/firmware/moffett-antoum-V3.71.15-20240823.tar.gz  -f
    Package bootloader version info:
        version: V1.0.15
        type: Release
        build time: Aug 23 2024 10:49:58
    
    Device 0 info:
        SN: S30b1AAY24090117
        PN: 00S30-00A
        PCI bus: 0000:67:00.0
        Mode: Bootloader
        Bootloader version info:
            version: V1.0.14
            type: OTA TEST
            @@ Please note, this version is not a "Release" version, for test used only @@
            build date: Aug 16 2024
            active slot: A
    
    Device 1 info:
        SN: S30b1AAY24090117
        PN: 00S30-00A
        PCI bus: 0000:68:00.0
        Mode: Bootloader
        Bootloader version info:
            version: V1.0.14
            type: OTA TEST
            @@ Please note, this version is not a "Release" version, for test used only @@
            build date: Aug 16 2024
            active slot: A
    
    Device 2 info:
        SN: S30b1AAY24090117
        PN: 00S30-00A
        PCI bus: 0000:69:00.0
        Mode: Bootloader
        Bootloader version info:
            version: V1.0.14
            type: OTA TEST
            @@ Please note, this version is not a "Release" version, for test used only @@
            build date: Aug 16 2024
            active slot: B
    
    Start updating bootloader for device 0-2:
       0 (00S30-00A/S30b1AAY24090117 0000:67:00.0): bootloader update success(without reboot), version is V1.0.15 now
       1 (00S30-00A/S30b1AAY24090117 0000:68:00.0): bootloader update success(without reboot), version is V1.0.15 now
       2 (00S30-00A/S30b1AAY24090117 0000:69:00.0): bootloader update success(without reboot), version is V1.0.15 now
    
    Total 3 devices update bootloader, all success
    
    • 如果出现类似下文需要关闭服务器的提示, 则需要将服务器关机后重启以使用新的设备固件。

      Important: Please power off this server to use device new firmware
      
    • 如果未提示需要关闭服务器,则使用下面的命令重新启动 mx-daemon 服务,并等待 1 分钟左右后再查询新的固件版本。

      $ sudo systemctl restart mx-daemon
      
  4. 查询新的固件版本。

    $ mx-qual list | grep "Firmware version"
    Firmware version:   1.0.15
    Firmware version:   1.0.15
    Firmware version:   1.0.15
    

加载设备的动态固件

  1. 查看设备状态。

    $ mx-mft status 0
    
    #卡尚未加载动态固件状态下:其中Mode: Bootloader表示卡处于 Bootloader 模式
    Device 0 info:
        SN: S30b1AAY24090117
        PN: 00S30-00A
        PCI bus: 0000:67:00.0
        Mode: Bootloader
        Bootloader version info:
            version: V1.0.15
            type: Release
            build date: Jul 31 2024
            active slot: A
    
     #卡已经加载动态固件状态下:其中 Mode: Kernel UMD 表示卡已经加载完成动态固件
    mx-mft status 
    Device 0 info:
        SN: S30b1AAY24090117
        PN: 00S30-00A
        PCI bus: 0000:67:00.0
        Mode: Kernel UMD
        Firmware version: V1.0.15
    
  2. 如果设备未处于 Bootloader 状态,请重启设备,使设备进入 Bootloader 状态。

    $ sudo mx-mft reboot 0 
    
  3. 加载设备的动态固件。

    #以实际文件路径和文件名为准
    $ mx-mft boot 0 /usr/local/sola/driver/firmware/moffett-antoum-V3.71.15-20240823.tar.gz
    Extracting boot image...
    package boot image version info:
        version: V3.71
        build time:  Aug 23 2024 10:49:58
    boot image check OK, image size: 46.26MB
    
    start loading boot image for device 0:
       0 (00S30-00A/S30b1AAY24090117 0000:67:00.0): Boot image load success
    
    total 1 device loading boot image, all success
    

降级板卡 MCU固件

注意:

  • 在 S30 板卡 和 S40 板卡上均支持板卡 MCU 的升级和降级。

  • 降级板卡固件时,S30 的 MCU 版本必须在 4X05 及以上版本。

  • 板卡需要在加载动态固件后才能更新 MCU 的固件,如果板卡尚未加载动态固件,请使用 mx-mft boot 命令加载卡的固件。

下文以降级 MCU 版本为例,演示了更新板卡 MCU 固件的流程:

  1. 查询设备 0 1 2 的 MCU 版本。

    $ mx-smi select -f mcu_version -i 0 1 2
    mcu_version
    4X011
    4X011
    4X011
    
  2. 导入固件二进制文件,对设备 0 1 2 的 MCU 版本降级。

    #以ota-test目录下的文件名为准
    $ mx-mft mcu-ota 0-2 /usr/local/sola/driver/firmware/ota-test/mcu_fw.tar.gz
    device 0 mcu ota updating... 
    device 0 mcu ota success! 
    device 1 mcu ota updating... 
    deivce 1 mcu ota success! 
    device 2 mcu ota updating... 
    deivce 2 mcu ota success! 
    
  3. 降级流程结束后执行以下命令,查看当前 MCU 版本。

    $ mx-smi select -f mcu_version -i 0 1 2
    mcu_version
    4X08
    4X08
    4X08
    

    说明

    • S30 计算卡的 MCU 版本默认降级为 4x08 或 2V30。

    • S40 计算卡的 MCU 版本默认降级为 1V30。

升级板卡 MCU 固件

注意:

  • 在 S30 板卡 和 S40 板卡上均支持板卡 MCU 的升级和降级。

  • 升级板卡固件时,S30 的 MCU 版本必须在 4X04 及以上版本。

  • 板卡需要在加载动态固件后才能更新 mcu 的固件,如果板卡尚未加载动态固件,请使用mx-mft boot 命令加载卡的固件。

  1. 查询设备 0 1 2 的 MCU 版本。

    $ mx-smi select -f mcu_version -i 0 1 2
    mcu_version
    4X08
    4X08
    4X08
    
  2. 重启设备,使设备进入 Bootloader 模式。

    $ mx-mft reboot  0-2
     request device  0(0:03:00.0) reboot success
     request device  1(0:04:00.0) reboot success
     request device  2(0:05:00.0) reboot success
     wait devices rebooting...
     remove devices from pci bus...
     rescan all devices...
     device  0 reboot success
     device  1 reboot success
     device  2 reboot success
    
  3. 执行以下命令,升级板卡 MCU 固件,默认升级为当前发布的最新版本。

    #压缩包文件名请以您实际获取的为准
    $ mx-mft boot  0-2  /usr/local/sola/driver/firmware/moffett-antoum-V3.71.15-20240823.tar.gz
    Extracting boot image...
    package boot image version info:
        version: V3.71
        build time: Aug 23 2024 10:49:58
    boot image check OK, image size: 46.26MB
    
    start loading boot image for device 0-2:
       0 (00S30-00A/S30b1AAY24090117 0000:67:00.0): Boot image load success
       1 (00S30-00A/S30b1AAY24090117 0000:68:00.0): Boot image load success
       2 (00S30-00A/S30b1AAY24090117 0000:69:00.0): Boot image load success
    
    total 3 device loading boot image, all success
    
  4. 升级流程结束后执行以下命令,查看当前 MCU 版本。

    $ mx-smi select -f mcu_version -i 0 1 2
    mcu_version
    4X011
    4X011
    4X011
    

    说明

    • S30 计算卡的 MCU 版本默认升级为 4X011 或 2V31。

    • S40 计算卡的 MCU 版本默认升级为 1V31。