7 Greengrass System Requirements

The AWS Greengrass documentation describes several requirements of the Linux system. The Buildroot system makes sure the following items are enabled.

The following items are required:

  • Minimum 128 MB RAM allocated to the AWS IoT Greengrass core device.
  • Linux kernel version 4.4 or greater:
  • Glibc library version 2.14 or greater.
  • The /var/run directory must be present on the device.
  • Hardlink and symlink protection
  • The following Linux kernel configurations must be enabled on the device:
    • Namespace: CONFIG_IPC_NS, CONFIG_UTS_NS, CONFIG_USER_NS, CONFIG_PID_NS
    • CGroups: CONFIG_CGROUP_DEVICE, CONFIG_CGROUPS, CONFIG_MEMCG
    • Others: CONFIG_POSIX_MQUEUE, CONFIG_OVERLAY_FS, CONFIG_HAVE_ARCH_SECCOMP_FILTER, CONFIG_SECCOMP_FILTER, CONFIG_KEYS, CONFIG_SECCOMP
  • dev/stdin, /dev/stdout, and /dev/stderr must be enabled
  • The Linux kernel must support cgroups in order to run AWS IoT Greengrass with containers.
  • The memory cgroup must be enabled and mounted to allow AWS IoT Greengrass to set the memory limit for Lambda functions.
  • The root certificate for Amazon S3 and AWS IoT must be present in the system trust store.

The following items are optional:

  • The devices cgroup must be enabled and mounted if Lambda functions with Local Resource Access (LRA) are used to open files on the AWS IoT Greengrass core device.
  • Python version 3.7 is required if Python Lambda functions are used. If so, ensure that it is added to your PATH environment variable.
  • The following commands are required for Greengrass OTA Agent: wget, realpath, tar, readlink, basename, dirname, pidof, df, grep, and umount.