高通跃龙QCS9100平台部署AWS Greengrass(1): 环境配置与Greengrass核心安装
引言:当顶级硬件遇上边缘计算
今天我们来搞硬核的!了解高通跃龙最新的旗舰平台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用户登录设备。
-
下载核心软件包:
curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip unzip greengrass-nucleus-latest.zip -d GreengrassInstaller -
运行一键式部署命令:
这条长命令会完成在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组件),方便后续操作。
-
验证安装:
命令执行成功后,检查服务状态:systemctl status greengrass看到绿色的
active (running)就表示你的QCS9100设备已经成功加入AWS IoT并化身为一个Greengrass核心了!
-
云端看到的结果:
指令执行成功后,在云端看到的结果如下:
(1) IoT 的策略 QCS9100GreengrassV2IoTThingPolicy,是 AWS IOT 和 Greengrass 核心设备通信必需的策略。![[图片]](https://i-blog.csdnimg.cn/direct/0d861388ff4e4bd7951ead04684d4166.png)
(2) 创建证书
(3) 将证书和和策略绑定
(4) 创建 Thing,X3G2D2412GL2110010
(5) 将证书和 Thing 绑定![[图片]](https://i-blog.csdnimg.cn/direct/5d44c4c9670248c691910a62e86b12a3.png)
(6) 创建分组 QCS9100GreengrassCoreGroup
(7) 将 Thing 添加到分组中![[图片]](https://i-blog.csdnimg.cn/direct/6fb53af57b174ee2a45e21a734dfce15.png)
(8) 创建 TES 角色 QCS9100GreengrassV2TokenExchangeRole
· 允许 Greengrass 核心设备临时使用的 IAM 角色的名称 AWS 凭证。![[图片]](https://i-blog.csdnimg.cn/direct/bc95589220eb4f08b71f6d659d9f9b19.png)
(9) 创建 TES 角色别名QCS9100GreengrassCoreTokenExchangeRoleAlias
· IAM 角色的别名,允许 Greengrass 核心设备稍后获得临时证书![[图片]](https://i-blog.csdnimg.cn/direct/6312d3219dc348edaa29aee53fb63b7c.png)
(10) 创建角色策略 GreengrassTESCertificatePolicyQCS9100GreengrassCoreTokenExchangeRoleAlias![[图片]](https://i-blog.csdnimg.cn/direct/d7417bd38aad4026a548de03eaeae5e5.png)
(11) 把 TES 角色策略附加到 Thing 上![[图片]](https://i-blog.csdnimg.cn/direct/e6b9d38c508a4c2694debdd12758d0ed.png)
(12) 创建 IAM 角色策略 QCS9100GreengrassV2TokenExchangeRoleAccess![[图片]](https://i-blog.csdnimg.cn/direct/75f228cfeaa04dd5b85693734dcdfe24.png)
(13) 将 TES 的 IAM 角色策略附加到 TES 的 EAM 角色
(14) 下载 Root CA 证书
(15) 创建设备配置
(16) 为 Thing group 创建部署任务
(17) 配置 aws.greengrass.Cli
下篇预告:核心装好了,但让它空跑可不行。下一篇,我们将实战创建并部署一个自定义组件,让你的QCS9100真正在边缘“动”起来。敬请期待!
更多推荐

所有评论(0)