I’m trying to build the WS-Management libraries on Linux so that I can run some sample power operation programs from a Linux OS. I also need to be able to apply my server’s certificate to the AMT device so AMT can trust the server.
I downloaded the source from this link: https://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/default.htm
I’ve been making small modifications to the Cmake files, like removing WinRMClient from the build, and telling Cmake to use C++11 and C11. I’m building on CentOS 7 (just what I have available) with Cmake version 3.22.0-rc3
My questions are:
- Is it advisable to try to build this source or use these libraries from Linux? Am I missing any instructions or modified source for doing this?
- Do you have suggestions for alternative technologies that would be supported on Linux? I understand I can use a wsman client with Cim/DMTF protocol. Is that my only other option instead of using this SDK? I’m open to using other languages. A library or SDK with more sophisticated error handling is preferred instead of running command line tools. I have been doing similar operations using HLAPI on Windows but now have a need to support Linux.
My current build errors are these – my build gets stuck in CimFrameworkUntyped, looking for a Microsoft xml dependency, and can’t get past the strnlen_s error even though it should have the right headers and C++ version:
Building CXX object CimFrameworkUntyped/CMakeFiles/CimFrameworkUntyped.dir/src/XMLUtils_MS.cpp.o
amt_cpp_sdk/WS-Management/CimFrameworkUntyped/src/XMLUtils_MS.cpp:11:20: fatal error: msxml6.h: No such file or directory
make: *** [CimFrameworkUntyped/CMakeFiles/CimFrameworkUntyped.dir/src/XMLUtils_MS.cpp.o] Error 1
make: *** Waiting for unfinished jobs....
amt_cpp_sdk/WS-Management/CimFrameworkUntyped/src/CimUtils.cpp: In function ‘void Intel::Manageability::Cim::Utils::FromBase64(const unsigned char*, unsigned char*, unsigned int*)’:
amt_cpp_sdk/WS-Management/CimFrameworkUntyped/src/CimUtils.cpp:69:50: error: ‘strnlen_s’ was not declared in this scope
strnlen_s((const char *)inStr, tmp.length()), (char*)outStr, &state);