1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-23 14:58:09 +00:00
trezor-firmware/docs/build.md

2.0 KiB

Build instructions

Build instructions for Emulator (Unix port)

Run the following to checkout the project:

git clone --recursive https://github.com/trezor/trezor-core.git
cd trezor-core

If you are building from an existing checkout, don't forget to use the following to refresh the submodules:

make vendor

Install the required packages, depending on your operating system.

  • Debian/Ubuntu:

    sudo apt-get install scons libsdl2-dev libsdl2-image-dev
    
  • Fedora:

    sudo yum install scons SDL2-devel SDL2_image-devel
    
  • OpenSUSE:

    sudo zypper install scons libSDL2-devel libSDL2_image-devel
    
  • Arch:

    sudo pacman -S scons sdl2 sdl2_image
    
  • Mac OS X:

    brew install scons sdl2 sdl2_image
    
  • Windows: not supported yet, sorry.

Run the build with:

make build_unix

Now you can start the emulator:

./emu.sh

Build instructions for Embedded (ARM port)

Requirements

You will need the GCC ARM toolchain for building and OpenOCD for flashing to a device. You will also need Python dependencies for signing.

Debian/Ubuntu

sudo apt-get install scons gcc-arm-none-eabi libnewlib-arm-none-eabi

OS X

  1. Download gcc-arm-none-eabi
  2. Follow the install instructions
  3. To install OpenOCD, run brew install open-ocd
  4. Run make vendor build_boardloader build_bootloader build_firmware

Building

sudo pip3 install pipenv
pipenv install
pipenv run make vendor build_boardloader build_bootloader build_firmware

Uploading

Use make upload to upload the firmware to a production device (with a bootloader).

Flashing

For flashing firmware to blank device (without bootloader) use make flash, or make flash STLINK_VER=v2-1 if using a ST-LINK/V2.1 interface. You need to have OpenOCD installed.