/rpc-go

The Remote Provisioning Client (RPC) communicates with the Manageability Engine Interface (MEI) and Remote Provisioning Service (RPS) interfaces.

Primary LanguageGoApache License 2.0Apache-2.0

Remote Provisioning Client (RPC)

CodeQL Build Codecov OSSF-Scorecard Score Discord Docker Pulls

Disclaimer: Production viable releases are tagged and listed under 'Releases'. All other check-ins should be considered 'in-development' and should not be used in production

RPC is used for activation, deactivation, maintenance, and status of an AMT device The Remote Provisioning Client (RPC) is an application that assists with activation, configuration, and maintenance of for Intel® AMT devices. RPC provides source code that must be compiled into a binary to run or library for integration with other client applications.



For detailed documentation about Getting Started or other features of the Open AMT Cloud Toolkit, see the docs.


Prerequisites

Build

Windows

As executable:

go build -o rpc.exe ./cmd/main.go

As Library:

go build -buildmode=c-shared -o rpc.dll ./cmd

Linux

As executable:

go build -o rpc ./cmd/main.go

As Library:

go build -buildmode=c-shared -o librpc.so ./cmd   

Docker image

docker build -t rpc-go:latest .

Run

Install the executable on a target device and then run from a terminal/shell command line with adminstrator privileges.

For usage, call the executable with no additional parameters.

Windows

.\rpc

Linux

sudo ./rpc

Docker

$ docker run --rm -it --device /dev/mei0 rpc-go:latest

Dev tips for passing CI Checks

  • Ensure code is formatted correctly with gofmt -s -w ./
  • Ensure all unit tests pass with go test ./...
  • Ensure code has been linted with docker run --rm -v ${pwd}:/app -w /app golangci/golangci-lint:v1.52.2 golangci-lint run -v

Additional Resources