diff --git a/README.md b/README.md index e574eeb..6485ef0 100644 --- a/README.md +++ b/README.md @@ -36,3 +36,22 @@ Step 3 should produce the same sha256 fingerprint like your local build (for the 1. Install python-trezor: `pip install trezor` ([more info](https://github.com/trezor/python-trezor)) 2. `trezorctl firmware_update -f build/trezor-TAG.bin` + +## Building for development + +If you want to build device firmware, make sure you have the +[GNU ARM Embedded toolchain](https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads) installed. + +* If you want to build the emulator instead of the firmware, run `export EMULATOR=1 TREZOR_TRANSPORT_V1=1` +* If you want to build with the debug link, run `export DEBUG_LINK=1`. Use this if you want to run the device tests. +* When you change these variables, use `script/setup` to clean the repository + +1. To initialize the repository, run `script/setup` +2. To build the firmware or emulator, run `script/cibuild` + +If you are building device firmware, the firmware will be in `firmware/trezor.bin`. + +You can launch the emulator using `firmware/trezor.elf`. To use `trezorctl` with the emulator, use +`trezorctl -t udp` (for example, `trezorctl -t udp get_features`). + +If `trezorctl -t udp` appears to hang, make sure you have run `export TREZOR_TRANSPORT_V1=1`.