By using AWS re:Post, you agree to the AWS re:Post Terms of Use

Include GG Components in Factory Firmware

0

Hello,

I have fleet provisioning implemented on an ARM device. I'm able to install our factory firmware, power up, connect the device to the internet, and our custom components successfully deploy and run. Many of our customers do not have internet, or do not wish to have our devices connected. We need to include all our GG components in our factory image.

  1. Is it possible to set up a configuration ahead of time (config.tlog?) which expects a local deployment without using the GG CLI? We are resource constrained, and do not wish to add another dependency for a one-time use.

  2. Is it possible to load new components to the device out of band from GG as part of a firmware update of our device without internet access. Again, without GG CLI.

These seem like common cases that GG/AWSIOT should cover.

Thanks in advance! Matt

asked 2 months ago54 views
1 Answer
0

Hi. You can create a golden image by setting up a device in the normal way (using a cloud deployment), making a snapshot of the Greengrass file tree, and then copying that to each new device. This will copy all of your components and all of your configuration. For each new device, you would then also need to adjust the configuration:

  • Erase the thingName value to re-enable fleet provisioning.
  • Add the aws.greengrass.FleetProvisioningByClaim configuration to the services property, with new unique thing name in the template parameters.
  • Update any interpolated thing names (if you use thing name interpolation).
  • Erase any secrets.

Then apply the adjusted configuration.

UPDATE Oct 30 2024: New publication: Manufacturing devices at scale with AWS IoT Greengrass golden images

profile pictureAWS
EXPERT
answered 2 months ago
  • I'm not sure this would work with fleet provisioning. Would this trigger creation of new device certificates?

  • Hi. It works with fleet provisioning. You can take the effectiveConfig.yaml, modify it as described above, then update the configuration as follows:

    sudo java -Droot="/greengrass/v2" \
      -jar /greengrass/v2/alts/current/distro/lib/Greengrass.jar \
      --start false \
      --init-config /greengrass/v2/config/effectiveConfig.yaml
    

    Then you'll have a new device, with unique thing name, ready to be fleet provisioned.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions