Build & Run RPC
The Remote Provisioning Client (RPC) on the managed devices establishes the Client Initiated Remote Access (CIRA) connection of the Intel® Active Management Technology (Intel® AMT) device to the Management Presence Server (MPS). This allows the remote device to call home to the MPS.
After running the RPC, the Intel® AMT managed device can be managed remotely using the web interface!
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 Details
The RPC on the managed devices communicates with the Manageability Engine Interface (MEI) and Remote Provisioning Server (RPS) interfaces. The MEI uses the ME Driver to talk to Intel® AMT (Steps 3 and 4, Figure 1). The RPC activates Intel® AMT with an AMT profile, which is associated with a CIRA configuration. 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, the MPS can manage the remote device and issue AMT commands (Steps 5, Figure 1).
Build RPC¶
We leverage GitHub Actions as a means to build RPC automatically leveraging Github's CI/CD Infrastructure. This avoids having to deal with the challenges of getting your build environment just right on your local machine and allows you to get up and running much faster. However, if you wish to do this locally, please follow the instructions here. Optionally, to build RPC with Docker, skip to Docker Build.
Read more about GitHub Actions here
Github Actions¶
To Build the RPC with Github Actions¶
-
Create a fork of the repository.
-
Click on the Actions tab at the top and select Build RPC (Native) Debug/Release.
-
Click the Run Workflow dropdown.
-
Select the branch: v1.2.0 from the Use workflow from dropdown.
-
By default, the Build Type should be release.
-
Click the Run Workflow button.
-
The build time ranges from 15 to 20 minutes.
-
Once the download is complete, click the completed job which will feature a green checkmark.
-
Download the appropriate RPC for your managed device's OS under the Artifacts section.
To Delete your workflow run¶
-
Click the ... menu for the workflow.
-
Choose the Delete workflow run option.
Docker Build¶
To build RPC w/ Docker, use the following command from the root directory of the open-amt-cloud-toolkit:
cd ./rpc && docker build -f "Dockerfile" -t rpc:latest .
Run RPC to Activate and Connect the AMT Device¶
To run the application and connect the managed device:
-
On the managed device, open a Terminal (Linux) or Powershell/Command Prompt as Administrator (Windows).
-
Navigate to the directory containing the RPC application.
-
Run RPC with the following command to activate and configure Intel® AMT. It will take 1-2 minutes to finish provisioning the device.
-
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 from the Web Server. The RPC application command line parameters are case sensitive.
sudo ./rpc -u wss://[Development-IP-Address]:8080 --nocertcheck -c "-t activate --profile [profile-name]"
Windows is not supported due to current limitations. See Devices in Containers on Windows for more information.sudo docker run --device=/dev/mei0 rpc:latest --url wss://[Development-IP-Address]:8080 --nocertcheck -c "activate --profile [profile-name]"
rpc.exe -u wss://[Development-IP-Address]:8080 --nocertcheck -c "-t activate --profile [profile-name]"
Note
Because we are using a self-signed certificate for easier development testing, we need to supply the --nocertcheck flag. In production, you would opt for a CA signed certificate. Find out more information about the flag and other arguments.
Success
Example Output after Activating and Configuring a device into ACM:
Troubleshooting
Run into an issue? Try these troubleshooting steps.