跳至內容

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

已提問 2 年前檢視次數 155 次
1 個回答
1

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

AWS
專家
已回答 2 年前
  • 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.

  • Sorry for the late acceptance. This is what we're doing for now. I do see this as a documentation gap, and this method seems a little wonky for production.

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。