Skip to content

Instantly share code, notes, and snippets.

@marktayl1
Last active December 12, 2018 19:01
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save marktayl1/108bdb8a5a0cee8dc354a7b88d831043 to your computer and use it in GitHub Desktop.
Save marktayl1/108bdb8a5a0cee8dc354a7b88d831043 to your computer and use it in GitHub Desktop.
Install Steps for IoT Edge on NVIDIA Jetson Tx2

Install Steps for IoT Edge on NVIDIA Jetson Tx2

Multi-architecture method

Prerequisites: This assumes you already have docker up and running. You can also use Moby by following the instructions at https://docs.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-edge-linux-arm just before the installation of IoT Edge in step: 10

  1. $ sudo dpkg --add-architecture armhf
  2. $ sudo apt-get update
  3. $ sudo apt-get install libc-bin libc-bin libc-dev-bin libc6 libc6:armhf libc6-dev libgcc1 libgcc1:armhf locales
  4. $ wget http://ports.ubuntu.com/ubuntu-ports/pool/main/h/hostname/hostname_3.16ubuntu2_armhf.deb
  5. $ sudo dpkg -I ./hostname_3.16ubuntu2_armhf.deb li
  6. $ wget http://ftp.us.debian.org/debian/pool/main/o/openssl1.0/libssl1.0.2_1.0.2l-2+deb9u3_armhf.deb
  7. $ sudo dpkg -i libssl1.0.2_1.0.2l-2+deb9u3_armhf.deb
  8. $ sudo apt-get install -f
  9. If you get any error message, it may be related to the fact you have a non-compatible version of libssl like the libsll-dev version. In this case, just purge it with
    1. $ sudo apt-get purge libssl-dev
  10. $ curl -L https://aka.ms/libiothsm-std-linux-armhf-latest -o libiothsm-std.deb && sudo dpkg -i ./libiothsm-std.deb
  11. $ curl -L https://aka.ms/iotedged-linux-armhf-latest -o iotedge.deb && sudo dpkg -i ./iotedge.deb
  12. $ sudo apt-get install -f
  13. $ sudo nano /etc/iotedge/config.yaml
    1. If you are a GUI person, you can also use gedit in place of nano
  14. Add the connection string to your Edge device as usual (or configure dps)
  15. Change the edgeAgent config/image to reflect the architecture. For example "mcr.microsoft.com/azureiotedge-agent:1.0.0-linux-arm32v7"
    1. Note: this may not be necessary if using Moby instead of docker
  16. Save and close the file
  17. Edit the /etc/system/system/multi-user.target.wants/iotedge.service file
    1. Add the line below in the In the [Service] section
    2. Environment=LISTEN_FDNAMES=iotedge.mgmt.socket:iotedge.socket
  18. $ sudo systemctl restart iotedge

Troubleshooting:

  • If you run edge as a daemon, you may end up getting 127 errors. This just says something went wrong in the process started by the system. If you want better error info, you can try running iotedged from the command line using:
    • $ sudo /usr/bin/iotedged -c /etc/iotedge/config.yaml
  • Note, if you run iotedged from the command line, and it configures hsm, you will need to clear that configuration before starting iotedged as a service. If not, the service will fail repeatedly at the configuring hsm stage. You can clear it by removing the libiothsm, and deleting the /var/lib/iotedge/hsm directory. Then reinstall libiothsm as before.

More info about the libssl install and adding LISTEN_FDNAMES environment variable is here: https://blogs.msdn.microsoft.com/laurelle/2018/08/17/azure-iot-edge-support-for-raspbian-8-0-debian-8-0/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment