Intel® Active Management Technology Software Development Kit (SDK) User Guide

Author: Intel® Software Network
Published On: Thursday, March 08, 2007 | Last Modified On: Monday, June 30, 2008
Introduction

The Intel® Active Management Technology (Intel® AMT) Software Development Kit (SDK) provides the necessary documentation; APIs and libraries to utilize Intel AMT features; and an emulator that simulates Intel AMT enabled hardware (Refer to the Intel AMT Emulator Guide for additional information). This SDK is distributed as a part of the Intel® Software Partner Program (SPP) and is not publicly available. The Intel AMT SDK is part of a targeted manageability program from Intel and is provided for use only under a Non-Disclosure Agreement (NDA) with Intel Corporation. The participants must be a part of Intel SPP to receive support during their development cycle. Intel expects effective and collaborative participation from Independent Software Vendors (ISVs). The contents of this SDK are subject to change. Review the End User License Agreement for details about the terms of use.

Overview

Besides APIs, the Intel Active Management Technology SDK provides auxiliary tools that support ISVs implementing Intel AMT enhanced software solutions even before the necessary silicon and platform infrastructure are available. The SDK allows developers to incorporate the following features into their applications:

  • Robust asset management
    • Hardware asset discovery
    • Hardware information and location
  • Out-of-Band management
    • OS-independent diagnostics
    • Non-volatile storage
    • Event management
    • Remote control capabilities
    • System Defense Feature
    • Agent Presence

Intel AMT supports remote applications running over Windows* or Linux*. Intel AMT release 1.0 supports both Linux and Windows local applications. Intel AMT Release 2.0 supports only Windows-based local applications.

An overview of all the components included in the Intel AMT SDK is provided in the table below.

Component Category Description Features/Benefits
Intel AMT Host Emulator* Hardware Emulation Simulates the hardware features of Intel AMT enabled hardware Enables testing of out of band management capabilities, including:
  • Non-volatile Storage access
  • Storage Administration features
  • Event Management
  • Registration and Transport Layer Security
  • PET Alerting
  • Remote Control Commands
  • Security Administration Interface
  • Hardware Asset Interface
  • System Defense Feature / Agent Presence
Intel AMT Storage Library Static Library
Header Files
Sample Code
Provides a storage-level abstraction layer for Storage commands; the library supports local and remote applications. Enables local and remote access to Non-Volatile Memory (NVM) on Intel AMT machines in all power states.
Intel AMT Redirection Library Dynamic Library (Windows*)
Static Library (Linux*)
Header Files
Sample Code
Provides an abstraction layer that implements “Serial over LAN” (SOL) and “IDE Redirection” (IDER), via a C language API. Allows managing remote Intel AMT machines through SOL/IDER sessions.
Error ID Conversion Library Dynamic Library (Windows) Provides a utility to convert Intel AMT error IDs to strings. Assists developer in providing clearer and consistent error handling and debugging capabilities.
Intel AMT Sample Configuration Application Sample Code Provides an example setup and configuration application. Assists developer to understand configuration concepts.
Intel AMT WSDL Definitions Documentation of the web service interfaces. Allow consistent use of the web services available through Intel AMT.
Intel AMT WSDL Sample Applications Sample Code Provides an example of how to use the WSDL files. Assist development in understanding WSDL/SOAP concepts covering Intel AMT specific usage.
Intel AMT System Defense Feature Sample Code Provides examples of System Defense Feature and Agent Presence Assist development in using System Defense Feature and Agent Presence feature.
Intel AMT Host Information Sample Code Provides an example of how to use the host information API Assists developer in understanding how to use the Host Information API. (Intel AMT Release 1.0 only)
Intel AMT SDK Developer’s Guide Documentation Documentation of the Intel AMT software features, use cases, architecture, and design guides for both agent and management console. Comprehensive documentation of the Intel AMT SDK includes:
  • System Requirements
  • Emulator usage
  • Setup and Configuration Documentation
  • Agent design
  • System Defense Feature & Agent Presence
  • Redirection Library
  • Validation Design Guide
* Not available on Linux

System Requirements

Following are the minimum system configurations required to use the Intel Active Management Technology SDK including the Intel AMT Host Emulator and the supported APIs.

ISV Storage SDK (Linux)

  • Hardware
    • 256 MB RAM.
    • Ethernet Adapter for Remote Console support
  • Operating System
    • Linux RedHat* EL3.0 i386 & x86_64 (remote interface only)
    • Linux RedHat* EL4.0 i386 & x86_64 (remote interface only)
    • SUSE Professional 9.3 (remote interface only)
  • Software
    • OpenSSL 0.9.7a or later
    • Default g++ compiler (for development only)

ISV Storage SDK (Windows)

  • Hardware
    • 256 MB RAM.
    • Ethernet Adapter for Remote Console support
  • Operating System
    • Windows 2000 Service Pack 4 (local and remote)
    • Windows XP Pro Service Pack 1 or later (local and remote)
    • Windows XP x64 edition (local and remote)
    • Windows Server 2003 (remote only)
    • Windows Server 2003 x64 edition (remote only)
    • Windows Vista (local and remote)
    • Windows Vista x64 edition (local and remote)
  • Software
    • Microsoft Visual Studio .NET 2003 (for development only)
    • Microsoft Platform SDK (for development only)

Redirection Library (Linux)

  • Hardware
    • 512 MB RAM (1Gbyte recommended)
    • Pentium 4 processor (1.8 GHz) or better
    • Ethernet Adapter for Remote Console support
  • Operating System
    • Linux RedHat EL3.0 (remote interface only)
    • Linux RedHat EL4.0 (remote interface only)
  • Software
    • Default g++ compiler (for development only)

Redirection Library (Windows*)

  • Hardware
    • 512 MB RAM (1Gbyte recommended)
    • Pentium 4 processor (1.8 GHz) or better
    • Ethernet Adapter for Remote Console support
  • Operating System
    • Windows 2000 Service Pack 3 or later
    • Windows XP Pro Service Pack 1 or later
    • Windows Server 2003
    • Windows XP and Server 2003 x64 editions
    • Windows Vista
    • Windows Vista x64 edition
  • Software
    • Microsoft Visual Studio .NET (for development only)

WSDL sample applications

  • Hardware
    • 256 MB RAM
    • Ethernet Adapter for Remote Console support
  • Operating System
    • Windows 2000 Service Pack 4
    • Windows XP Service Pack 1 or Service Pack 2
    • Windows Server 2003
    • Windows Vista
    • Linux RedHat EL3.0 (remote interfaces only)
    • Linux RedHat EL4.0 (remote interfaces only)
    • Remote Control Sample also will run with Windows and Linux x64 versions
  • Software
    • Microsoft Visual Studio .NET (for development only)
    • The Microsoft Windows Server 2003 Service Pack 1 Platform SDK* or later. (for development only).
    • Microsoft .NET Framework V1.1. (for C# samples)
  • Software (Linux)
    • OpenSSL 0.9.7a or later
    • The default g++ compiler of the distribution (for development only)

The following items require a Windows-based platform:

Intel AMT Emulator

  • Hardware
    • 256 MB RAM
    • Ethernet Adapter for network interface support
  • Operating System
    • Windows XP Pro Service Pack 1 or later
  • Software
    • Microsoft .NET Framework V1.1
    • Microsoft Internet Information Services (IIS) Version 5.1 for web services support (default on Windows XP Pro)

Intel AMT Sample Configuration Application

  • Hardware
    • 256 MB RAM
    • Ethernet Adapter for network interface support
  • Operating System
    • Windows XP Pro Service Pack 1 or later
    • Windows Vista
  • Software
    • Microsoft Visual Studio .NET (for development only)
    • Microsoft .NET Framework V1.1
    • OpenSSL* Crypto Provider version 0.9.7d

Name Resolve Sample

  • Hardware
    • 256 MB RAM.
    • Ethernet Adapter for Remote Console support
  • Operating System
    • Windows XP Pro Service Pack 1 or later
    • Windows Server 2003
  • Software
    • Microsoft .NET Framework V1.1
    • Microsoft Visual Studio .NET (for development only)

 

Microsoft Hotfixes
The following Microsoft hotfixes enable the SDK and user applications to operate in certain environments. The hotfixes listed below are incorporated into Vista.

Problem: A local or remote application will crash when trying to create more than one connection with an Intel AMT device.

Solution:

Windows Server 2003 – Be sure that Service Pack 1 is installed. The problem is resolved with item KB889388.

Windows XP – Contact Microsoft for a fix to this problem.

Windows 2000 –Microsoft does not anticipate fixing this issue due to its reduced level of support for Window 2000.

Problem: Internet Explorer 6 cannot use the Kerberos authentication protocol to connect to the Intel AMT WEBUI.
Solution:
Windows Server 2003 and Windows XP – The problem is resolved with item KB908209.

Problem: A local or remote application will fail to connect when attempting to use Kerberos authentication based on the WinHTTP library.

Solution:

Windows Server 2003 and Windows XP – The problem is resolved with item KB899900.

Windows 2000 – Microsoft does not anticipate fixing this issue due to its reduced level of support for Window 2000. As a result, Kerberos authentication from a Windows 2000 client will not be possible. The samples in this SDK will also fail to connect when they are configured for Kerberos authentication on a Windows 2000 client.

Intel Active Management Technology SDK Installation Layout

The Intel Active Management Technology SDK is delivered as a set of directories that you can copy to a location of choice on your system. The directory structure should be copied in its entirety as there are interdependencies between components.

The SDK is organized into the following directory structure:

  1. The top level has three folders, one for the SDK documentation in pdf format (Docs folder) and one each for the Linux and Windows version of the SDK.
  2. The Linux folder contains a folder named IntelAMTSDK which holds a single*.tar file. It expands into six folders:
  3. The Docs directory contains the SDK readme, third-party software licenses, and other text files.
  4. The Include directory contains .h files and the WSDL files that support all the samples.
  5. The Lib directory contains ISV Storage Library images for the different supported development options. See “Linking with the Intel-Supplied Storage Library for Linux”, below. It also contains images of the Redirection Library.
  6. The Samples directory contains the following sample programs:
    AgentPresence [Agent Presence Sample and Sample Agent (control a Windows-based sample local agent from a Linux-based management console)
    AgentPresenceAPI [Agent Presence API Sample]
    ApiTest [API Test Program]
    AssetDisplay [Asset Display Sample]
    CircuitBreaker [System Defense Feature Sample]
    EventSimulation [Simulates events using the Emulator]
    General Info [General Information Sample (only supported remotely)]
    HostInfoSample [Host Information Sample]
    NetworkAdministration [Network Administration Sample]
    RedirectionConfig [Enables the Redirection Service]
    RedirectionSample [Redirection Sample]
    RemoteControl [Remote Control Sample] Includes x64 support
    SecurityAdministration [Security Administration Sample]
    StorageAdmin [Storage Administration Sample]
    StorageSamples [Sample Use of the ISV Storage API (remote use only)]

  7. The Src directory contains source code and supporting files for the storage library.
  8. The ThirdParty directory contains the gSOAP toolset used by many of the C++ sample programs to demonstrate SOAP capabilities and a utility for converting between UTF-32, UTF-16, and UTF-8 formats.
  9. The Windows directory contains two folders:
  10. Intel AMT Emulator has an install file for the emulator and the System Defense Feature (Circuit Breaker) driver used by the Emulator. You can install the emulator by running the “setup.exe” file in the emulator directory. The default installation location for the emulator on Microsoft Windows* is “%PROGRAMFILES%\Intel\Intel AMT Emulator”. See the Emulator Guide for Circuit Breaker driver installation instructions.
  11. Intel AMT SDK contains source and executables for the SDK sample programs, along with associated libraries and certain third party products required for ISV development.
  12. The Docs directory contains the SDK readme, third-party software licenses, and other text files.
  13. The Bin directory contains executable files of the sample programs. The Setup and Configuration Application and all of its associated files and directories are located here in the Configuration folder. See the Developers Guide to the Sample Setup and Configuration Application for details.
  14. The Samples directory contains the source code for all of the sample programs. These include:
    AgentPresence [Agent Presence Sample and Sample Agent]
    AgentPresenceAPI [Agent Presence API Sample]
    AssetDisplay [Asset Display Sample]
    CircuitBreaker [System Defense Feature Sample]
    Configuration [Sample Configuration Server]
    EventSimulation [Simulates events using the Emulator]
    GeneralInfo [General Information Sample]
    HostInfoSample [Sample use of the host information interface]
    Java_RemoteControl [example of remote control using Java]
    NameResolveSample [Name Resolve Sample]
    NetworkAdministration [Network Administration Sample]
    Redirection [Redirection Sample]
    RedirectionConfig [Enables the Redirection Service]
    RemoteControl [Remote Control Sample] Includes x64 support
    SecurityAdministration [Security Administration sample]
    StorageAdmin [Storage Administration Sample]
    StorageSamples [Sample use of the ISV Storage API]

  15. The Include directory contains common SDK definitions. The WSDL files for all of the Intel AMT services are located here.

  16. The Lib directory contains ISV Storage Library images for the different supported development options. See “Linking with the Intel-Supplied ISV Storage Library for Microsoft Windows*”, below.
  17. The Src directory contains the source code of the Storage Library and the Status Strings dll.
  18. The ThirdParty directory contains source and library files needed for creating the Java sample and the gSOAP toolset used by many of the C++ sample programs to demonstrate SOAP capabilities.


Where appropriate, Readme files are included that have the latest product information and instructions for product use. Review the readme files carefully so that you can use the Intel Active Management Technology SDK effectively.

4.1 Linking to Microsoft Platform SDK libraries to support the ISV Storage SDK and WSDL Sample applications

The Microsoft Platform SDK includes the WinHTTP library, which is required for the proper compilation of the Intel AMT SDK samples for Microsoft Windows*. You will have to install the Microsoft Platform SDK to effectively use the Intel AMT SDK.

Storage Library limitation: Local ISV storage applications access the Intel AMT device using Windows Management Instrumentation (WMI). The WMI default permissions in Windows Vista (both regular and x64 Edition) and Windows XP x64 Edition do not allow user accounts to perform the operations required by the storage library. If the user executing a local storage application does not have Administrator permissions on the platform, the operation will fail.

  • Download the Microsoft Platform SDK from http://msdn.microsoft.com/platformsdk.
    Microsoft provides three methods of doing this: a web installation, an ISO download, and a full file download. Choose the method that best suits your needs.

Before any of the ISV Storage Samples can be compiled, the paths to the Microsoft Platform SDK lib and include directories need to be referenced by the development environment. There are a number of methods to accomplish this. The following method adds the two directories globally so they are available to any project. In the following example, the default root directory to the platform SDK is referenced:

C:\Program Files\Microsoft Platform SDK

  • In Visual Studio, go to the Tools menu and select Options.
  • Expand the Projects folder on the left side of the Options window and in the top right drop-down box titled Show directories for select Include files.
  • If "C:\Program Files\Microsoft Platform SDK\include" is not shown in the displayed list, add it to the top of the list. Adding this directory below the Microsoft Visual Studio directories could cause unexpected errors. See Figure 1 below.

Figure 1: Visual Studio Include Files

  • Select the Show directories for: drop-down, then select Library Files and if "C:\Program Files\Microsoft Platform SDK\lib" is not present, add it to the bottom of the list. Adding this directory above the Microsoft Visual Studio directories could cause unexpected issues and errors. Adding this directory to the bottom of the list may contradict other instructions; however compilation errors may occur if this directory is not added below the others. See Figure 2 below.

Figure 2: Visual Studio Libraries

Building projects after this setup may result in receipt of a warning message that the environment variable $MSSDK was undefined. To eliminate this warning, define

MSSDK = C:\Program Files\Microsoft Platform SDK.

4.2 Linking with the Intel-Supplied ISV Storage Library for Microsoft Windows*

The Intel-supplied static library provides all of the logic to communicate with Intel AMT enabled hardware and firmware and must be compiled into the ISV application. Two different types of libraries are supplied depending upon the implementation method preferred by the ISV. To link with the Intel-supplied library, put the library file name in the “Additional Dependencies” field of the “Linker/Input” dialog of Visual Studio, as shown in Figure 3.

Figure 3: Microsoft Visual Studio* Library Dependency Settings

The SDK includes four different versions of the Intel AMT ISV Storage Library. Select the library that matches the environment that you use for compiling your application. All four libraries assume a multi-threaded environment. If you compiled using a single-threaded (/ML) flag, you will need to recompile with a multi-threaded option.

  • If the application was originally compiled using the “Multi Threaded (/MT)” flag (see Figure 4), then the “iamt.lib” library should be used during the link phase.
  • If the application was originally compiled using the “Multi Threaded DLL (/MD)” flag, then the “iamtdyn.lib” library should be used during the link phase.
  • If the application is compiled for the Windows x64 edition then link with the “iamt_X64.lib” or “iamtdyn_X64.lib” (according to the above criteria). These versions are supported for local access only. See details below for x64 versions of the library.

Figure 4: Microsoft Visual Studio threading switches

The Intel AMT SDK contains the debug version of the ISV Storage Library modules to allow building ISV applications in the debug environment. These modules come with minimal testing and support and are to be used in debug environments only. The debug versions reside in the same directory of the release versions (\lib). The table below lists the ISV Storage Library modules which are part of the Intel AMT SDK.

Module Name Environment Debug / Release Notes
iamt.lib Windows 32 Release  
iamtdyn.lib Windows 32 Release For Multi Threaded DLLs
iamt_X64.lib Windows 64 Release  
Iamtdyn_X64.lib Windows 64 Release For Multi Threaded DLLs
iamtD.lib Windows 32 Debug  
iamtdynD.lib Windows 32 Debug For Multi Threaded DLLs
iamtD_X64.lib Windows 64 Debug  
IamtdynD_X64.lib Windows 64 Debug For Multi Threaded DLLs

When developing an application that uses the ISV Storage Library choose the appropriate module from the table above and supply it in the Linker > Input > Additional Dependencies of the Project Properties (as seen in the screen captures above).

Working with the x64 version of the ISV Storage Library

The x64 version of the ISV storage library supports access to the Intel AMT nonvolatile memory only from the local platform. The library does not support remote access to an Intel AMT device from an x64 system.

The ISV Storage Library supplied for x64 support has been linked with the Microsoft Platform SDK. The ISV Storage Samples also require the Microsoft Platform SDK to successfully link with the x64 modules of the ISV Storage Library. To build an x64 application, invoke the SetEnv batch file supplied in the Microsoft Platform SDK before opening the Visual Studio .Net. Calling SetEnv allows starting Visual Studio in cross-compilation mode, which then allows linking for x64 platforms.

In addition to invoking Visual Studio .Net for cross-compilation (see the example command sequence below), porting applications to x64 platforms requires different parameters in the x64 project properties. The _X64 projects supplied in the Intel AMT SDK Storage Samples are configured with the parameters needed for the sample application to be compatible with Windows x64 platforms.

The following script invokes Visual Studio .Net for cross compilation:

setlocal

REM Configure basic parameters for Visual Studio .Net
call "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"

REM Configure parameters for x64 cross compilation
call "C:\Program Files\Microsoft Platform SDK\SetEnv.cmd" /XP64

REM Launch Visual Studio .NET using environmental variables set REM by the previous scripts.
devenv /useenv

endlocal
Linking with the Intel-Supplied Redirection Library for Microsoft Windows*

The Intel-provided dynamic Redirection Library provides all of the logic to redirect serial and IDE data to or from Intel AMT enabled hardware and firmware. If you want to link with the Redirection Library, you must:

  • Compile the application with the provided import library (imrsdk.lib).
  • Make sure that the dynamic Redirection Library (imrsdk.dll) is located in a known path so that it will be loaded when the application is executed. Such a path can be the same location as the application executable file, or in a system known path, such as %SystemRoot%\system32.

To compile an application with the import library, put the library file name in the “Object/library modules” field of the “Link/Input” page of the project setting dialog in Visual Studio (see Figure 5).

Figure 5: Microsoft Visual Studio* Project Settings

Linking with the Intel-Supplied Storage Library for Linux

The Intel-provided static library provides all of the logic necessary to communicate with Intel AMT-enabled hardware and firmware and must be compiled into the ISV application. If you want to link with the Intel supplied library, put the library file name in the Makefile in the linkage command. The following options should be used if you use the gnu C compiler:

-liamt –L<dir>

Where <dir> is the directory in which libiamt.a is located.

Other additional libraries are also required: crypto, pthread and ssl. Use the following additional arguments when you link with the gnu compiler:

-lcrypto -lpthread –lssl

You will need an installation script that runs under root permissions if you want to use the Linux library on remote machines. This script must be run on all systems where applications linked with the library will be run. For more information see the Linux storage library Readme.

Intel AMT SDK contains several versions of the storage library for the different supported Linux flavors.

Module name Operating System Notes
libiamt.a Red Hat 3 i386 version Local and remote access
libiamtRH3.a Red Hat 3 i386 version An exact copy of libiamt.a (for backward compatibility)
libiamtRH4.a Red Hat 4 i386 version Local access only
libiamtRH3_X64.a Red Hat 3 X64 version Local access only
libiamtRH4_X64.a Red Hat 4 X64 version Local access only
libiamtSuSE93.a SUSE 9.3 i386 version Local access only

The Makefiles provided in the storage samples detect the operating system on which they running, and are thus able to determine which of the library modules to link with.

Linking with the Intel Supplied Redirection Library for Linux

The Intel-provided static Redirection library provides all of the logic required to redirect serial and IDE data to and from Intel AMT enabled hardware and firmware. If you want to link with the Intel supplied library, put the library file name in the Makefile in the linkage command. The following options should be used if you use the gnu C compiler:

-limrsdk –L<dir>
Where <dir> is the directory in which libimrsdk.a is located.

Other additional libraries are also required: crypto, pthread and ssl. The following additional arguments must be used when linking with the gnu compiler:

-lcrypto -lpthread –lssl

Capability Support Matrix

The following table lists the major SDK features. It notes which features are supported by the Intel AMT Emulator and which interface method is used – the Intel AMT Static Library, or the SOAP Network Interface. Each feature comes with sample code and a sample application.

Feature Emulator Support
Interface Method
Library SOAP Sample Code and Application
ISV Storage Yes Yes   Yes
Storage Administration Yes   Yes Yes
Asset Management Yes   Yes Yes
Remote Control Yes (messages only)   Yes Yes
Security Administration Yes (Partial)   Yes Yes
Network Administration     Yes Yes
System Defense Feature / Agent Presence Yes   Yes Yes
General information     Yes Yes
SOL / IDER   Yes   Yes
Configuration Sample     Yes Yes

RESOURCES:

Post a comment If you have any questions, please contact our support team.