Field gateway support for OpenWrt platform
My current platform is OpenWrt and hence I am trying to build the IOT Azure field gateway under the OpenWrt platform. Does the current version support OpenWrt platform as I couldn't see it in the documentation? If yes, can you provide the steps/procedure to port the field gateway to OpenWrt platform or is there any beta version already available. If no, are there plans to support for the OpenWrt platform?
Thanks
No the gateway SDK doesn't currently support OpenWrt. You should be able to port it using the guide here.
Thanks. Further based on the following link, I could understand that Azure IOT device SDK (not field gateway SDK) supports for OpenWrt platform. Is that understanding right?
https://github.com/Azure/azure-iot-device-ecosystem/blob/master/get_started/openwrt-arduino-yun-c.md
If yes, are there any plans for porting the existing field gateway SDK to support OpenWrt platform in the nearby futher or is there any beta version of it.
Yes, I believe the device SDK does have a port to OpenWRT. But no, we don't have any plans to port the gateway SDK to that OS right now. Contributions are always welcome, though! 😉
Hi, was trying to follow the porting guide link above, but it's giving me a 404 :(.
I'm looking into porting the Gateway SDK to OpenWRT and would appreciate the doc above to get started - I've finished the Device C SDK and I was trying to use the build.sh option --toolchain-file with a toolchain files based on the version I used for the Device SDK, unfortunately without success.
BTW: Is porting v2 of the Gateway SDK at least similar - otherwise I'd wait for v2 to be published.
Thanks!
One quick update - I managed to compile the v1 version of the Gateway SDK for OpenWRT - as this is using a cross compilation environment, the only real hurdle was to get the toolchain file defined and adapt the ~iot-edge/v1/tools/build_libuv.sh file. You need to add a parameter to the "./configure .." command line to indicate the cross compilation environment. In my case adding "--host=mips64-linux" did the trick.
The link worked for me just now...perhaps there was a temporary problem. Have you tried it again?
libuv is only used for out-of-proc modules. If you're using in-proc modules, you can pass the --disable-native-remote-modules flag to build.sh and it will skip compilation of libuv altogether.
The v2 architecture is quite different. The software we provide is less of an SDK and more of a runtime, and it's already available in public preview (go here to get started), although it's not OSS at this point. Modules are self-contained apps that run in Docker containers. Modules talk to each other and to the core runtime via the device SDK, so they don't need to define certain functions (e.g., start, stop, send, or receive) to meet the definition of a module. In order to use v2, your platform needs to be able to run Docker--your OpenWRT-based OS would need to support it, and the hardware would need to be capable of running our core runtime (written in .NET Core). Today we have module support in the C# SDK, and to a lesser extent the C SDK. Our other SDKs (Java, Node.js, Python) will be updated soon, so it will be easy to write modules in those languages.
Thanks for the update on v2 - as it's docker based I guessing the target hardware is limited to x86 and ARM based devices being able to host docker container. Unfortunately a lot of communication devices are based on MIPS processors and at least I haven't seen any docker support for them :(.
Anyway, will tinker more with the v1 version on the MIPS64 platform ...
BTW: The link https://github.com/Azure/azure-iot-sdk-c/blob/master/doc/porting_guide.md is still not working for me - jsut showing a 404 ...
Ah, thanks for clarifying the link...you're right, that document moved to another repo. The updated link for the porting guide is: https://github.com/Azure/azure-c-shared-utility/blob/master/devdoc/porting_guide.md