1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-26 08:08:51 +00:00

simplify Dockerfile, add travis CI

This commit is contained in:
Pavol Rusnak 2015-08-05 16:38:53 +02:00
parent db93a50f76
commit ec98e58bce
4 changed files with 48 additions and 34 deletions

17
.travis.yml Normal file
View File

@ -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 ..

View File

@ -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

28
README.md Normal file
View File

@ -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.

View File

@ -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.