設定 Raspberry Pi - AWS IoT Greengrass

AWS IoT Greengrass Version 1 於 2023 年 6 月 30 日進入延長使用壽命階段。如需詳細資訊,請參閱AWS IoT Greengrass V1 維護政策。在此日期之後, AWS IoT Greengrass V1 將不會發行提供功能、增強功能、錯誤修正或安全性修補程式的更新。在上運行的設備 AWS IoT Greengrass V1 不會中斷,並將繼續運行並連接到雲。我們強烈建議您移轉至 AWS IoT Greengrass Version 2,這會增加重要的新功能,並支援其他平台

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Raspberry Pi

請依照本主題中的步驟將 Raspberry Pi 設定為AWS IoT Greengrass核心。

提示

AWS IoT Greengrass 也提供安裝 AWS IoT Greengrass 核心軟體的其他選項。例如,您可以使用 Greengrass 裝置設定來設定環境,並安裝最新版本的 AWS IoT Greengrass 核心軟體。或者,在支援的 Debian 平台上,您可以使用 APT 套件管理器 來安裝或升級 AWS IoT Greengrass 核心軟體。如需詳細資訊,請參閱 安裝 AWS IoT Greengrass 核心軟體

如果您是第一次設定 Raspberry Pi,請您必須遵循這些步驟。否則,您可以跳到步驟 9。但是,我們建議您在步驟 2 使用作業系統重新映像您的 Raspberry Pi。

 

  1. 下載並安裝 SD 卡格式器,如SD 記憶卡格式化程式。請將 SD 卡片插入電腦。啟動程式,選擇您插入 SD 卡片的磁碟。您可以執行 SD 卡片的快速格式化。

  2. 下載 Raspbian Buster 作業系統做為 zip 檔案。

  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 連接到網際網路,或使用乙太網路纜線。

    注意

    將您的 Raspberry Pi 連線到與您電腦連線相同的網路,並確認您的電腦和 Raspberry Pi 都具備網際網路存取再繼續。如果您位於工作環境內或防火牆內,您可能需要將 Pi 和您的電腦連線到訪客網路,才能讓兩者享有同樣的網際網路。但是這種方法可能會中斷您電腦與本機網路資源 (例如您的內部網路) 的連線。其中一個解決方案是將 Pi 連線到訪客 Wi-Fi 網路,並將您的電腦連線到訪客 Wi-Fi 網路使用乙太網路纜線將其連線到您的本機網路。在此組態中,您的電腦應該能夠透過訪客 Wi-Fi 網路連線到 Raspberry Pi,並透過乙太網路纜線連線到本機網路資源。

  7. 您必須在您的 Pi 上設定 SSH 遠端連接。在您的 Raspberry Pi 上開啟終端機視窗並執行以下命令:

    sudo raspi-config

    請查看下列事項:

    Raspberry Pi 軟體組態工具 (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 (開啟)

    在「主機名稱 (或 IP 地址)」欄位中含有 IP 地址的 PuTTY 視窗。

    若顯示 PuTTY 安全提醒,請選擇 Yes (是)

    Raspberry Pi 的預設登入和預設密碼為 piraspberry

    初始 PuTTY 終端機視窗。
    注意

    如果您的電腦使用 VPN 連線到遠端網路,您可能會在使用 SSH 從電腦連線到 Raspberry Pi 時遭遇困難。

  9. 您現在可以為 AWS IoT Greengrass 設定 Raspberry Pi。首先,從本機 Raspberry Pi 終端機視窗執行以下命令,或從 SSH 終端機視窗:

    提示

    AWS IoT Greengrass 也提供安裝 AWS IoT Greengrass 核心軟體的其他選項。例如,您可以使用 Greengrass 裝置設定來設定環境,並安裝最新版本的 AWS IoT Greengrass 核心軟體。或者,在支援的 Debian 平台上,您可以使用 APT 套件管理器 來安裝或升級 AWS IoT Greengrass 核心軟體。如需詳細資訊,請參閱 安裝 AWS IoT Greengrass 核心軟體

    sudo adduser --system ggc_user sudo addgroup --system ggc_group
  10. 為了改善 Pi 裝置的安全性,請在啟動時在作業系統上啟用 hardlink 和 softlink (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

      約一分鐘後,使用 SSH 連線至 Pi,然後執行以下命令來確認變更:

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

      您應該會看到 fs.protected_hardlinks = 1fs.protected_symlinks = 1

  11. 編輯您的命令列開機檔案來啟用及掛載記憶體 cgroups。這可讓 AWS IoT Greengrass 設定適用於 Lambda 函數的記憶體限制。也需要執行 C 群組AWS IoT Greengrass預設的容器化模式。

    1. 導覽至您的 boot 目錄。

      cd /boot/
    2. 使用文字編輯器開啟 cmdline.txt。將下列內容附加到現有的一行,不要另起新的一行。您可能需要使用 sudo 命令以根編輯 (例如,sudo nano cmdline.txt)。

      cgroup_enable=memory cgroup_memory=1
    3. 現在重新啟動 Pi。

      sudo reboot

    您的 Pi Raspberry 現在應已為 AWS IoT Greengrass 做好準備。

  12. 選用。安裝串流管理員需要的 Java 8 執行時間。本教學課程不會使用串流管理員,但是會使用預設啟用串流管理員的 Default Group creation (預設群組建立) 工作流程。部署群組之前,先使用下列命令在核心裝置上安裝 Java 8 執行時間,或停用串流管理員。單元 3 中提供了停用串流管理員的指示。

    sudo apt install openjdk-8-jdk
  13. 若要確定您擁有所有必要的相依性,請從下載並執行 Greengrass 相依性檢查程式AWS IoT Greengrass範例儲存庫 GitHub。這些命令會解壓縮並執行中的相依性檢查指令碼Downloads目錄。

    注意

    如果您正在運行 Raspbian 內核的 5.4.51 版,則依賴關係檢查程序可能會失敗。此版本無法正確掛載記憶體 cgroup。這可能會導致在容器模式下執行的 Lambda 函數失敗。

    如需更新核心的相關資訊,請參閱核心升級後未載入的群組Raspberry Pi 論壇。

    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 鍵來顯示另一個文字畫面。

    重要

    本教學需要 Python 3.7 執行時間來執行本機 Lambda 函數。啟用串流管理員時,串流管理員需要 Java 8 執行時間。如果 check_ggc_dependencies 指令碼產生了與這些遺漏執行時間事前準備有關的警告,請確認在您繼續前已安裝了這些項目。您可以忽略與其他遺漏選用執行時間事前準備有關的警告。

    如需 modprobe 命令的資訊,請在終端機中執行 man modprobe

您的 Raspberry Pi 組態已完成。繼續進行模組二:安裝AWS IoT Greengrass核心軟體