Impostazione di un Raspberry Pi - AWS IoT Greengrass

AWS IoT Greengrass Version 1 è entrato nella fase di estensione della vita utile il 30 giugno 2023. Per ulteriori informazioni, consulta la politica AWS IoT Greengrass V1 di manutenzione. Dopo questa data, AWS IoT Greengrass V1 non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti, correzioni di bug o patch di sicurezza. I dispositivi che funzionano AWS IoT Greengrass V1 non subiranno interruzioni e continueranno a funzionare e a connettersi al cloud. Ti consigliamo vivamente di eseguire la migrazione a AWS IoT Greengrass Version 2, che aggiunge nuove importanti funzionalità e supporto per piattaforme aggiuntive.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Impostazione di un Raspberry Pi

Seguire la procedura descritta in questo argomento per configurare un Raspberry Pi da utilizzare comeAWS IoT GreengrassCore.

Suggerimento

AWS IoT Greengrass fornisce anche altre opzioni per l'installazione del software AWS IoT Greengrass Core. Ad esempio, è possibile utilizzare la configurazione del dispositivo Greengrass per configurare l'ambiente e installare la versione più recente del software AWS IoT Greengrass Core. Oppure, sulle piattaforme Debian supportate, è possibile utilizzare il gestore di pacchetti APT per installare o aggiornare il software AWS IoT Greengrass Core. Per ulteriori informazioni, consulta la pagina Installare il software AWS IoT Greengrass Core. .

Se stai impostando un Raspberry Pi per la prima volta, è necessario seguire tutti questi passaggi. In caso contrario, passa alla fase 9. Tuttavia, ti consigliamo di reimpostare il tuo Raspberry Pi con il sistema operativo come raccomandato nel passaggio 2.

 

  1. Scarica e installa un formattatore di schede SD comeFormattatore di schede di memoria SD. Inserisci la scheda SD nel computer. Avvia il programma e scegli l'unità in cui è inserita la scheda SD. È possibile formattare rapidamente la scheda SD.

  2. Scarica il sistema operativo Raspbian Buster come file zip.

  3. Utilizzando uno strumento di scrittura su scheda SD (ad esempio Etcher), segui le istruzioni per trasferire il file zip scaricato nella scheda SD. Poiché l'immagine del sistema operativo è di grandi dimensioni, l'operazione potrebbe richiedere alcuni minuti. Espelli la scheda SD dal computer e inserisci la scheda MicroSD nel Raspberry Pi.

  4. Per il primo avvio, ti consigliamo di connettere il Raspberry Pi a un monitor (tramite HDMI), una tastiera e un mouse. Quindi, collega il Pi a una sorgente di alimentazione micro USB e il sistema operativo Raspbian dovrebbe avviarsi.

  5. È possibile configurare il layout della tastiera del Pi prima di continuare. Per farlo, scegli l'icona Raspberry in alto a destra, scegli Preferences (Preferenze), quindi Mouse and Keyboard Settings (Impostazioni mouse e tastiera). Quindi, sulla scheda Keyboard (Tastiera) scegli, Keyboard Layout (Layout tastiera) e scegli una variante adatta di tastiera.

  6. Quindi, collega il Raspberry Pi a Internet tramite una rete Wi-Fi o un cavo Ethernet.

    Nota

    Collega il Raspberry Pi alla stessa rete a cui è connesso il computer e accertati che sia il computer che il Raspberry Pi abbiano accesso a Internet prima di continuare. Se ti trovi in un ambiente di lavoro o dietro un firewall, potrebbe essere necessario collegare il Pi e il computer alla rete guest per avere entrambi i dispositivi sulla stessa rete. Questo approccio, tuttavia, potrebbe scollegare il computer dalle risorse di rete locali, ad esempio l'Intranet. Una soluzione potrebbe essere quella di collegare il Pi alla rete Wi-Fi guest e il computer alla rete Wi-Fi guest e alla rete locale tramite un cavo Ethernet. Con questa configurazione dovresti essere in grado di connetterti al Raspberry Pi tramite la rete Wi-Fi guest e alle risorse di rete locali tramite il cavo Ethernet.

  7. È necessario configurare SSH sul Pi per connetterti in remoto. Apri una finestra del terminale sul Raspberry Pi ed esegui il comando seguente:

    sudo raspi-config

    Verrà visualizzato un codice analogo al seguente:

    Screenshot dello strumento di configurazione del software Raspberry Pi (raspi-config).

    Scorri in basso e scegli Interfacing Options (Opzioni di interfaccia), quindi scegli P2 SSH. Quando viene richiesto, scegliere Yes (Sì). (Utilizza la chiave Tab seguita da Enter). L'SSH deve essere abilitata. Scegli OK. Usa il tasto Tab per scegliere Finish (Fine) e quindi premi Enter. Se il dispositivo Raspberry Pi non si riavvia automaticamente, esegui il comando seguente:

    sudo reboot
  8. Esegui il comando seguente nel terminale del Raspberry Pi:

    hostname -I

    Questo restituisce l'indirizzo IP del Raspberry Pi.

    Nota

    Successivamente, se ricevi un messaggio relativo all'impronta della chiave ECDSA (Are you sure you want to continue connecting (yes/no)?), immetti yes. La password predefinita per il Raspberry Pi è raspberry.

    Se utilizzi macOS, apri una finestra del terminale e digita:

    ssh pi@IP-address

    IP-address corrisponde all'indirizzo IP del Raspberry Pi ottenuto utilizzando il precedente comando hostname -I.

    Se stai usando Windows, è necessario installare e configurare PuTTY. Apri Connection (Connessione), Data (Dati) e accertati che sia selezionato Prompt:

    Finestra di PuTTY con "Prompt" selezionato.

    Quindi, scegli Session (Sessione), immetti l'indirizzo IP del Raspberry Pi e scegli Open (Apri) utilizzando le impostazioni predefinite.

    Finestra di PuTTY con l'indirizzo IP nel campo "Host Name (or IP address)".

    Se viene visualizzato il messaggio " PuTTY security alert", scegli Yes (Sì).

    I valori predefiniti di login e password di Raspberry Pi sono rispettivamente pi e raspberry.

    Finestra del terminale iniziale di PuTTY.
    Nota

    Se il computer è connesso a una rete remota tramite VPN, questo può causare difficoltà di connessione dal computer al Raspberry Pi tramite SSH.

  9. Adesso puoi impostare il Raspberry Pi per AWS IoT Greengrass. In primo luogo, esegui i seguenti comandi da una finestra del terminale locale del Raspberry Pi o da una finestra del terminale SSH:

    Suggerimento

    AWS IoT Greengrass fornisce anche altre opzioni per l'installazione del software AWS IoT Greengrass Core. Ad esempio, è possibile utilizzare la configurazione del dispositivo Greengrass per configurare l'ambiente e installare la versione più recente del software AWS IoT Greengrass Core. Oppure, sulle piattaforme Debian supportate, è possibile utilizzare il gestore di pacchetti APT per installare o aggiornare il software AWS IoT Greengrass Core. Per ulteriori informazioni, consulta la pagina Installare il software AWS IoT Greengrass Core. .

    sudo adduser --system ggc_user sudo addgroup --system ggc_group
  10. Per migliorare la sicurezza sul dispositivo Pi, abilitare la protezione hardlink e softlink (symlink) sul sistema operativo all'avvio.

    1. Andare al file 98-rpi.conf.

      cd /etc/sysctl.d ls
      Nota

      Se non visualizzi il file 98-rpi.conf, segui le istruzioni contenute nel file README.sysctl.

    2. Utilizza un editor di testo (ad esempio Leafpad, GNU nano o vi) per aggiungere le seguenti due righe alla fine del file. Potresti dover utilizzare il comando sudo per modificare come root (ad esempio sudo nano 98-rpi.conf).

      fs.protected_hardlinks = 1 fs.protected_symlinks = 1
    3. Riavvia il dispositivo Pi.

      sudo reboot

      Dopo un minuto circa, connettiti al dispositivo Pi tramite SSH, quindi esegui il comando seguente per confermare la modifica:

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

      Dovresti visualizzare fs.protected_hardlinks = 1 e fs.protected_symlinks = 1.

  11. Modifica il file di avvio a riga di comando per abilitare e montare cgroups di memoria. Ciò consente a AWS IoT Greengrass di impostare il limite di memoria per le funzioni Lambda. Richiesto anche Cgroups per eseguireAWS IoT Greengrassnel defaultContainerizzazioneModalità.

    1. Passa alla directory boot.

      cd /boot/
    2. Aprire il file cmdline.txt con un editor di testo. Aggiungi quanto segue alla fine della linea esistente, non come una nuova riga. Potresti dover utilizzare il comando sudo per modificare come root (ad esempio sudo nano cmdline.txt).

      cgroup_enable=memory cgroup_memory=1
    3. Ora riavvia il dispositivo Pi.

      sudo reboot

    Il Raspberry Pi dovrebbe essere pronto per AWS IoT Greengrass.

  12. Facoltativo. Installare il runtime Java 8, richiesto dal Gestore di flussi. Questo tutorial non utilizza Gestore di flussi, ma utilizza il flusso di lavoro Creazione gruppo predefinito che abilita Gestore di flussi per impostazione predefinita. Utilizzare i seguenti comandi per installare il runtime Java 8 sul dispositivo principale o disabilitare Gestore di flussi prima di distribuire il gruppo. Le istruzioni per disabilitare Gestore di flussi sono fornite nel Modulo 3.

    sudo apt install openjdk-8-jdk
  13. Per assicurarti di avere tutte le dipendenze richieste, scarica ed esegui il controllo delle dipendenze di Greengrass dalAWS IoT GreengrassEsempirepository su GitHub. Questi comandi decomprimono ed eseguono lo script dello strumento di controllo delle dipendenzeDownloadsdirectory.

    Nota

    Il controllo delle dipendenze potrebbe fallire se è in esecuzione la versione 5.4.51 del kernel Raspbian. Questa versione non monta correttamente i cgroup di memoria. Ciò potrebbe causare il fallimento delle funzioni Lambda in esecuzione in modalità contenitore.

    Per ulteriori informazioni sull'aggiornamento del kernel, consulta laCgroups non caricati dopo l'aggiornamento del kernelnei forum di 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

    Dove viene visualizzato more, premi il tasto Spacebar per visualizzare un'altra schermata di testo.

    Importante

    Questo tutorial richiede il runtime Python 3.7 per eseguire funzioni Lambda locali. Quando il gestore di flusso è abilitato, richiede anche il runtime Java 8. Se lo script check_ggc_dependencies produce avvisi su questi prerequisiti di runtime mancanti, assicurati di installarli prima di continuare. Puoi ignorare gli avvisi relativi ad altri prerequisiti di runtime facoltativi mancanti.

    Per informazioni sul comando modprobe, esegui man modprobe nel terminale.

La configurazione del Raspberry Pi è completa. Continuare su Modulo 2: Installazione diAWS IoT GreengrassSoftware Core.