mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-14 03:30:02 +00:00
2.1 KiB
2.1 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 dpkg --add-architecture i386 sudo apt-get update sudo apt-get install scons libsdl2-dev:i386 libsdl2-image-dev:i386 gcc-multilib
- Fedora:
sudo yum install scons SDL2-devel.i686 SDL2_image-devel.i686
- OpenSUSE:
sudo zypper install scons libSDL2-devel-32bit libSDL2_image-devel-32bit
- Arch:
sudo pacman -S gcc-multilib scons lib32-sdl2 lib32-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
- Download gcc-arm-none-eabi
- Follow the install instructions
- To install OpenOCD, run
brew install open-ocd
- 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.