Configuración de un Raspberry Pi - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entró en la fase de vida útil prolongada el 30 de junio de 2023. Para obtener más información, consulte la política de mantenimiento de AWS IoT Greengrass V1 Después de esta fecha, AWS IoT Greengrass V1 no se publicarán actualizaciones que proporcionen funciones, mejoras, correcciones de errores o parches de seguridad. Los dispositivos que se ejecuten AWS IoT Greengrass V1 no se verán afectados y seguirán funcionando y conectándose a la nube. Le recomendamos encarecidamente que migre a AWS IoT Greengrass Version 2, ya que añade importantes funciones nuevas y es compatible con plataformas adicionales.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de un Raspberry Pi

Siga los pasos de este tema para configurar un Raspberry Pi para usarlo como un núcleo AWS IoT Greengrass.

sugerencia

AWS IoT Greengrass también proporciona otras opciones para instalar el software de AWS IoT Greengrass Core. Por ejemplo, puede utilizar la configuración de dispositivos Greengrass para configurar su entorno e instalar la versión más reciente del software AWS IoT Greengrass Core. O bien, en plataformas Debian compatibles, puede utilizar el administrador de paquetes APT para instalar o actualizar el software de AWS IoT Greengrass Core. Para obtener más información, consulte Instalación del software AWS IoT Greengrass Core.

Si es la primera vez que configura un Raspberry Pi, debe seguir todos estos pasos. De lo contrario, puede ir directamente al paso 9. Sin embargo, le recomendamos que vuelva a instalar la imagen del sistema operativo de su Raspberry Pi, tal y como se recomienda en el paso 2.

 

  1. Descargue e instale una aplicación para formatear tarjetas SD, como SD Memory Card Formatter. Inserte la tarjeta SD en su equipo. Inicie el programa y elija la unidad donde insertó la tarjeta SD. Puede llevar a cabo un formateo rápido de la tarjeta SD.

  2. Descargue el sistema operativo Raspbian Jessie como un archivo zip.

  3. En una herramienta de escritura de tarjetas SD (como Etcher), siga las instrucciones para escribir el archivo zip descargado en la tarjeta SD. Dado que la imagen del sistema operativo es grande, este paso puede tardar un tiempo. Extraiga la tarjeta SD del equipo e inserte la tarjeta microSD en el Raspberry Pi.

  4. Para la primera operación de inicio, le recomendamos que conecte el Raspberry Pi a un monitor (a través de HDMI), un teclado y un ratón. A continuación, conecte su Pi a una fuente de alimentación por microUSB para que se inicie el sistema operativo Raspbian.

  5. Es posible que desee configurar la distribución del teclado del Pi antes de continuar. Para hacerlo, seleccione el icono de Raspberry en la esquina superior derecha, elija Preferences y, a continuación, elija Mouse and Keyboard Settings. A continuación, en la pestaña Keyboard, elija Keyboard Layout y luego elija una variante de teclado adecuada.

  6. A continuación, conecte su Raspberry Pi a Internet a través de una red Wi-Fi o un cable Ethernet.

    nota

    Conecte su Raspberry Pi a la misma red que a la que está conectado su equipo y asegúrese de que tanto tu equipo como Raspberry Pi tienen acceso a Internet antes de continuar. Si está en un entorno de trabajo o detrás de un firewall, es posible que necesite conectar su dispositivo Pi y su equipo a la red de invitados para que ambos dispositivos estén en la misma red. Sin embargo, esta solución podría desconectar su equipo de los recursos de la red local, como la intranet. Otra solución consiste en conectar el dispositivo Pi y el equipo a la red wifi de invitados y conectar la red local a través de un cable Ethernet. Con esta configuración, el equipo debería poder conectarse al Raspberry Pi a través de la red wifi de invitados y a los recursos de la red local a través del cable Ethernet.

  7. Debe configurar SSH en el Raspberry Pi para conectarse de forma remota. En su Raspberry Pi, abra una ventana de terminal y ejecute el siguiente comando:

    sudo raspi-config

    Debería ver lo siguiente:

    Captura de pantalla de Raspberry Pi Software Configuration Tool (raspi-config).

    Desplácese hacia abajo y elija Interfacing Options y, a continuación, elija P2 SSH. Cuando se le pregunte, elija Yes (Sí). (Utilice la tecla Tab seguida de Enter). Ahora, SSH debería estar habilitado. Seleccione OK (Aceptar). Utilice la tecla Tab para elegir Finish (Finalizar) y, a continuación, pulse Enter. Si Raspberry Pi no se reinicia automáticamente, ejecute el siguiente comando:

    sudo reboot
  8. En su Raspberry Pi ejecute el siguiente comando en el terminal:

    hostname -I

    Se devuelve la dirección IP de su Raspberry Pi.

    nota

    Si, en el paso siguiente, recibe el mensaje (Are you sure you want to continue connecting (yes/no)?) relacionado con la huella digital de la clave ECDSA, escriba yes. La contraseña predeterminada del Raspberry Pi es raspberry.

    Si utiliza macOS, abra una ventana de terminal y escriba lo siguiente:

    ssh pi@IP-address

    Dirección-IP es la dirección IP de su Raspberry Pi que obtuvo utilizando el comando hostname -I.

    Si utiliza Windows, tendrá que instalar y configurar PuTTY. Amplíe Connection, elija Data y asegúrese de que Prompt está seleccionado:

    Ventana de PuTTY con Prompt seleccionado.

    A continuación, elija Session, escriba la dirección IP del Raspberry Pi y, a continuación, elija Open con la configuración predeterminada.

    Ventana PuTTY con la dirección IP en el campo "Host Name (or IP address) [Nombre de host (o dirección IP)]".

    Si se muestra una alerta de seguridad de PuTTY, seleccione Yes.

    El nombre de inicio de sesión y la contraseña predeterminados del Raspberry Pi son pi y raspberry, respectivamente.

    Ventana de terminal inicial de PuTTY.
    nota

    Si el equipo está conectado a una red remota mediante VPN, podría haber problemas para conectarse desde el equipo al Raspberry Pi mediante SSH.

  9. Ahora está preparado para configurar el Raspberry Pi para AWS IoT Greengrass. En primer lugar, ejecute los siguientes comandos desde una ventana de terminal de Raspberry Pi local o una ventana de terminal de SSH:

    sugerencia

    AWS IoT Greengrass también proporciona otras opciones para instalar el software de AWS IoT Greengrass Core. Por ejemplo, puede utilizar la configuración de dispositivos Greengrass para configurar su entorno e instalar la versión más reciente del software AWS IoT Greengrass Core. O bien, en plataformas Debian compatibles, puede utilizar el administrador de paquetes APT para instalar o actualizar el software de AWS IoT Greengrass Core. Para obtener más información, consulte Instalación del software AWS IoT Greengrass Core.

    sudo adduser --system ggc_user sudo addgroup --system ggc_group
  10. Para mejorar la seguridad en el dispositivo Raspberry Pi, habilite la protección de enlaces permanentes y simbólicos (symlink) al inicio del sistema operativo.

    1. Vaya al archivo 98-rpi.conf.

      cd /etc/sysctl.d ls
      nota

      Si no ve el archivo 98-rpi.conf, siga las instrucciones del archivo README.sysctl.

    2. Utilice un editor de texto (como, por ejemplo, Leafpad, GNU nano o vi) para añadir las dos líneas siguientes al final del archivo. Es posible que tenga que utilizar el comando sudo para editar como raíz (por ejemplo, sudo nano 98-rpi.conf).

      fs.protected_hardlinks = 1 fs.protected_symlinks = 1
    3. Reinicie el dispositivo Pi.

      sudo reboot

      Pasado un minuto aproximadamente, conecte el Pi utilizando SSH y, a continuación, ejecute el comando siguiente para confirmar el cambio:

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

      Debería ver fs.protected_hardlinks = 1 y fs.protected_symlinks = 1.

  11. Edite el archivo de arranque de la línea de comandos para habilitar y montar los grupos de control de memoria. De este modo, AWS IoT Greengrass puede establecer el límite de memoria de las funciones Lambda. Los grupos C también deben ejecutar AWS IoT Greengrass en el modo de creación de contenedores predeterminado.

    1. Vaya a su directorio boot.

      cd /boot/
    2. Utilice un editor de texto para abrir cmdline.txt. Añada lo siguiente al final de la línea existente, no como nueva línea. Es posible que tenga que utilizar el comando sudo para editar como raíz (por ejemplo, sudo nano cmdline.txt).

      cgroup_enable=memory cgroup_memory=1
    3. Ahora reinicie el dispositivo Pi.

      sudo reboot

    Su Raspberry Pi ya debería estar preparado para AWS IoT Greengrass.

  12. Opcional. Instale Java 8 Runtime, requerido por el administrador de secuencias. En este tutorial no se utiliza el administrador de secuencias, pero sí el flujo de trabajo Creación predeterminada de un grupo, que habilita el administrador de secuencias de forma predeterminada. Utilice los siguientes comandos para instalar Java 8 Runtime en el dispositivo principal o desactivar el administrador de secuencias antes de implementar el grupo. Las instrucciones para desactivar el administrador de secuencias se proporcionan en el Módulo 3.

    sudo apt install openjdk-8-jdk
  13. Para asegurarse de que dispone de todas las dependencias necesarias, descargue y ejecute el comprobador de dependencias Greengrass desde el repositorio de AWS IoT Greengrass Muestras de GitHub. Estos comandos descomprimen y ejecutan el script comprobador de dependencias en el directorio Downloads.

    nota

    El comprobador de dependencias puede fallar si está ejecutando la versión 5.4.51 del núcleo de Raspbian. Esta versión no monta los grupos de control de memoria correctamente. Esto podría provocar un error en las funciones de Lambda que se ejecutan en modo contenedor.

    Para obtener más información sobre cómo actualizar el núcleo, consulte los Cgroups que no se cargan tras la actualización del núcleo en los foros de 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

    Donde aparece more, pulse la tecla Spacebar para mostrar otra pantalla de texto.

    importante

    En necesario que el tiempo de ejecución de Python 3.7 ejecute las funciones de Lambda locales para realizar este tutorial. Cuando el administrador de secuencias esté habilitado, también es necesario Java 8 Runtime. Si el script check_ggc_dependencies genera advertencias acerca de la ausencia de estos requisitos previos relativos al tiempo de ejecución, asegúrese de instalarlos antes de continuar. Puede hacer caso omiso de las advertencias que indican que faltan los requisitos previos relativos a tiempos de ejecución opcionales.

    Para obtener más información acerca del comando modprobe, ejecute man modprobe en el terminal.

Ya está terminada la configuración del dispositivo Raspberry Pi. Siga en Módulo 2: Instalación del software de AWS IoT Greengrass Core.