

终止支持通知：2026 年 10 月 7 日， AWS 将停止对的支持。 AWS IoT Greengrass Version 1 2026 年 10 月 7 日之后，您将无法再访问这些 AWS IoT Greengrass V1 资源。如需了解更多信息，请访问[迁移自 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 设置 Raspberry Pi
<a name="setup-filter.rpi"></a>

按照本主题中的步骤设置 Raspberry Pi 作为 AWS IoT Greengrass 内核。

**提示**  
<a name="ggc-install-options"></a>AWS IoT Greengrass 还提供了用于安装 C AWS IoT Greengrass ore 软件的其他选项。例如，您可以使用 [Greengrass 设备](quick-start.md)设置来配置您的环境并安装最新版本的 Core 软件。 AWS IoT Greengrass 或者，在支持的 Debian 平台上，你可以使用 [APT 软件包管理器](install-ggc.md#ggc-package-manager)来安装或升级 AWS IoT Greengrass Core 软件。有关更多信息，请参阅 [安装 AWS IoT Greengrass 核心软件](install-ggc.md)。

如果您是首次设置 Raspberry Pi，则必须执行所有这些步骤。否则，可以跳至[步骤 9](#add-ggc-user-ggc-group)。不过，我们建议您使用步骤 2 中推荐的操作系统为您的 Raspberry Pi 重新创建镜像。

 

1. 下载并安装 SD 卡格式化程序，例如 [SD Memory Card Formatter](https://www.sdcard.org/downloads/formatter/)。将 SD 卡插入到您的计算机中。启动程序并选择已插入 SD 卡的驱动器。可以对 SD 卡执行快速格式化。

1. 下载 `zip` 文件格式的 [Raspbian Buster](https://downloads.raspberrypi.org/raspbian/images/raspbian-2020-02-14/) 操作系统。

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

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

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

1. 接下来，[通过 Wi-Fi 网络将 Raspberry Pi 连接到 Internet](https://www.raspberrypi.org/documentation/configuration/wireless/desktop.md) 或者通过以太网电缆执行该操作。
**注意**  
将 Raspberry Pi 连接到计算机所连接的*相同* 网络，并确保计算机和 Raspberry Pi 能够访问 Internet，然后再继续。如果在工作环境中或者位于防火墙后面，可能需要将 Pi 和计算机连接到来宾网络，以便两个设备在同一网络上。但是，这种方法可能会断开计算机与本地网络资源（例如 Intranet）的连接。一个解决方案是将 Pi 连接到来宾 Wi-Fi 网络，将计算机连接到来宾 Wi-Fi 网络*并且* 通过以太网电缆连接到本地网络。在此配置中，计算机应该能够通过来宾 Wi-Fi 网络连接到 Raspberry Pi，并通过以太网电缆连接到本地网络资源。

1. 您必须设置 Pi 上的 [SSH](https://en.wikipedia.org/wiki/Secure_Shell) 才能远程连接到它。在您的 Raspberry Pi 上，打开[终端窗口](https://www.raspberrypi.org/documentation/usage/terminal/)并运行以下命令：

   ```
   sudo raspi-config
   ```

   您将看到以下内容：  
![\[Raspberry Pi Software Configuration Tool (raspi-config) 屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/greengrass/v1/developerguide/images/gg-get-started-001.png)

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

   ```
   sudo reboot
   ```

1. 在您的 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](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)。展开 **Connection (连接)**，选择 **Data (数据)**，并确保已选择 **Prompt (提示)**：  
![\[已选中提示符的 PuTTY 窗口。\]](http://docs.aws.amazon.com/zh_cn/greengrass/v1/developerguide/images/gg-get-started-001.4.png)

   接下来，选择 **Session (会话)**，输入 Raspberry Pi 的 IP 地址，然后使用默认设置选择 **Open (打开)**。  
![\[PuTTY 窗口，“Host Name (or IP address) (主机名 (或 IP 地址))”字段中包含 IP 地址。\]](http://docs.aws.amazon.com/zh_cn/greengrass/v1/developerguide/images/gg-get-started-001.5.png)

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

   默认 Raspberry Pi 登录名和密码分别为 **pi** 和 **raspberry**。  
![\[初始 PuTTY 终端窗口。\]](http://docs.aws.amazon.com/zh_cn/greengrass/v1/developerguide/images/gg-get-started-001.6.png)
**注意**  
如果计算机使用 VPN 连接到远程网络，则可能难以使用 SSH 从计算机连接到 Raspberry Pi。

1. <a name="add-ggc-user-ggc-group"></a>现在，您可以为其设置 Raspberry Pi AWS IoT Greengrass了。首先，请从本地 Raspberry Pi 终端窗口或 SSH 终端窗口运行以下命令：
**提示**  
<a name="ggc-install-options"></a>AWS IoT Greengrass 还提供了用于安装 C AWS IoT Greengrass ore 软件的其他选项。例如，您可以使用 [Greengrass 设备](quick-start.md)设置来配置您的环境并安装最新版本的 Core 软件。 AWS IoT Greengrass 或者，在支持的 Debian 平台上，你可以使用 [APT 软件包管理器](install-ggc.md#ggc-package-manager)来安装或升级 AWS IoT Greengrass Core 软件。有关更多信息，请参阅 [安装 AWS IoT Greengrass 核心软件](install-ggc.md)。

   ```
   sudo adduser --system ggc_user
   sudo addgroup --system ggc_group
   ```

1. 为了提高 Pi 设备上的安全性，请在启动时在操作系统上启用硬链接和软链接 (symlink) 保护。

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

      ```
      cd /etc/sysctl.d
      ls
      ```
**注意**  
如果您没有看到 `98-rpi.conf` 文件，请按照 `README.sysctl` 文件中的说明操作。

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

      ```
      fs.protected_hardlinks = 1
      fs.protected_symlinks = 1
      ```

   1. 重启 Pi。

      ```
      sudo reboot
      ```

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

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

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

1. <a name="stretch-step"></a> 编辑命令行启动文件，以启用并装载内存控制组。这 AWS IoT Greengrass 允许为 Lambda 函数设置内存限制。Cgroup 还需要 AWS IoT Greengrass 在默认的[容器化](lambda-group-config.md#lambda-containerization-considerations)模式下运行。

   1.  导航到您的 `boot` 目录。

      ```
      cd /boot/
      ```

   1.  使用文本编辑器打开 `cmdline.txt`。将以下内容附加到现有行的末尾，而不是作为新行。您可能需要使用 `sudo` 命令以根身份进行编辑（例如，`sudo nano cmdline.txt`）。

      ```
      cgroup_enable=memory cgroup_memory=1
      ```

   1. 现在重启 Pi。

      ```
      sudo reboot
      ```

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

1. <a name="install-java-8-runtime"></a>可选。安装[流管理器](stream-manager.md)所需的 Java 8 运行时。此教程不使用流管理器，但它将使用默认情况下启用流管理器的 **Default Group creation (默认组创建)** 工作流。在部署组之前，使用此命令在核心设备上安装 Java 8 运行时或禁用流管理器。模块 3 中提供了有关禁用流管理器的说明。

   ```
   sudo apt install openjdk-8-jdk
   ```

1. [为确保您拥有所有必需的依赖项，请从示例存储库下载并运行 Greengrass 依赖项检查器。AWS IoT Greengrass](https://github.com/aws-samples/aws-greengrass-samples) GitHub这些命令将在 `Downloads` 目录中解压和运行依赖项检查程序脚本。
**注意**  
 如果您运行的是 Raspbian 内核版本 5.4.51，则依赖项检查器可能会失败。此版本无法正确安装内存 cgroup。这可能会导致在容器模式下运行的 Lambda 函数失败。  
有关更新内核的更多信息，请参阅 Raspberry Pi 论坛中的[内核升级后未加载的 Cgroup](https://www.raspberrypi.org/forums/viewtopic.php?t=280656)。

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

   出现 `more` 时，按 Spacebar 键以显示另一屏文本。
**重要**  
<a name="lambda-runtime-prereqs"></a>本教程需要 Python 3.7 运行时才能运行本地 Lambda 函数。启用流管理器后，还需要 Java 8 运行时。如果 `check_ggc_dependencies` 脚本生成提示缺少这些必备运行时的警告，请确保先安装它们，然后再继续。您可以忽略提示缺少其他可选运行时的警告。

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

您的 Raspberry Pi 配置已完成。继续[模块 2：安装 AWS IoT Greengrass 核心软件](module2.md)。