1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-28 09:08:07 +00:00
trezor-firmware/docs/build.md

101 lines
2.0 KiB
Markdown
Raw Normal View History

2017-11-05 03:00:05 +00:00
# Build instructions
## Build instructions for Emulator (Unix port)
Run the following to checkout the project:
```sh
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:
```sh
make vendor
```
Install the required packages, depending on your operating system.
2018-06-05 21:42:26 +00:00
* __Debian/Ubuntu__:
2018-06-05 21:42:26 +00:00
```sh
2018-06-05 21:30:43 +00:00
sudo apt-get install scons libsdl2-dev libsdl2-image-dev
```
2018-06-05 21:42:26 +00:00
* __Fedora__:
2018-06-05 21:42:26 +00:00
```sh
2018-06-05 21:30:43 +00:00
sudo yum install scons SDL2-devel SDL2_image-devel
```
2018-06-05 21:42:26 +00:00
* __OpenSUSE__:
2018-06-05 21:42:26 +00:00
```sh
2018-06-05 21:30:43 +00:00
sudo zypper install scons libSDL2-devel libSDL2_image-devel
```
2018-06-05 21:42:26 +00:00
* __Arch__:
2018-06-05 21:42:26 +00:00
```sh
2018-06-05 21:30:43 +00:00
sudo pacman -S scons sdl2 sdl2_image
```
2018-06-05 21:42:26 +00:00
* __Mac OS X__:
2018-06-05 21:42:26 +00:00
```sh
brew install scons sdl2 sdl2_image
```
2018-06-05 21:42:26 +00:00
* __Windows__: not supported yet, sorry.
Run the build with:
2018-06-05 21:42:26 +00:00
2017-11-05 03:00:05 +00:00
```sh
make build_unix
```
Now you can start the emulator:
2018-06-05 21:42:26 +00:00
2017-11-05 03:00:05 +00:00
```sh
./emu.sh
2017-11-05 03:00:05 +00:00
```
## Build instructions for Embedded (ARM port)
2017-11-05 03:00:05 +00:00
### Requirements
2017-11-05 03:00:05 +00:00
You will need the GCC ARM toolchain for building and OpenOCD for flashing to a device.
You will also need Python dependencies for signing.
2017-11-05 03:00:05 +00:00
#### Debian/Ubuntu
2017-11-05 03:00:05 +00:00
```sh
sudo apt-get install scons gcc-arm-none-eabi libnewlib-arm-none-eabi
2017-11-05 03:00:05 +00:00
```
#### OS X
2017-11-05 03:00:05 +00:00
1. Download [gcc-arm-none-eabi](https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads)
2. Follow the [install instructions](https://launchpadlibrarian.net/287100883/readme.txt)
3. To install OpenOCD, run `brew install open-ocd`
4. Run `make vendor build_boardloader build_bootloader build_firmware`
2017-11-05 03:00:05 +00:00
### Building
2017-11-05 03:00:05 +00:00
```sh
sudo pip3 install pipenv
pipenv install
pipenv run make vendor build_boardloader build_bootloader build_firmware
2017-11-05 03:00:05 +00:00
```
2018-05-30 09:41:41 +00:00
### Uploading
Use `make upload` to upload the firmware to a production device (with a bootloader).
### Flashing
2017-11-05 03:00:05 +00:00
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.