I wish to connect my Intel Edison with Microsoft Azure IoT.
Originally, I refer to this documentation https://software.intel.com/en-us/articles/intel-edison-board-microsoft-azure-iot-suite-setup IoT - Setting up the Intel® Edison Board with the Microsoft Azure IoT Suite | Intel® Developer Zone .
However, there is some error on ./build.sh and make -f makefile.linux
The error is shown as per below:
root@edison:~/azure-iot-sdks/c/iothub_client/samples/iothub_client_sample_amqp/linux# make -f linux
make: linux: No such file or directory
make: *** No rule to make target 'linux'. Stop.
root@edison:~/azure-iot-sdks/c/build_all/linux# ./build.sh --no-mqtt
-sh: ./build.sh: not found
The reason for this is the latest Azure IoT SDK in C (Updated one month ago) no longer have build_proton.sh, which can be seen in Github Azure IoT SDK Webpage https://github.com/Azure/azure-iot-sdks GitHub - Azure/azure-iot-sdks: SDKs for a variety of languages and platforms that help connect devices to Microsoft Azur….
Then, I refer to latest GIT documentation https://github.com/Azure/azure-iot-sdks/blob/master/doc/get_started/yocto-intel-edison-c.md azure-iot-sdks/yocto-intel-edison-c.md at master · Azure/azure-iot-sdks · GitHub .
With additional command opkg install nodejs, I am ble to execute ./build.sh. But with following errors:
root@edison:~/azure-iot-sdks/c/build_all/linux# ./build.sh --no-mqtt --no-amqp --no-http
-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check<span ...
I've encountered the same issue as you, we're still working on this but I don't have anything new to report yet. As soon as I have news about this I'll contact you back.
Further update you on this.
I post similar thread for this question on Microsoft Azure Forum and Github Azure azure-iot-sdks Forum. The thread links is as per below:
Microsoft Azure Forum (No Solution Yet)
Github Azure azure-iot-sdks Forum (Have Found The Root Cause)
https://github.com/Azure/azure-iot-sdks/issues/353 Intel Edison - Execute ./build.sh and make -f linux Error · Issue # 353 · Azure/azure-iot-sdks · GitHub
The root cause for this is posted in GitHub Azure azure-iot-sdks Forum, as per below:
Here is the root cause of this issue: Intel Edison has older Git version installed which doesn't support submodules. Our C SDK uses submodules for each protocol implementation and because of those submodules were not exist the build script failed.
The best option in this case to cross compile our SDK for Edison platform. Follow the instruction from here:
I am closing this issue. Please open a new one if you hit new issues with the cross compilation.
However, the provided link only show instructions for Raspberry Pi platform, not for Intel Edison platform.
Do you have any idea on cross compiling for Intel Edison as per provided link?
Maybe I can try it out.
Thank you for providing us this information, I will pass it to the appropriate team. Regarding your new question, I believe the best option right now would be, as they mention, to open a new issue in Azure's github for cross compiling their SDK on Edison. Since they created the SDK, it is likely that they can provide you a more accurate support.
Thanks for the quick response.
I have opened a new issue on Azure's Github for cross compiling SDK on Intel Edison.
Will update here if there is any latest news.
I have one doubt on the IoT Hub connection" aka "connectionString" string placeholder in "/c/iothub_client/samples/iothub_client_sample_amqp/iothub_client_sample_amqp.c".
According to https://github.com/Azure/azure-iot-sdks/blob/master/doc/get_started/yocto-intel-edison-c.md azure-iot-sdks/yocto-intel-edison-c.md at master · Azure/azure-iot-sdks · GitHub, it must be in the following format:
static const char* connectionString = "HostName=[YOUR-HOST-NAME];CredentialScope=Device;DeviceId=[YOUR-DEVICE-ID];SharedAccessKey=[YOUR-ACCESS-KEY]";
There are two types of SharedAccessKey:
1) String generated from Microsoft Azure Website
2) String generated from Visual Studio 2015
In this situtation, HostName=trafficIoT.azure-devices.net, DeviceId=Edison01, but SharedAccessKey should use which one?