How to build and run Islet
Islet provides Rust-based RMM and scripts to compose Confidential Computing Platform.
You can explore CCA platform with our scripts and
powerful third-party projects.
Setting build environment
The first step is to prepare to build our project.
./scripts/init.sh
Running a linux realm
// Start FVP on host
$ ./scripts/fvp-cca --normal-world=linux --realm=linux --rmm=islet
// Run Linux in a realm
$ ./launch-realm.sh
Alternatively it is possible to run Islet stack on Qemu RME by using a following command.
// Start Qemu RME on host
$ ./scripts/qemu-cca --normal-world=linux --realm=linux --rmm=islet
// Run Linux in a realm
$ ./launch-realm.sh
Running SDK sample apps after running a linux realm
// Move to shared dir on realm
$ cd /shared
// Insert RSI kernel module
$ insmod rsi.ko
// Run the sample app (rust)
$ ./sdk-example
// Run the sample app (c)
$ LD_LIBRARY_PATH=./ ./sdk-example-c
Running a linux realm with a networking support and prebuilt examples
See examples. To get details about its network configuration, see network.md
Testing the realm features
// Start FVP on fvp
$ ./scripts/fvp-cca --normal-world=linux --realm=linux --rmm=islet
// Test the realm features on fvp
$ ./test-realm.sh [attest]
Testing RMMs with tf-a-tests
# Islet RMM
$ ./scripts/fvp-cca --normal-world=tf-a-tests --rmm=islet
# TF RMM
$ ./scripts/fvp-cca --normal-world=tf-a-tests --rmm=tf-rmm
Note
tf-a-tests are not supported on Qemu RME stack.
Testing RMMs with ACS
# Islet RMM
$ ./scripts/fvp-cca --normal-world=acs --rmm=islet
# TF RMM
$ ./scripts/fvp-cca --normal-world=acs --rmm=tf-rmm
Note
ACS is not supported on Qemu RME stack.