내용으로 건너뛰기

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.

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

관련 콘텐츠