Jetson 产品级 OTA 完整方案:JetPack / Yocto + Mender 架构与落地指南

Jetson-AGX-Xavier OTA更新系统固件 执行成功后,rootfs保存设置的用户名、密码、hostname。升级rootfs后,就不会跳出系统配置界面,直接进入登录界面,使用nvidia进行登录。等待命令执行完毕后,此时真正的升级没有完成,需要重启后,xavier会在下次重启时更新emmc里面的内容,所以在重启的过程中不能断电。执行下面命令设置ubuntu的默认用户名和密码。启动xavier,进入xavier文件系统中,找到我们上传的OTA升级包和升级工具。进入到用户电脑上的Linux_for_Tegra目录,执行相关命令。目录下,执行升级命令。 阅读详情

📺 B站:博主个人介绍

📘 博主书籍-京东购买链接*:Yocto项目实战教程

📘 加博主微信,进技术交流群: jerrydev


Jetson 产品级 OTA 完整方案:JetPack / Yocto + Mender 架构与落地指南

目标:给出一套可落地、带服务器、支持回滚、安全可审计的 Jetson OTA(Over-the-Air Update)方案。

覆盖两条主线:

  1. JetPack / L4T(Ubuntu):以 NVIDIA 官方更新机制为底座,补齐服务器与设备端 Agent;
  2. Yocto(meta-tegra):用 Yocto 直接构建系统镜像,并用 Mender(或兼容机制)实现舰队级 OTA。

重点:详细介绍 Mender(你可以把它理解为“OTA 平台 + 设备端更新框架”),并给出架构、流程、程序骨架、工程清单。


在这里插入图片描述

1. 为什么 Jetson 的 OTA 不能只靠“刷机脚本”

在实验室里,flash.sh 或 l4t_initrd_flash.sh 很好用:连接设备、进恢复模式、整机重刷。

但到了产品现场,问题立刻出现:

  • 设备散落在各地,无法物理接触。
  • 更新失败要能自动回滚,不能“升级一次变砖一次”。
  • 需要灰度发布(先 1%,再 10%,再全量),并能按型号/地区/批次发布。
  • 需要可追溯:这台机器什么时候更新了什么版本?为什么失败?失败后是否自动恢复?
  • 需要安全:更新包要签名校验;传输要 TLS;要能配合 Secure Boot / Disk Encryption。

因此,“产品级 OTA”本质上是三件事:

  1. 更新引擎(Update Engine):在设备上可靠写入新系统,并做到原子切换/回滚。
  2. 设备端 Agent(OTA Client):负责检查版本、下载包、验证、触发更新、上报结果。
  3. 服务器平台(OTA Server / Fleet Manager):负责存储包、版本策略、灰度发布、设备分组与观测。

NVIDIA 的文档与工具通常只覆盖 1) 更新引擎与部分“本地触发流程”,而 2) 与 3) 需要你补齐。


2. 需求定义:一套“真正能用”的 OTA 应该满足什么

下面这份需求清单建议你直接作为产品规范(PRD/系统设计文档)的开头:

2.1 安全

  • 传输安全:HTTPS/TLS;可选双向 TLS。
  • 包完整性:至少 SHA256;最好再叠加签名(离线私钥签包)。
  • 身份与授权:设备必须可被唯一识别(证书/密钥/序列号),并受控加入系统。

2.2 可靠

  • 原子切换:新系统写入到“非活动槽”(inactive slot),写完后再切换。
  • 自动回滚:新系统启动失败或健康检查失败,自动回退到旧系统。
  • 断电保护:下载中断/写入中断不应破坏旧系统。

2.3 可运营

  • 灰度/分批:按组、按百分比、按时间窗发布。
  • 可观测性:更新进度、失败原因、日志回传、版本盘点。
  • 可控性:支持暂停/回滚/撤回发布。

2.4 适配 Jetson 特性

  • Jetson(尤其 Orin,R35/R36)涉及:UEFI、A/B boot chain、可能的 capsule 更新、以及 nvbootctrl 的槽管理。
  • 需要考虑:rootfs A/B、boot/ESP、data 分区、加密、Secure Boot 的密钥管理。

3. Jetson OTA 的“更新对象”与“切换点”

你要先明确:OTA 到底在更新什么。

3.1 更新对象分层

A. 应用层(App / Container / Model)

  • 典型:你的业务程序、Docker 容器、AI 模型文件、配置文件。
  • 特点:更新频繁、包小、风险低。

B. 系统层(Rootfs / Kernel / DTB / Drivers)

  • 典型:Linux rootfs、内核、设备树、驱动、系统服务。
  • 特点:更新较重;需要 A/B 与回滚。

C. 启动链层(Bootloader / Firmware / UEFI / MB1/MB2 等)

  • 特点:风险最高;一旦失败可能无法启动;通常要严格的版本/回滚保护。

3.2 Jetson 的关键切换点:A/B 槽(slot)

Jetson 的“系统级 OTA”核心是:

  • 把新系统写到另一套分区/槽(inactive)。
  • 写完后把“启动指针”切到新槽。
  • 新槽首次启动后必须通过健康检查并“确认提交(commit)”。
  • 未提交或启动失败 → 自动回滚到旧槽。

这套思路无论你用 NVIDIA 官方 image-based OTA,还是用 Mender/SWUpdate/RAUC,本质都一致。


4. NVIDIA 官方提供了什么:JetPack / L4T 的两类 OTA

在 JetPack/L4T 体系里,NVIDIA 官方提供两类更新路径:

4.1 APT(Debian 包)OTA ——“包管理式升级”

  • 类似 PC:设备从 NVIDIA APT 源更新组件。
  • 优点:轻量、适合更新用户态组件;对开发者友好。
  • 风险:包之间依赖复杂;跨大版本容易踩坑;不等价于“整机原子更新”。
  • 适用:更新 JetPack 组件/库、部分系统包,或做“应用层 OTA”。

4.2 Image-based OTA ——“镜像/分区级更新”

  • Host 端生成 ota_payload_package,Target 端用脚本触发安装。
  • 优点:更接近产品级:按分区更新,能与 A/B 槽结合。
  • 现状:NVIDIA 给的是“工具链 + 本地触发机制”,你仍需要接入服务器与设备管理。

你之前阅读的文档正是把这两类 OTA 放在同一章节里,但没有给“完整 OTA 服务器平台”。


5. “带服务器 OTA”到底缺什么:最小闭环架构

无论你选 JetPack 还是 Yocto,一套成熟 OTA 系统至少要长这样:

           ┌──────────────────────────────┐
           │            OTA Server         │
           │  - Artifact/Package Storage   │
           │  - Version/Policy/Groups      │
           │  - Rollout (canary/phased)    │
           │  - Status/Inventory/Logs      │
           └───────────────┬──────────────┘
                           │ HTTPS/TLS
                           │
┌──────────────────────────▼──────────────────────────┐
│                   Jetson Device                      │
│  ┌───────────────────────────────────────────────┐  │
│  │ OTA Agent / Mender Client                      │  │
│  │  - check update                                │  │
│  │  - download + verify                            │  │
│  │  - call Update Module / updater                 │  │
│  │  - report status + inventory                    │  │
│  └───────────────┬───────────────────────────────┘  │
│                  │                                   │
│  ┌───────────────▼───────────────────────────────┐  │
│  │ Update Engine                                 │  │
│  │  A) NVIDIA image-based OTA (nv_ota_start)      │  │
│  │  B) Mender rootfs A/B (Yocto)                  │  │
│  │  C) SWUpdate/RAUC (Yocto)                      │  │
│  └───────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────┘

下面我们用 Mender 把这套闭环真正落地。


6. Mender 是什么:从“工具”到“平台”的完整解释

你可以把 Mender 理解成:

  • 设备端:Mender Client(OTA Agent) + Update Modules(可插拔更新执行器)
  • 服务器端:Mender Server(设备管理、发布编排、状态回传、UI/API)
  • 工件格式:Mender Artifact(可签名,可包含 rootfs/app/任意 payload)

6.1 组件拆解

(1) Mender Client(设备端)

  • 长期运行的守护进程(daemon)。

  • 核心职责:

    • 周期性或被动触发检查更新
    • 下载 artifact
    • 完整性校验
    • 调用 Update Module 执行安装
    • 上报状态:downloading/installing/rebooting/success/failure
    • 盘点 inventory:设备型号、版本号、序列号、标签

(2) Update Module(设备端插件)

  • Mender 的关键能力:让你把“任何更新方式”封装成可管理的模块。

  • 它可以更新:

    • rootfs 分区(系统更新)
    • deb 包(包更新)
    • Docker 镜像
    • 自研 bootloader
    • 甚至 MCU 固件

(3) Artifact(更新包)

  • 不只是一个 zip:它带有元数据(版本、兼容型号、payload 类型等)。
  • 你可以把 NVIDIA 的 ota_payload_package.tar.gz 直接作为 artifact 的 payload。

(4) Mender Server(服务器端)

  • 提供:

    • 设备接入与认证
    • 设备分组与标签
    • 发布策略与灰度
    • 更新进度、失败原因统计
    • API/GUI

成本:Mender 有托管付费版本,也有开源自建版本。


7. 方案一:JetPack / L4T(Ubuntu) + NVIDIA image-based OTA + Mender(推荐做“产品级”)

这条路线的核心思想是:

  • 系统更新执行:仍由 NVIDIA image-based OTA 工具完成(最贴合 Jetson 分区/槽/UEFI 的细节)。
  • 服务器与设备管理:交给 Mender(灰度、分批、回传、设备盘点)。
  • 粘合点:写一个 Mender Update Module,在设备上调用 nv_ota_start.sh。

7.1 为什么这条路在 Jetson 上很实用

  • 你不需要重新“发明 Jetson 的分区/槽逻辑”。
  • NVIDIA 工具已经考虑了大量 Jetson 细节(例如 boot chain 与 recovery 环节)。
  • Mender 提供产品级 OTA 平台能力(Server + Client + rollout + status)。

7.2 架构与数据流

CI/Build Host
  ├─ 生成 L4T / JetPack 新版本(或你的定制 rootfs)
  ├─ l4t_generate_ota_package.sh → ota_payload_package.tar.gz
  ├─ 对 payload 计算 sha256,做签名(可选)
  └─ 封装为 Mender Artifact(payload = ota_payload_package.tar.gz)

Mender Server
  ├─ 上传 Artifact
  ├─ 定义 Deployment(目标设备组、灰度比例、时间窗)
  └─ 下发给设备

Jetson Device
  ├─ mender-client 下载 Artifact
  ├─ Update Module 校验 payload
  ├─ 调用 nv_ota_start.sh 执行安装
  ├─ 重启,进入更新流程
  └─ 启动后做健康检查→成功则上报 success

7.3 设备端程序骨架:Update Module(关键)

下面给一个“可落地”的骨架(示意)。

目标:让 Mender 把 payload 交给模块,模块负责:校验、落盘、触发 OTA、处理重启、启动后验证。

7.3.1 目录约定
  • Update Module 放在:/usr/share/mender/modules/v3/
  • 模块名称建议:nvimage-ota(payload_type 也用同名)
  • 运行日志建议:/var/log/nvimage-ota/ 或 /ota_log/(与 NVIDIA OTA 日志结合)
7.3.2 模块伪代码(shell 示意)
#!/bin/sh
# /usr/share/mender/modules/v3/nvimage-ota
# payload_type: nvimage-ota

set -e

OTA_DIR="/ota"
PAYLOAD_NAME="ota_payload_package.tar.gz"

log() { echo "[nvimage-ota] $*"; }

case "$1" in
  ArtifactInstall)
    # $2 = path to payload file provided by mender
    PAYLOAD_SRC="$2"

    log "Prepare OTA dir"
    mkdir -p "$OTA_DIR"

    log "Copy payload"
    cp -f "$PAYLOAD_SRC" "$OTA_DIR/$PAYLOAD_NAME"

    log "(Optional) verify sha256/signature"
    # sha256sum -c ...

    log "Start NVIDIA image-based OTA"
    # 注意:这一步通常会触发后续更新流程并需要 reboot
    # 你可以选择:立即执行 or 写入 systemd service 再执行
    /usr/sbin/nv_ota_start.sh "$OTA_DIR/$PAYLOAD_NAME"

    log "nv_ota_start returned, request reboot"
    # 让 mender-client 知道需要重启:可以直接 reboot
    reboot
    ;;

  NeedsArtifactReboot)
    # 如果你的流程设计为 install 阶段不 reboot,这里返回 0/1 表示是否需要 reboot
    exit 0
    ;;

  ArtifactCommit)
    # 系统启动后,Mender 进入 commit 阶段
    # 这里做健康检查 + 槽状态检查

    log "Health check"
    # 1) 你的业务服务是否起来了?
    # systemctl is-active myservice
    # 2) 是否能访问关键外设?(摄像头/网络/存储)
    # 3) slot 状态是否 normal?(nvbootctrl dump-slots-info)

    log "Commit success"
    exit 0
    ;;

  ArtifactRollback)
    # 如果更新失败,Mender 会走 rollback
    # 对 NVIDIA image-based OTA 来说,回滚通常由 boot chain/slot 自动处理
    log "Rollback called"
    exit 0
    ;;

  *)
    log "Unsupported command: $1"
    exit 1
    ;;
esac

注意:上面是“骨架”。真正工程里要补齐:

  • 错误码处理(区分网络失败、校验失败、安装失败)
  • 日志采集与回传(至少把 /ota_log/*.log 关联到设备事件)
  • 避免反复重启循环(设置最大重试次数、失败保护)

7.4 服务器侧最小实现(Mender Server)

你可以先用最小闭环:

  • 一台云服务器(或内网服务器)跑 Mender Server。
  • 存储:本地磁盘/对象存储。
  • 设备接入:设备端预置证书/公钥(或用预授权流程)。

工程化建议:

  • 用 CI/CD 产生 Artifact 并上传到 Server。
  • 发布策略:从“内部测试组 → 灰度组 → 全量组”。

7.5 JetPack 路线的工程要点清单

  • 分区与空间:OTA payload 往往很大,设备要有足够空间(尤其 eMMC)。
  • 外置 NVMe:如果 rootfs 在 NVMe,payload 生成/安装参数要匹配。
  • 跨大版本升级:R35→R36 这类升级常常需要额外注意(甚至可能要求按链路执行多次更新)。
  • Secure Boot / Disk Encryption:要把密钥管理、签名校验纳入流程,不要把私钥放到 CI 容器里。

8. 方案二:Yocto(meta-tegra)直接构建 + Mender(系统级 OTA)

这条路线适合你“坚持 Yocto 体系、可重复构建、可裁剪”的诉求。

核心思想:

  • Yocto 产出 rootfs 镜像与分区布局。
  • meta-mender 把 Mender Client 与 A/B 更新逻辑融入系统。
  • Mender Artifact 直接承载“新 rootfs 镜像”,写入 inactive 分区后切换。

8.1 为什么 Yocto + Mender 很适合量产

  • 可重复构建:同一版本可追溯。
  • 可裁剪:减少不必要包,降低攻击面。
  • 更像“产品 OS”:你不再依赖 Ubuntu 的包生态变化。

8.2 Yocto + Mender 的关键:分区设计

建议你从一开始就把分区规划当成“系统架构”的一部分:

  • rootfsA / rootfsB:两套系统根分区。
  • boot / ESP:引导分区(可能也需要冗余或可更新策略)。
  • data:业务数据分区(不随 OTA 覆盖)。

重要原则:

  • 系统与数据分离:OTA 更新系统时不动数据。
  • 更新写入 inactive:任何写操作都不能破坏当前运行系统。

8.3 典型更新流程(Mender 原子更新模型)

1) 设备运行在 rootfsA
2) Mender 下载新 Artifact
3) 写入 rootfsB
4) 设置下一次启动切换到 B
5) reboot
6) 系统从 B 启动
7) 运行健康检查(业务服务、外设、网络)
8) 检查通过 → commit
9) 检查失败/未 commit → 自动回滚到 A

8.4 程序层面你要做什么

(1) 把 Mender 集成到 Yocto 镜像

  • 引入 meta-mender。
  • 在 distro/image 配置中启用 mender 特性。
  • 配置设备 identity、服务器地址、artifact 名称等。

(2) 把健康检查做成“可自动判断”的机制

  • 系统启动后:

    • 关键服务必须 active
    • 关键外设必须可用
    • 网络必须连通(或至少本地业务可运行)
  • 不通过则触发回滚(Mender 会按机制处理)。

(3) 把版本信息写清楚

  • build id、git commit、镜像版本、兼容型号。
  • 在 Mender inventory 里上报,让你一眼看到舰队分布。

8.5 与 Jetson 特性(UEFI/A/B)的关系

在 Jetson 上你会遇到一个现实问题:

  • 某些平台以 UEFI + nvbootctrl 管理槽。
  • Mender 传统上也支持多种 bootloader 集成(U-Boot/GRUB 等)。

工程建议:

  • 如果你已经采用 meta-tegra 的 A/B 槽体系,优先让“槽切换”走平台成熟路径。
  • Mender 在 Yocto 里负责“包管理 + 发布 + 状态回传”,槽切换与启动确认要与你实际 boot flow 对齐。

做法有两种:

  1. 让 Mender 的 boot integration 与平台一致(最理想);
  2. 让 Mender 通过 Update Module 触发平台槽切换(类似方案一的思路)。

9. 方案三(备选):Yocto + SWUpdate/RAUC(不展开但给你决策点)

如果你不想引入 Mender Server,而只想要“可更新 + 可回滚”,SWUpdate/RAUC 也很成熟。

  • SWUpdate:强在灵活 handler、与 Yocto layer 集成简单。
  • RAUC:强在签名与系统集成规范化。

但它们一般不直接提供“完整服务器平台”,你仍要自建:

  • 版本清单
  • 灰度发布
  • 设备回传

如果你的目标是“完整服务器 OTA”,Mender 往往更省工程量。


10. 服务器 OTA 的工程化落地:从 POC 到量产

10.1 推荐路线图

阶段 0:POC(1~5 台设备)

  • 单一设备组
  • 单一 artifact
  • 能完成一次成功更新与一次失败回滚

阶段 1:试点(20~100 台)

  • 引入分组:internal/canary/prod
  • 引入灰度:1% → 10% → 50% → 100%
  • 引入日志回传与失败统计

阶段 2:量产(1000+)

  • 加入地域/网络差异策略
  • 加入夜间窗口/限速
  • 加入强制版本门槛(回滚保护/最低版本)
  • 建立密钥管理与审计流程(签名私钥离线)

10.2 发布策略(强烈建议写进 SOP)

  • 所有发布必须经过:

    • 自动化测试(启动、关键外设、关键服务)
    • 回滚测试(模拟断电/服务失败)
  • 每次发布必须定义:

    • 目标设备组
    • 最大失败比例阈值
    • 自动暂停条件

11. 安全专题:Secure Boot、磁盘加密、签名与密钥

如果你的 Jetson 走到“产品安全”阶段,建议把这部分写成独立章节。

11.1 传输安全

  • 全程 HTTPS。
  • 设备端证书建议出厂注入或首次注册后固化。

11.2 包完整性与签名

  • 至少:sha256 校验。

  • 更推荐:

    • Mender Artifact 签名(离线私钥)
    • 设备端只存公钥

11.3 Secure Boot

  • Secure Boot 的核心是“只允许运行被信任的 boot chain”。
  • OTA 更新 bootloader/UEFI 相关内容时,必须保证签名链完整。

11.4 Disk Encryption

  • 加密通常影响:rootfs 的解密时机、initrd、密钥存储。

  • OTA 必须确保:

    • 更新写入的分区加密策略一致
    • 设备能在新槽正常解密启动

经验建议:

  • 先把“无加密/无 secure boot”跑通 OTA,再逐层叠加安全特性。
  • 每加一层安全能力,都要补一轮“失败回滚测试”。

12. JetPack vs Yocto:怎么选

下面给一张工程决策表(你可以直接放进方案评审 PPT):

维度JetPack / Ubuntu 路线Yocto 路线
上手速度快(生态完整)中(需要 build 体系)
可重复构建较弱(依赖 apt 生态)强(完全可控)
系统裁剪较难很强
产品化一致性中强
OTA 推荐方案NVIDIA image-based OTA + MenderYocto + meta-mender(或 SWUpdate/RAUC)
长期维护成本中~高(包变化)中(但更可控)

我的推荐(经验向):

  • 如果你现在是 JetPack 项目并且要快速产品化 OTA:方案一(NVIDIA OTA + Mender)。
  • 如果你从一开始就要走“可控 OS + 长期量产”:方案二(Yocto + Mender)。

13. 最终给你一份“可执行清单”(照着做就能落地)

13.1 你需要准备的仓库/模块

  • ota-build:CI 脚本

    • JetPack:生成 ota_payload_package.tar.gz
    • Yocto:构建 rootfs 镜像 + 生成 .mender artifact
  • device-agent:设备端扩展

    • Update Module(nvimage-ota)
    • 健康检查脚本(systemd service)
    • 日志采集(可选)
  • mender-server:服务器部署配置

    • docker-compose / k8s manifests
    • 证书/域名/存储配置

13.2 POC 目标(一天内就应该达成)

  • 设备成功接入 Mender Server(能看到 inventory)。

  • 能对单台设备下发更新包。

  • 能完成:

    • 成功更新一次
    • 故意让健康检查失败一次并回滚

13.3 你在 Jetson 上最容易踩的坑(提前规避)

  • payload 太大导致空间不足。
  • 外置 NVMe 的路径/分区名与生成参数不一致。
  • 跨大版本升级的额外限制(例如需要分阶段或多次更新)。
  • 更新后 slot 切换失败:通常与 boot chain 状态、确认逻辑、或设备自身异常有关。
  • 没有“健康检查”导致更新成功与否无法自动判定。

14. 你可以直接复用的“架构结论”

如果你要一句话总结给团队:

Jetson 的产品级 OTA = NVIDIA(或 Yocto)提供的更新引擎 + Mender 提供的服务器编排与设备端 Agent + 严格的健康检查与灰度策略。


15. 下一步我可以继续帮你做什么

你如果希望我把这篇方案进一步“落地到你现在的工程”,我建议直接按下面三选一推进:

  1. JetPack 路线落地:我给你一套“Update Module + systemd 健康检查 + CI 产物封装”的完整目录结构(可直接放到 Git)。
  2. Yocto + meta-tegra + Mender 路线落地:我给你一套 bblayers.conf/local.conf/distro/image 的最小配置骨架,以及 artifact 生成与上报字段设计。
  3. 写成可发布博文/章节:按你的风格把内容再“更书籍化、更可读”,并加上配套流程图与排错清单。

📺 B站:博主个人介绍

📘 博主书籍-京东购买链接*:Yocto项目实战教程

📘 加博主微信,进技术交流群: jerrydev


NVIDIA Jetson OTA升级 jetson在线升级jetpack组件 阅读详情

相关推荐

Nvidia JetPack&SDK 版本对照表 /L4T sdk版本说明/Jetson机器版本说明

JetPack Archive | NVIDIA Developer2022.07 update2022.07 update

jzwjzw19900922的博客 6177

NVIDIA Jetson之OTA远程升级Jetpack

0 背景 使用过 Jetson 系列产品的同学都知道,NVIDIA Jetpack 更新速度较快,每次升级之后都需要使用 NVIDIA SDK Manager 工具来进行刷机,重新安装开发环境,耗费很多精力。 不过,从 Jetpack 4.4.0 开始,这个苦恼就可以避免了,因为 NVIDIA 提供了方便的 OTA(Over-the-Air)线上升级的方法,不需要重新配置环境,无疑是一个很方便的方式,本文对升级...

zhaidandan135的博客 2956

BMC的风扇控制 (Fan speed control)

这篇文章是我刚开始做风扇功能的时候写的,因为那时候都找不到主管要我报告的内容,所以报告完就顺便整理一下,最近因为在修控制学,之后应该会再补一篇和控制学相关的内容 (如果有空的话) BMC的风扇控制算一个蛮重要的功能,那这个功能包含了"TACH"和"PWM"这两个常用讯号怎么解读,还有最常用的控制演算法"PID(closed loop)"和"Stepwise(openloop)",而另外的Error control ,因为每家做法不同,就不会在这边作介绍 ##实作程式码是来自Facebook的openBM

yeiris的博客 1万+

嵌入式 Linux Mender OTA 实战全指南

《嵌入式Linux Mender OTA实战指南》系统介绍了如何在Yocto项目中集成Mender实现OTA升级功能。文章详细解析了Mender的三层架构(客户端/服务端/构建工具)、核心机制(A/B分区、回滚策略)和Yocto集成步骤,包括镜像配置、密钥生成和OTA包构建。通过对比RAUC等方案,突出Mender在分区管理、云端服务等方面的优势。该指南为开发者提供了一套完整的嵌入式设备OTA解决方案,涵盖从本地配置到云端部署的全流程实践要点,适合需要实现安全可靠远程升级的嵌入式Linux项目参考。

Interview_TC的博客 2415

SAP 资产主数据屏幕增强:对比字段追加与子屏幕/页签 2 种方案优劣

本文深入对比了SAP资产主数据(AS01/AS03)屏幕增强的两种方案:字段追加与子屏幕/页签。从技术实现、业务适配、系统维护等维度分析各自优劣,提供方案选型决策树和混合方案实践建议,帮助企业在SAP实施中做出最优选择。

weixin_28559803的博客 283

PyCharm + Anaconda虚拟环境:完美配置PySide6开发三件套(Designer/UIC/RCC)的避坑指南

本文详细介绍了如何在PyCharm和Anaconda虚拟环境中配置PySide6开发三件套(Designer/UIC/RCC),提供从环境准备到工具集成的完整解决方案。通过清晰的路径定位和PyCharm外部工具配置指南,帮助开发者快速搭建高效的Python GUI开发环境,避免常见配置陷阱。

weixin_28828243的博客 337

mender----What is Mender?

What is Mender?     Mender is an open source remote software updater for embedded Linux devices. It includes both a client and a management server, which are both licensed under Apache 2.0.     It e

csdn66_2016的博客 2341

AlphaFold-multimer实战:从零开始预测STAT1-STAT2蛋白复合物结构

本文详细介绍了使用AlphaFold-multimer从零开始预测STAT1-STAT2蛋白复合物结构的完整实战流程。内容涵盖环境配置、数据库准备、序列处理、参数优化及结果可信度评估,为研究者利用这一AI工具进行复合物结构预测提供了系统指南和深度解析。

weixin_29094301的博客 885

边缘AI部署实战:Jetson与RK3588选型及Yocto构建指南

边缘AI将模型推理从云端迁移至终端设备,核心是在功耗、延迟、成本等约束下实现高效计算。其原理依赖异构计算架构,通过NPU、GPU等加速器协同工作,并借助模型量化与算子融合提升推理效率。技术价值在于降低带宽依赖、增强数据隐私与实时响应能力,广泛应用于工业质检、智能安防、机器人等场景。嵌入式工程师需掌握模型部署与系统级优化,结合Jetson或RK3588平台及Yocto构建系统,实现从原型到产品的落地。

weixin_34124651的博客 347

保姆级教程:用GROMACS的FEP方法计算小分子结合自由能(附完整mdp配置)

本文提供了一份详细的GROMACS自由能微扰(FEP)计算教程,涵盖从系统准备、参数配置到结果分析的全流程。通过具体案例演示如何计算小分子结合自由能,包括λ窗口设计、动力学参数优化及并行化执行技巧,帮助研究者克服FEP计算中的常见问题,获得可靠的自由能数据。

weixin_30598225的博客 352

机器学习算法原理:详细介绍各种机器学习算法的原理、优缺点和适用场景

现在,我们将进入到机器学习的核心部分——算法原理。在本篇文章中,我们将详细探讨各种机器学习算法的原理、优缺点和适用场景。

a871923942的博客 2965

从零开始:Mender OTA更新的完整入门指南

想要为你的物联网设备实现安全可靠的空中软件更新吗?Mender作为一款开源的OTA更新管理器,专门为嵌入式Linux设备设计,让远程部署和管理变得简单高效。无论你是物联网开发者还是嵌入式系统工程师,这篇指南都将带你一步步掌握Mender的核心使用方法。 ## 🚀 Mender项目架构全解析 Mender采用现代化的微服务架构设计,通过多个组件协同工作,为设备提供完整的生命周期管理。 [![

gitblog_00220的博客 806

Python爬虫实战:基于Scrapy与Playwright高效爬取人民网新闻数据

本文将详细介绍如何使用Python最新技术栈(Scrapy框架结合Playwright浏览器自动化工具)高效爬取人民网新闻数据。文章包含完整项目搭建、反反爬策略、数据解析存储以及性能优化等核心内容,提供可直接运行的代码示例,适合中高级Python开发者学习现代网络爬虫开发技术。python# 去除特殊空白字符。

2201_76125261的博客 1118

【亲测免费】 Mender:物联网设备的云端更新利器

Mender是一款开源的、针对IoT(物联网)和嵌入式Linux设备设计的空中(Over-The-Air, OTA)软件更新管理器。它采用客户机-服务器架构,允许对软件部署进行集中管理,包括动态分组、逐步部署以及增量更新等功能。Mender支持从全根文件系统到容器化应用的各类更新,并且通过其强大扩展性,提供远程终端访问、端口转发、文件传输及设备配置管理等工具。该工具无缝集成Azure IoT Hu...

gitblog_00310的博客 1099

华为OD机考双机位C卷 - 风险投资计划(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 风险投资计划(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 546

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Jetson 分区知识全解与 OTA 升级实战

在嵌入式系统中,**分区(Partition)** 是理解启动流程、存储布局以及 OTA 升级机制的关键环节。NVIDIA Jetson 平台(如 Jetson AGX Orin、Orin NX、Orin Nano)在存储分区设计上提供了高度灵活性和扩展性,既能满足引导加载程序、固件、内核的独立存储需求,也支持用户数据和系统根文件系统的动态管理。本文将带你从分区架构入手,逐步讲解如何在 Jetson 平台上实现 OTA 升级方案,并给出实战示例与逻辑图。

Interview_TC的博客 1802

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

JetPack

jetson jetpack

zxw的博客 1184

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

如何在FastAPI中高效导入JSON测试数据:完整指南

FastAPI作为一款高性能、易学习的现代Python Web框架,在处理测试数据时常常需要导入JSON文件。本文将详细介绍如何在FastAPI项目中实现JSON测试数据的导入,帮助开发者快速搭建测试环境,提升开发效率。 ## 为什么选择JSON作为测试数据格式? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有易读性强、结构清晰、跨语言兼容等特

gitblog_00058的博客 1125

【亲测免费】 探索Mender:强大的设备固件更新框架

是一个开源项目,专注于为物联网(IoT)设备提供安全、可靠的固件更新解决方案。它由DeviceUpdate和DeviceConnectivity两部分组成,旨在简化设备生命周期管理,确保设备始终运行最新、最安全的固件。 ## 技术分析 ### 分布式架构 Mender采用分布式系统设计,能够处理大规模设备群的固件更新。它支持并发更新,并且在故障时能够自动恢复,保证了系统的高可用性。 ###...

gitblog_00014的博客 1095

全面解析Mender:构建可靠的嵌入式Linux OTA更新方案

在物联网设备快速普及的今天,**OTA软件更新**已成为确保设备安全性和功能完整性的关键技术。Mender作为一款开源的**物联网设备管理**平台,为**嵌入式Linux更新方案**提供了完整的解决方案。 ## 🛠️ 快速上手:搭建Mender开发环境 ### 环境准备与依赖安装 要开始使用Mender进行设备管理,首先需要准备开发环境。系统要求包括: - **编译工具链**:支持C++1

gitblog_00768的博客 798

[ 物联网篇 ] 11 - NXP i.MX8M Mini 集成Mender OTA解决方案

烧录固件提示 boot_fdt=try bootcmd=mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else run mender_setup; if run loadimage; then run mmcboot; run mender_try_to_recover; els...

程序手艺人 - 嵌入式音频技术之旅 3231

NVIDIA jetson 快速入门指南

Quick Start Guide(快速入门指南) Types and Models of Jetson Devices Preparing a Jetson Development Kit for Use L4T Over-the-Air (OTA) Updates (Jetson设备的类型和模型准备一个Jetson开发工具包L4T无线(OTA)更新) The information here is intended to help you get started quickly using th

qq_38892528的博客 4152

Jetson 不刷机升级 Jetpack 版本教程

Jetson设备想升级Jetpack版本,但是又不想刷机怎么办?本文帮你解决这个问题

芝麻小鱼的博客 3708

精通嵌入式 Linux 开发第四版(四)

能够在现场设备上更新软件至少是一个有用的特性。如果设备连接到互联网,那么在现场更新软件就绝对是必须的。然而,往往这个特性被推到项目的最后部分,因为人们认为这不是一个难以解决的问题。在这一章中,我希望我已经阐明了设计一个有效且稳健的更新机制所涉及的各种问题。此外,还有多个开源选项可以直接使用。现在,你不必再重新发明轮子了。最常用的两种方法是对称镜像(A/B)更新或它的变种,非对称(恢复)镜像更新。在这里,你可以选择 SWUpdate、RAUC、Mender 和 fwup。

龙哥盟 3788

Mender 项目常见问题解决方案

Mender 是一个开源的空中(OTA)软件更新管理器,专为物联网(IoT)和嵌入式 Linux 设备设计。它采用客户端-服务器架构,允许中心化的软件部署管理,包括动态分组、分阶段部署和增量更新等功能。Mender 还支持强大的扩展功能,用于配置、监控和故障排除设备,包括远程终端访问、端口转发、文件传输和设备配置等。它能够与 Azure IoT Hub 和 AWS IoT Core 集成。 该项...

gitblog_00484的博客 917
上一篇: Jetson AGX Orin 本地 OTA 全流程解析与实战总结(A/B + _alt + UEFI Capsule)
下一篇: Mender 在 Yocto 项目中的体系化实战:以 Jetson 平台为例
嵌入式孙老师
博客等级 码龄7年 5686粉丝 898原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值