引言:当顶级硬件遇上边缘计算

今天我们来搞硬核的!了解高通跃龙最新的旗舰平台QCS9100吗?这不仅是手机芯片的王者,更是边缘AI的潜力股。今天,我们就把它和AWS的边缘计算服务Greengrass结合到一起,打造一个本地智能节点。

简单说,Greengrass就是能让你的设备在本地运行Lambda函数、同步云端数据、管理设备群的“边缘运行时”。而在QCS9100这种自带强悍AI算力的平台上部署它,意味着你可以把云端的AI推理模型下沉到设备端,实现超低延迟、高隐私保护的应用。

一、 战前准备:系统环境与依赖安装

我们的战场是一台运行Linux的QCS9100开发板。首先,更新系统并安装“粮草弹药”:

# 1. 更新软件源
sudo apt update

# 2. 安装核心开发工具包 (编译、调试等离不开)
sudo apt install -y build-essential cmake git curl wget pkg-config tree lsof less vim

# 3. 安装Greengrass所需的SSL、Python3环境
sudo apt install -y libcurl4-openssl-dev libssl-dev libssh2-1-dev python3 python3-pip python3-dev python3-venv

# 4. 安装AWS IoT Device SDK for Python (用于后续设备模拟或测试)
python3 -m pip install awsiotsdk

# 5. 安装Java环境 (Greengrass V2核心是Java写的)
sudo apt install -y default-jdk default-jre
java --version # 验证安装
二、 配置与云端的桥梁:AWS CLI

要在设备上指挥云服务,得先装个“对讲机”AWS CLI

# 下载并安装AWS CLI v2 (注意架构是aarch64)
curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli
aws --version # 验货!

安装后,用你的IAM用户AK/SK进行配置,并指定区域(如cn-north-1):

# 使用 AWS 账号的 AK/SK 配置
$ aws configure
AWS Access Key ID [****************DNPC]: Your aws access key
AWS Secret Access Key [****************7x6J]: Your aws secret access key
Default region name [cn-north-1]: Your region name
Default output format [json]: json
# 依次输入 Access Key, Secret Key, Region (如 cn-north-1),输出格式保持json
#配置完成后,需要为greengrass创建系统用户和组
$ useradd --system --create-home ggc_user
$ groupadd --system ggc_group
三、 部署“大脑”:Greengrass Core安装与配置

最关键的一步,安装Greengrass核心软件,让它成为设备的“边缘大脑”, 记住这里使用root用户登录设备。

  1. 下载核心软件包

    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
    unzip greengrass-nucleus-latest.zip -d GreengrassInstaller
    
  2. 运行一键式部署命令
    这条长命令会完成在AWS IoT创建物品、证书、策略、角色,并在设备上启动服务的所有工作。

    sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
      -jar ./GreengrassInstaller/lib/Greengrass.jar \
      --aws-region cn-north-1 \
      --thing-name X3G2D2412GL2110010 \ # 【重点修改】你的设备唯一名称
      --thing-group-name QCS9100GreengrassCoreGroup \
      --thing-policy-name QCS9100GreengrassV2IoTThingPolicy \
      --tes-role-name QCS9100GreengrassV2TokenExchangeRole \
      --tes-role-alias-name QCS9100GreengrassCoreTokenExchangeRoleAlias \
      --component-default-user ggc_user:ggc_group \
      --provision true \
      --setup-system-service true \
      --deploy-dev-tools true
    

    命令关键点解析

    • --thing-name:必须改为你自定义的、唯一的设备标识。
    • --provision true:自动进行云端资源调配。
    • --setup-system-service true:安装为系统服务,开机自启。
    • --deploy-dev-tools true:顺带部署开发工具(aws.greengrass.Cli组件),方便后续操作。
  3. 验证安装
    命令执行成功后,检查服务状态:

    systemctl status greengrass
    

    看到绿色的 active (running) 就表示你的QCS9100设备已经成功加入AWS IoT并化身为一个Greengrass核心了!
    在这里插入图片描述

  4. 云端看到的结果
    指令执行成功后,在云端看到的结果如下:
    (1) IoT 的策略 QCS9100GreengrassV2IoTThingPolicy,是 AWS IOT 和 Greengrass 核心设备通信必需的策略。
    [图片]
    (2) 创建证书
    (3) 将证书和和策略绑定
    (4) 创建 Thing,X3G2D2412GL2110010
    (5) 将证书和 Thing 绑定
    [图片]
    (6) 创建分组 QCS9100GreengrassCoreGroup
    (7) 将 Thing 添加到分组中
    [图片]
    (8) 创建 TES 角色 QCS9100GreengrassV2TokenExchangeRole
    · 允许 Greengrass 核心设备临时使用的 IAM 角色的名称 AWS 凭证。
    [图片]
    (9) 创建 TES 角色别名QCS9100GreengrassCoreTokenExchangeRoleAlias
    · IAM 角色的别名,允许 Greengrass 核心设备稍后获得临时证书
    [图片]

(10) 创建角色策略 GreengrassTESCertificatePolicyQCS9100GreengrassCoreTokenExchangeRoleAlias
[图片]

(11) 把 TES 角色策略附加到 Thing 上
[图片]

(12) 创建 IAM 角色策略 QCS9100GreengrassV2TokenExchangeRoleAccess
[图片]

(13) 将 TES 的 IAM 角色策略附加到 TES 的 EAM 角色
(14) 下载 Root CA 证书
(15) 创建设备配置
(16) 为 Thing group 创建部署任务
(17) 配置 aws.greengrass.Cli

下篇预告:核心装好了,但让它空跑可不行。下一篇,我们将实战创建并部署一个自定义组件,让你的QCS9100真正在边缘“动”起来。敬请期待!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐