diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000..6a12e14ef8 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,17 @@ +sudo: false +language: c + +addons: + apt: + packages: + - build-essential + - git + - gcc-arm-none-eabi + +install: + - git clone https://github.com/libopencm3/libopencm3 + +script: + - cd libopencm3; make; cd .. + - TOOLCHAIN_DIR=libopencm3 make + - cd firmware; TOOLCHAIN_DIR=libopencm3 make; cd .. diff --git a/Dockerfile b/Dockerfile index 4cb96cdff5..adb7f76fbf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,18 +2,13 @@ FROM ubuntu:14.04 -ENV GCC_ARM_VERSION 4.9.3.2015q2-1trusty1 +# update repositories -# add and update package repositories - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FE324A81C208C89497EFC6246D1D8367A3421AFB -RUN gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --fingerprint FE324A81C208C89497EFC6246D1D8367A3421AFB -RUN echo "deb http://ppa.launchpad.net/terry.guo/gcc-arm-embedded/ubuntu trusty main" >> /etc/apt/sources.list && apt-get update +RUN apt-get update # install build tools and dependencies -RUN apt-get install -y build-essential git python -RUN apt-get install -y gcc-arm-none-eabi=$GCC_ARM_VERSION +RUN apt-get install -y build-essential git python gcc-arm-none-eabi # clone the source code diff --git a/README.md b/README.md new file mode 100644 index 0000000000..5c5786626c --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +TREZOR Firmware +=============== + +[![Build Status](https://travis-ci.org/trezor/trezor-mcu.svg?branch=master)](https://travis-ci.org/trezor/trezor-mcu) + +http://bitcointrezor.com/ + +How to build TREZOR firmware? +----------------------------- + +1. Install Docker (from docker.com or from your distribution repositories) +2. `git clone https://github.com/trezor/trezor-mcu.git` +3. `cd trezor-mcu` +4. `./firmware-docker-build.sh TAG` (where TAG is v1.3.2 for example, if left blank the script builds latest commit) + +This creates file `output/trezor-TAG.bin` and prints its fingerprint at the last line of the build log. + +How to get fingerprint of firmware signed and distributed by SatoshiLabs? +------------------------------------------------------------------------- + +1. Pick version of firmware binary listed on https://mytrezor.com/data/firmware/releases.json +2. Download it: `wget -O trezor.signed.bin.hex https://mytrezor.com/data/firmware/trezor-1.1.0.bin.hex` +3. `xxd -r -p trezor.signed.bin.hex trezor.signed.bin` +4. `./firmware-fingerprint.sh trezor.signed.bin` + +Step 4 should produce the same sha256 fingerprint like your local build (for the same version tag). + +The reasoning for `firmware-fingerprint.sh` script is that signed firmware has special header holding signatures themselves, which must be avoided while calculating the fingerprint. diff --git a/README.rst b/README.rst deleted file mode 100644 index 9ba8eba5f4..0000000000 --- a/README.rst +++ /dev/null @@ -1,26 +0,0 @@ -TREZOR Firmware -=============== - -http://bitcointrezor.com/ - -How to build Trezor firmware? ------------------------------ - -1. Install Docker (from docker.com or from your distribution repositories) -2. ``git clone https://github.com/trezor/trezor-mcu.git`` -3. ``cd trezor-mcu`` -4. ``./firmware-docker-build.sh TAG`` (where TAG is v1.3.2 for example, if left blank the script builds latest commit) - -This creates file ``output/trezor-TAG.bin`` and prints its fingerprint at the last line of the build log. - -How to get fingerprint of firmware signed and distributed by SatoshiLabs? -------------------------------------------------------------------------- - -1. Pick version of firmware binary listed on https://mytrezor.com/data/firmware/releases.json -2. Download it: ``wget -O trezor.signed.bin.hex https://mytrezor.com/data/firmware/trezor-1.1.0.bin.hex`` -3. ``xxd -r -p trezor.signed.bin.hex trezor.signed.bin`` -4. ``./firmware-fingerprint.sh trezor.signed.bin`` - -Step 4 should produce the same sha256 fingerprint like your local build (for the same version tag). - -The reasoning for ``firmware-fingerprint.sh`` script is that signed firmware has special header holding signatures themselves, which must be avoided while calculating the fingerprint.