You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@teaclave.apache.org by yu...@apache.org on 2024/10/25 03:42:20 UTC
(incubator-teaclave-trustzone-sdk) 03/07: Polish README.md
This is an automated email from the ASF dual-hosted git repository.
yuanz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-teaclave-trustzone-sdk.git
commit a7e20e914a768a99fbdf1afb287fa75a6e950bcc
Author: Yuan Zhuang <yu...@apache.org>
AuthorDate: Tue Oct 15 16:53:48 2024 +0800
Polish README.md
---
README.md | 138 +++++++++++++++++++++++++++++++-------------------------------
1 file changed, 68 insertions(+), 70 deletions(-)
diff --git a/README.md b/README.md
index 1e2de80..d821e5f 100644
--- a/README.md
+++ b/README.md
@@ -14,25 +14,32 @@ TrustZone applications with Rust's standard library (std) and many third-party
libraries (i.e., crates). Teaclave TrustZone SDK is a sub-project of [Apache
Teaclave (incubating)](https://teaclave.apache.org/).
-Teaclave TrustZone SDK provides two development modes for Rust TAs: `no-std`
-(check out the `no-std` branch) and `std` (check out the `master` branch).
+Teaclave TrustZone SDK provides two development modes for Rust TAs: `no-std` and `std`.
We recommend using `no-std` by default. For a detailed comparison, please refer
to [Comparison](#comparison).
+**UPDATES:** We have developed a new build environment on the `main` branch,
+which will now be the only branch for development and maintenance and includes
+breaking changes to the legacy `master` branch.
+If you're using the `master` branch and wish to migrate to the new development
+branch (`main`), please refer to the
+[migration guide](docs/migrating-to-new-building-env.md).
+
## Table of Contents
- [TA Development Modes](#ta-development-modes)
- [Comparison](#comparison)
- [Supported Examples](#supported-examples)
- [Quick Start with the OP-TEE Repo for QEMUv8](#quick-start-with-the-op-tee-repo-for-qemuv8)
-- [Getting started](#getting-started)
- - [Environment](#environment)
+- [Getting Started](#getting-started)
+ - [Platforms](#platforms)
- [Develop with QEMUv8](#develop-with-qemuv8)
- - [Develop on other platforms](#develop-on-other-platforms)
- - [Build & Install](#build--install)
+ - [Develop on Other Platforms](#develop-on-other-platforms)
+ - [Setup Building Environment](#setup-building-environment)
+ - [Build Examples](#build-examples)
- [Run Rust Applications](#run-rust-applications)
- [Run Rust Applications in QEMUv8](#run-rust-applications-in-qemuv8)
- - [Run Rust Applications on other platforms](#run-rust-applications-on-other-platforms)
+ - [Run Rust Applications on Other Platforms](#run-rust-applications-on-other-platforms)
- [Test](#test)
- [Documentation](#documentation)
- [Publication](#publication)
@@ -75,7 +82,7 @@ to [Comparison](#comparison).
`test_message_passing_interface`, `test_tls_client`, `test_tls_server`.
-## Quick start with the OP-TEE Repo for QEMUv8
+## Quick Start with the OP-TEE Repo for QEMUv8
Teaclave TrustZone SDK has been integrated into the OP-TEE Repo since OP-TEE
Release 3.15.0 (18/Oct/21). The aarch64 Rust examples are built and installed
@@ -86,9 +93,9 @@ to set up the OP-TEE repo and try the Rust examples!
UPDATES: The `no-std` TA has replaced the original `std` TAs since OP-TEE
Release 4.1.0 (19/Jan/24).
-## Getting started
+## Getting Started
-### Environment
+### Platforms
To get started with Teaclave TrustZone SDK, you could choose either [QEMU for
Armv8-A](#develop-with-qemuv8) (QEMUv8) or [other
@@ -113,7 +120,7 @@ cd [YOUR_OPTEE_DIR]/optee_rust/
git pull github master
```
-#### Develop on other platforms
+#### Develop on Other Platforms
If you are building trusted applications for other platforms ([platforms OP-TEE
supported](https://optee.readthedocs.io/en/latest/general/platforms.html)). QEMU
@@ -125,83 +132,74 @@ initialized in the setup process.
1. The complete list of prerequisites can be found here: [OP-TEE
Prerequisites](https://optee.readthedocs.io/en/latest/building/prerequisites.html).
-``` sh
-# install dependencies
-sudo apt-get install android-tools-adb android-tools-fastboot autoconf \
- automake bc bison build-essential ccache cscope curl device-tree-compiler \
- expect flex ftp-upload gdisk iasl libattr1-dev libc6:i386 libcap-dev \
- libfdt-dev libftdi-dev libglib2.0-dev libhidapi-dev libncurses5-dev \
- libpixman-1-dev libssl-dev libstdc++6:i386 libtool libz1:i386 make \
- mtools netcat python-crypto python3-crypto python-pyelftools \
- python3-pycryptodome python3-pyelftools python-serial python3-serial \
- rsync unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev
-```
-
-Alternatively, you can use a docker container built with our
-[Dockerfile](Dockerfile).
+ ```sh
+ # install dependencies
+ sudo apt-get install android-tools-adb android-tools-fastboot autoconf \
+ automake bc bison build-essential ccache cscope curl device-tree-compiler \
+ expect flex ftp-upload gdisk iasl libattr1-dev libc6:i386 libcap-dev \
+ libfdt-dev libftdi-dev libglib2.0-dev libhidapi-dev libncurses5-dev \
+ libpixman-1-dev libssl-dev libstdc++6:i386 libtool libz1:i386 make \
+ mtools netcat python-crypto python3-crypto python-pyelftools \
+ python3-pycryptodome python3-pyelftools python-serial python3-serial \
+ rsync unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev
+ ```
+
+ Alternatively, you can use a docker container built with our
+ [Dockerfile](Dockerfile).
2. After installing dependencies or building the Docker image, fetch the source
code from the official GitHub repository:
+
+ ```sh
+ git clone https://github.com/apache/incubator-teaclave-trustzone-sdk.git
+ cd incubator-teaclave-trustzone-sdk
+ ```
-``` sh
-# clone the project
-git clone https://github.com/apache/incubator-teaclave-trustzone-sdk.git
-cd incubator-teaclave-trustzone-sdk
-```
-
-### Build & Install
-
-To build the project, the Rust environment and several related submodules are
-required.
+### Setup Building Environment
-1. Run the script as follows to install the Rust environment and toolchains:
+1. Install the Rust environment and toolchains:
-```sh
-./setup.sh
-```
+ ```sh
+ ./setup.sh
+ ```
2. Build OP-TEE libraries
-- for QEMUv8:
+ By default, the `OPTEE_DIR` is
+ `incubator-teaclave-trustzone-sdk/optee/`. OP-TEE submodules
+ (`optee_os` and `optee_client` for QEMUv8) will be initialized
+ automatically by executing:
-By default, the `OPTEE_DIR` is `incubator-teaclave-trustzone-sdk/optee/`.
- OP-TEE submodules (`optee_os` and `optee_client`) will be initialized
-automatically by executing:
+ ```sh
+ ./build_optee_libraries.sh optee/
+ ```
-```
-./build_optee_libraries.sh optee/
-```
-
-Then the environment should be properly set up before building applications:
-
-``` sh
-source environment
-```
+3. Before building applications, set up the configuration:
-Note: by default, the target platform is `aarch64`. If you want to build for the
-`arm` target, you can setup `ARCH` before the `source environment` command:
+ a. By default, the target platform is `aarch64` for both CA and TA. If
+ you want to build for the `arm` target, you can set up `ARCH`:
-```sh
-export ARCH=arm
-source environment
-```
+ ```sh
+ export ARCH_HOST=arm
+ export ARCH_TA=arm
+ ```
-- for other platforms:
+ b. By default, the build is for `no-std` TA. If you want to enable
+ `std` TA, set the `STD` variable:
-You should set these environment variables for building, e.g:
+ ```sh
+ export STD=y
+ ```
-```
-export CROSS_COMPILE_HOST="aarch64-linux-gnu-"
-export CROSS_COMPILE_TA="arm-linux-gnueabihf-"
+4. Run this script to set up all toolchain and library paths:
-export TARGET_HOST="aarch64-unknown-linux-gnu"
-export TARGET_TA="arm-unknown-linux-gnueabihf"
+ ```sh
+ source environment
+ ```
-export TA_DEV_KIT_DIR=~/optee_os/out/arm-plat-vexpress/export-ta_arm32/
-export OPTEE_CLIENT_EXPORT=~/optee_client/out/export/
-```
+### Build Examples
-3. Run this command to build all Rust examples:
+Run this command to build all Rust examples:
``` sh
make examples
@@ -263,7 +261,7 @@ mkdir shared && mount -t 9p -o trans=virtio host shared
documentation](https://optee.readthedocs.io/en/latest/building/optee_with_rust.html)
describes.
-#### Run Rust Applications on other platforms
+#### Run Rust Applications on Other Platforms
Copy the applications to your platform and run.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@teaclave.apache.org
For additional commands, e-mail: commits-help@teaclave.apache.org