AWS IoT Greengrass
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

设置 Raspberry Pi

如果您是首次设置 Raspberry Pi,则必须执行所有这些步骤。否则,可以跳至步骤 9。不过,我们建议您使用步骤 2 中推荐的操作系统为您的 Raspberry Pi 重新创建映像。

  1. 下载并安装 SD 卡格式化程序,例如 SD Memory Card FormatterPiBakery。将 SD 卡插入到您的计算机中。启动程序并选择已插入 SD 卡的驱动器。可以对 SD 卡执行快速格式化。

  2. 下载 zip 文件格式的 Raspbian Buster 操作系统。

  3. 使用 SD 卡写入工具(例如 Etcher),按照此工具的说明将下载的 zip 文件传输到 SD 上。由于操作系统映像很大,因此,该步骤可能需要一些时间。从您的计算机中弹出 SD 卡,然后将 microSD 卡插入您的 Raspberry Pi 上。

  4. 对于第一次启动,我们建议您将 Raspberry Pi 连接到监视器 (通过 HDMI)、键盘和鼠标。接下来,将您的 Pi 连接到微型 USB 电源,然后 Raspbian 操作系统将启动。

  5. 您可能需要配置 Pi 的键盘布局,然后再继续。为此,请选择右上方的 Raspberry 图标,再选择 Preferences (首选项),然后选择 Mouse and Keyboard Settings (鼠标和键盘设置)。接下来,在 Keyboard (键盘) 选项卡上,选择 Keyboard Layout (键盘布局),然后选择适当的键盘形式。

  6. 接下来,通过 Wi-Fi 网络将 Raspberry Pi 连接到 Internet 或者通过以太网电缆执行该操作。

    注意

    将 Raspberry Pi 连接到计算机所连接的相同 网络,并确保计算机和 Raspberry Pi 能够访问 Internet,然后再继续。如果在工作环境中或者位于防火墙后面,可能需要将 Pi 和计算机连接到来宾网络,以便两个设备在同一网络上。但是,这种方法可能会断开计算机与本地网络资源(例如 Intranet)的连接。一个解决方案是将 Pi 连接到来宾 Wi-Fi 网络,将计算机连接到来宾 Wi-Fi 网络并且 通过以太网电缆连接到本地网络。在此配置中,计算机应该能够通过来宾 Wi-Fi 网络连接到 Raspberry Pi,并通过以太网电缆连接到本地网络资源。

  7. 您必须设置 Pi 上的 SSH 才能远程连接到它。在您的 Raspberry Pi 上,打开终端窗口并运行以下命令:

    sudo raspi-config

    您将看到以下内容:

    
                            Raspberry Pi Software Configuration Tool (raspi-config) 屏幕截图。

    向下滚动并选择 Interfacing Options,然后选择 P2 SSH。系统提示时,请选择 Yes (是)。(使用 Tab 键,然后按 Enter)。SSH 现在应该已启用。选择 OK。使用 Tab 键选择 Finish (完成),然后按 Enter。如果 Raspberry Pi 未自动重启,请运行以下命令:

    sudo reboot
  8. 在您的 Raspberry Pi 上,在终端中运行以下命令:

    hostname -I

    这将返回您的 Raspberry Pi 的 IP 地址。

    注意

    对于下面的内容,如果收到 ECDSA 密钥指纹消息 (Are you sure you want to continue connecting (yes/no)?),请输入 yes。Raspberry Pi 的默认密码是 raspberry

    如果使用的是 macOS,请打开终端窗口并输入:

    ssh pi@IP-address

    IP-address 是通过使用 hostname -I 命令获取的 Raspberry Pi 的 IP 地址。

    如果您使用的是 Windows,则需要安装和配置 PuTTY。展开 Connection (连接),选择 Data (数据),并确保已选择 Prompt (提示)

    
                            已选中提示符的 PuTTY 窗口。

    接下来,选择 Session (会话),输入 Raspberry Pi 的 IP 地址,然后使用默认设置选择 Open (打开)

    
                            PuTTY 窗口,“Host Name (or IP address) (主机名 (或 IP 地址))”字段中包含 IP 地址。

    如果显示 PuTTY 安全警报,请选择 Yes (是)

    默认 Raspberry Pi 登录名和密码分别为 piraspberry

    
                            初始 PuTTY 终端窗口。

    注意

    如果计算机使用 VPN 连接到远程网络,则可能难以使用 SSH 从计算机连接到 Raspberry Pi。

  9. 现在,您已准备好为 AWS IoT Greengrass 设置 Raspberry Pi。首先,请从本地 Raspberry Pi 终端窗口或 SSH 终端窗口运行以下命令:

    sudo adduser --system ggc_user sudo addgroup --system ggc_group
  10. 为了提高 Pi 设备上的安全性,请在启动时在操作系统上启用硬链接和软链接 (symlink) 保护。

    1. 导航到 98-rpi.conf 文件。

      cd /etc/sysctl.d ls

      注意

      如果您没有看到 98-rpi.conf 文件,请按照 README.sysctl 文件中的说明操作。

    2. 使用文本编辑器(如 Leafpad、GNU nano 或 vi)将以下两行添加到文件的末尾。您可能需要使用 sudo 命令以根身份进行编辑(例如,sudo nano 98-rpi.conf)。

      fs.protected_hardlinks = 1 fs.protected_symlinks = 1
    3. 重启 Pi。

      sudo reboot

      在约 1 分钟后,使用 SSH 连接到 Pi,然后运行以下命令来确认更改:

      sudo sysctl -a 2> /dev/null | grep fs.protected

      您现在会看到 fs.protected_hardlinks = 1fs.protected_symlinks = 1

  11. 编辑命令行启动文件,以启用并装载内存控制组。这将允许 AWS IoT Greengrass 设置 Lambda 函数的内存限制。在默认的容器化模式下运行 AWS IoT Greengrass 时也需要 Cgroup。

    1. 导航到您的 boot 目录。

      cd /boot/
    2. 使用文本编辑器打开 cmdline.txt。将以下内容附加到现有行的末尾,而不是作为新行。

      cgroup_enable=memory cgroup_memory=1
    3. 现在重启 Pi。

      sudo reboot

    您的 Raspberry Pi 现在应该已为 AWS IoT Greengrass 做好准备。

  12. 要确保您具有所有必需的依赖项,请从 GitHub 上的 AWS IoT Greengrass 示例存储库下载并运行 Greengrass 依赖项检查程序。 这些命令将在 Downloads 目录中解压和运行依赖项检查程序脚本。

    cd /home/pi/Downloads mkdir greengrass-dependency-checker-GGCv1.9.x cd greengrass-dependency-checker-GGCv1.9.x wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.9.x.zip unzip greengrass-dependency-checker-GGCv1.9.x.zip cd greengrass-dependency-checker-GGCv1.9.x sudo modprobe configs sudo ./check_ggc_dependencies | more

    出现 more 时,按 Spacebar 键以显示另一屏文本。

    重要

    使用此教程需要拥有 Python 2.7。check_ggc_dependencies 脚本可能生成有关缺失的可选 Node.js 和 Java 先决条件的警告。您可以忽略这些警告。

    要获得有关 modprobe 命令的信息,请在终端中运行 man modprobe

您的 Raspberry Pi 配置已完成。继续浏览模块 2:安装 AWS IoT Greengrass 核心软件