跳转到内容

BATCAM FX Shell 软件更新

BATCAM FX 固件更新(使用 Shell)

1. 概述

本文介绍如何将 BATCAM FX 的固件(.swu 文件)在 Shell(终端)中通过 scpssh 命令以及设备内置的 SWUpdate 工具进行更新。由于叠加层、ROS 相关 REST API 等功能仅在固件 1.0.3 及以上版本中提供,建议始终保持固件为最新版本。

整个流程分为以下 4 个步骤。

  1. 通过 scp 将固件文件上传到 BATCAM FX

  2. 通过 SSH 连接到 BATCAM FX

  3. 在 BATCAM FX 中执行更新命令(swupdate

  4. 重启后确认固件版本

⚠️ 注意: 更新过程中,请勿关闭设备电源或断开网络连接。更新完成后,设备将自动重启。

💡 提示: 关于在 Web 浏览器中进行更新的方法,请参阅 BATCAM FX Web 软件更新。BATCAM FX2 需在设备管理器中使用另一种格式的文件(.mender)进行更新,因此请遵循 FX2 软件更新 文档。

2. 事前准备

  • 固件文件(.swu:请在工作 PC 上准备好要更新的固件文件。文件名的格式为 SMI-BATCAMFX-<版本>-signed-<构建时间>.swu。(例如:SMI-BATCAMFX-v1.0.3b-signed-20250502102525.swu)各版本的变更内容可在 FX 固件发行说明中确认。

  • 设备 IP 地址:必须知道 BATCAM FX 的 IP 地址。本文档的示例使用 192.168.50.11,请替换为实际环境中的 IP 地址。

  • 网络连接:工作 PC 与 BATCAM FX 必须处于同一网络中并能够相互通信。

  • 终端环境:需要可以使用 scpssh 命令的 Shell。(Windows PowerShell、macOS/Linux 终端)

  • SSH 登录账户:必须能够以设备的 root 账户通过 SSH 登录。

3. 第 1 步 — 上传固件文件(scp)

在固件文件所在的文件夹中按 Shift + 右键,选择'在终端中打开'或'打开 PowerShell 窗口'的 Windows 资源管理器界面

  1. 在固件文件所在的文件夹中打开 Shell。
  • Windows:在该文件夹中按 Shift + 右键,然后点击‘在终端中打开’或‘在此处打开 PowerShell 窗口’。

  • macOS/Linux:打开终端,使用 cd 命令进入固件文件所在的文件夹。此后的 scpssh 命令在所有操作系统中均相同。

  1. 然后,使用 scp 命令将固件文件上传到 BATCAM FX。
Terminal window
scp ./SMI-BATCAMFX-v1.0.3b-signed-20250502102525.swu root@192.168.50.11:~/
# 需将 SMI-BATCAMFX-v1.0.3b-signed-20250502102525.swu 部分替换为
# 要更新的实际固件文件名后再使用。

💡 提示: 请根据使用环境,将 192.168.50.11 部分替换为实际 BATCAM FX 的 IP 地址。(此后的所有命令同样适用。)

4. 第 2 步 — SSH 连接

使用 SSH 以 root 账户连接到 BATCAM FX。

Terminal window
ssh root@192.168.50.11
# 请根据您的使用环境更改 IP 地址后再使用。

5. 第 3 步 — 执行更新(swupdate)

连接之后,使用以下命令执行更新。

Terminal window
swupdate -i ~/SMI-BATCAMFX-v1.0.3b-signed-20250502102525.swu \
-v -p reboot -k /etc/swupdate/swupdate.pem -K /etc/swupdate/aes.key
# 需将 SMI-BATCAMFX-v1.0.3b-signed-20250502102525.swu 部分替换为
# 要更新的实际固件文件名后再使用。

各选项的含义如下。两个密钥文件已预先内置于设备中,因此直接使用原路径即可。

选项示例值说明
-i~/SMI-BATCAMFX-<版本>-….swu要安装的固件镜像(.swu)文件路径。指定在第 1 步中上传到 ~/(主目录)的文件。
-v输出详细日志。可在终端中查看更新进度。
-preboot更新完成后要执行的命令。由于指定了 reboot,因此完成时设备会自动重启。
-k/etc/swupdate/swupdate.pem用于验证固件签名的密钥文件。直接使用设备的默认路径。
-K/etc/swupdate/aes.key用于解密加密固件镜像的密钥文件。直接使用设备的默认路径。

6. 第 4 步 — 重启后确认版本

等待更新完成并且相机重启之后,可再次通过 SSH 连接到 BATCAM FX,确认固件版本。

root@SeeSV-BCMFMC0D6:~# cat /etc/os-release
ID=seesv
NAME="SeeSV (SM Instruments Inc.)"
VERSION="4.0.16 (kirkstone)"
VERSION_ID=4.0.16
PRETTY_NAME="SeeSV (SM Instruments Inc.) 4.0.16 (kirkstone)"
DISTRO_CODENAME="kirkstone"
BUILD_ID="20250411173035"
SEESV_RELEASE_VERSION="v1.0.3b"
SEESV_VENDOR_NAME="SMI"
SEESV_PROD_MODEL="BATCAMFX"

如果 SEESV_RELEASE_VERSION 的值与所安装固件文件的版本(上述示例中为 v1.0.3b)一致,则表示更新已正常完成。

也可以不通过 SSH 连接,而使用 REST API 确认版本。调用 GET /setting/status(设备信息查询)后,可在响应的 firmware_version 字段中确认当前的固件版本。该 API 使用 HTTP Basic 认证,详细的请求与响应格式请参阅 BATCAM FX API 参考

Terminal window
curl -u admin:<password> http://192.168.50.11/setting/status

7. 故障排除(Troubleshooting)

  • scp/SSH 无法连接时:

    • 确认命令中输入的 IP 地址是否为 BATCAM FX 的实际 IP 地址。

    • 确认工作 PC 与设备是否连接在同一网络中。

  • swupdate 因错误而终止时:

    • 确认 -i 选项中指定的文件名与路径是否与第 1 步中上传的文件完全一致。

    • 文件可能在传输过程中损坏,请使用 scp 重新上传固件文件后再执行该命令。

    • 请勿随意更改 -k-K 选项的密钥文件路径,直接使用设备的默认路径(/etc/swupdate/)。

  • 重启后无法连接到设备时:

    • 如果不是固定 IP 模式,重启后设备的 IP 地址可能发生变化。请确认变更后的 IP 地址,然后重新连接。
  • 更新后版本仍未改变时:

    • 可能是在重启完成之前进行了确认,请在重启结束后再次确认。

    • 如果仍显示旧版本,请从第 3 步(执行更新)开始重新执行。

8. 相关文档