Skip to content

Build & Run RPC

Developed in Go* programming language, the Remote Provisioning Client (RPC) application runs on the managed device and communicates with the Remote Provisioning Server (RPS) microservice on the development system. The RPC and RPS configure and activate Intel® AMT on the managed device. Once properly configured, the remote managed device can call home to the Management Presence Server (MPS) by establishing a Client Initiated Remote Access (CIRA) connection with the MPS. See Figure 1.

Getting Started Part 3: Follow along to learn about how to build RPC, some of the information it can provide, and how to activate an AMT device. Additional Resources: RPC as a Library and RPC Commands and Flags

Important - Production Environment

In a production environment, RPC can be deployed with an in-band manageability agent to distribute it to the fleet of AMT devices. The in-band manageability agent can invoke RPC to run and activate the AMT devices.

Figure 1: RPC Configuration
Figure 1: RPC configuration

Figure 1 Details

The RPC on a managed device communicates with the Intel® Management Engine Interface (Intel® MEI, previously known as HECI) Driver and the Remote Provisioning Server (RPS) interfaces. The Driver uses the Intel® MEI to talk to Intel® AMT. The RPC activates Intel® AMT with an AMT profile, which is associated with a CIRA configuration (Step 3). The profile, which also distinguishes between Client Control Mode (CCM) or Admin Control Mode (ACM), and configuration were created in Create a CIRA Config or Create an AMT Profile. After running RPC with a profile, Intel® AMT will establish a CIRA connection with the MPS (Step 4) allowing MPS to manage the remote device and issue AMT commands (Step 5).

Build the RPC

Flexible Deployment - RPC as a Library

The RPC can be built as an executable file or as a library, which offers the flexibility of deploying in your management agent or client. Read more about building RPC as a library here.

To build the executable:

If you are building an executable on a development system, you will copy the executable to the managed device.

  1. Change to the rpc-go directory of the cloned open-amt-cloud-toolkit repository.

    cd rpc-go
    
    Haven't Cloned the open-amt-cloud-toolkit Repository?
    • Only clone the rpc-go repository:

      git clone https://github.com/open-amt-cloud-toolkit/rpc-go --branch v2.7.0
      

    • Alternatively, clone the whole toolkit repository:

      git clone https://github.com/open-amt-cloud-toolkit/open-amt-cloud-toolkit --branch v2.10.0 --recursive
      

  2. Open a Terminal (Linux) or Powershell/Command Prompt as Administrator (Windows):

    go build -o rpc ./cmd/main.go
    
    go build -o rpc.exe ./cmd/main.go
    
    docker build -f "Dockerfile" -t rpc-go:latest .
    

    Note

    The image created with the Docker instruction above is only suitable for Docker on a Linux host.

  3. Confirm a successful build:

    sudo ./rpc version
    
    .\rpc version
    
    sudo docker run --rm -it --device=/dev/mei0 rpc-go:latest version
    

Run RPC to Activate and Connect the AMT Device

The toolkit provides a reference implementation called the Sample Web UI to manage the device. After running device activation instructions below, your device will be listed on the Devices tab in the Sample Web UI.

To run the application and connect the managed device:

  1. After building the RPC, copy the executable to the managed device.

  2. On the managed device, open a Terminal (Linux) or Powershell/Command Prompt as Administrator (Windows).

  3. Navigate to the directory containing the RPC application.

  4. Running RPC with the activate command configures or provisions Intel® AMT. It will take 1-2 minutes to finish provisioning the device. In the instruction below:

    • Replace [Development-IP-Address] with the development system's IP address, where the MPS and RPS servers are running.
    • Replace [profile-name] with your created profile in the Sample Web UI. The RPC application command line parameters are case-sensitive.
    sudo ./rpc activate -u wss://[Development-IP-Address]/activate -n -profile [profilename]
    
    .\rpc activate -u wss://[Development-IP-Address]/activate -n -profile [profilename]
    
    sudo docker run --rm -it --device=/dev/mei0 rpc-go:latest activate -u wss://[Development-IP-Address]/activate -n -profile [profilename]
    

    Note - RPC Arguments

    See more about the flag and other arguments.

    Note - Transition Activated Device

    To learn how to use the RPC application to transition an already activated (provisioned) Intel vPro® Platform device, see Transition Activated Device.

    Success

    Example Output after Activating and Configuring a device into ACM:

    Figure 2: Example output after configuration
    Figure 2: Example output after configuration

    Troubleshooting

    Run into an issue? Try these troubleshooting steps.

Next up

Manage AMT Device