diff --git a/docs/build.md b/docs/build.md index 3bb2655775..b569dd378c 100644 --- a/docs/build.md +++ b/docs/build.md @@ -9,92 +9,78 @@ git clone --recursive https://github.com/trezor/trezor-core.git cd trezor-core ``` -If are building the already cloned the project, don't forget to use the following to refresh the submodules: +If you are building from an existing checkout, don't forget to use the following to refresh the submodules: ```sh make vendor ``` -### Linux +Install the required packages, depending on your operating system. +* __Debian/Ubuntu__: + ```sh + sudo dpkg --add-architecture i386 + sudo apt-get update + sudo apt-get install scons libsdl2-dev:i386 libsdl2-image-dev:i386 gcc-multilib + ``` +* __Fedora__: + ```sh + sudo yum install scons SDL2-devel.i686 SDL2_image-devel.i686 + ``` +* __OpenSUSE__: + ```sh + sudo zypper install scons libSDL2-devel-32bit libSDL2_image-devel-32bit + ``` +* __Arch__: + ```sh + sudo pacman -S gcc-multilib scons lib32-sdl2 lib32-sdl2_image + ``` +* __Mac OS X__: + ```sh + brew install scons sdl2 sdl2_image + ``` +* __Windows__: not supported yet, sorry. -#### Debian/Ubuntu +Run the build with: ```sh -sudo pip3 install --no-cache-dir pyblake2 - -sudo dpkg --add-architecture i386 -sudo apt-get update -sudo apt-get install scons libsdl2-dev:i386 libsdl2-image-dev:i386 gcc-multilib - make build_unix ``` -#### Fedora - +Now you can start the emulator: ```sh -sudo pip3 install --no-cache-dir pyblake2 - -sudo yum install scons SDL2-devel.i686 SDL2_image-devel.i686 - -make build_unix +./emu.sh ``` -#### openSUSE - -```sh -sudo pip3 install --no-cache-dir pyblake2 - -sudo zypper install scons libSDL2-devel-32bit libSDL2_image-devel-32bit - -make build_unix -``` - -#### Arch - -```sh -sudo pip3 install --no-cache-dir pyblake2 - -sudo pacman -S gcc-multilib scons lib32-sdl2 lib32-sdl2_image - -make build_unix -``` - -### OS X - -```sh -pip3 install --no-cache-dir pyblake2 - -brew install scons sdl2 sdl2_image - -make build_unix -``` - -### Windows - -Not supported yet ... - ## Build instructions for Embedded (ARM port) -### Linux +### Requirements -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. +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 ```sh -sudo pip3 install --no-cache-dir click pyblake2 scons -sudo pip3 install --no-deps git+https://github.com/trezor/python-trezor.git@master - sudo apt-get install gcc-arm-none-eabi libnewlib-arm-none-eabi - -make vendor build_boardloader build_bootloader build_firmware ``` -### OS X +#### OS X 1. Download [gcc-arm-none-eabi](https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q3-update/) 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` + +### Building + +```sh +sudo pip3 install pipenv +pipenv install +pipenv run make vendor build_boardloader build_bootloader build_firmware +``` + +### 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.