Aller au contenu
DIY Wallet
FR

Compiler le firmware

Télécharger le code source du firmware sur le Pi et le compiler sur place.

  • 120 min
  • Sur le Pi
Pièces et options

Le firmware est compilé sur le Pi lui-même. Ainsi, le code qui tourne sur votre portefeuille ne passe jamais par une autre machine sous forme de programme fini.

Ce que change la version DIY

Le code source vient du firmware Classic 1S de OneKey, avec un petit ensemble de modifications pour le faire tourner sur un Pi. Ces modifications comptent, parce que la version de ce firmware qui tourne sur un ordinateur normal a été faite pour les développeurs qui le testent, pas pour garder de l’argent :

  • Le hasard vient de la puce. La version non modifiée crée la même phrase de récupération sur chaque ordinateur, parce que ses nombres aléatoires viennent d’une formule fixe. La version DIY les lit directement dans le générateur matériel de nombres aléatoires de la puce du Pi, qui mesure du bruit électronique. Elle contrôle chaque octet avec les tests de santé au démarrage et en continu de la norme NIST SP 800-90B, et condense avec SHA-256 quatre fois plus d’octets qu’elle n’en utilise. Si le générateur est absent ou échoue à un test, le portefeuille s’arrête au lieu de créer une phrase.
  • Aucun accès extérieur. La version non modifiée accepte les connexions de tout le réseau. La version DIY, seulement celles des programmes du Pi lui-même.
  • Interface de débogage désactivée. L’interface de débogage permet d’extraire la phrase de récupération. La commande de compilation ci-dessous la désactive.
  • Écran et boutons. Elle affiche sur l’écran de 1,3 pouce et lit le joystick, au lieu d’ouvrir une fenêtre sur un bureau.
  • Stockage lié à cette carte. Le portefeuille enregistré est chiffré avec une clé qui dépend aussi du numéro de série de ce Pi.

Toutes les modifications du code de OneKey tiennent sur une seule page, que vous pouvez lire en entier : les modifications DIY sur GitHub.

Installer les outils de compilation

Sur le Pi
sudo apt update
sudo apt install -y git build-essential python3-venv protobuf-compiler libprotobuf-dev

Télécharger le code source

Cela télécharge environ 600 Mo.

Sur le Pi
git clone --depth 1 --branch diy https://github.com/rayston92/firmware-classic1s.git ~/wallet
cd ~/wallet
git submodule update --init --recursive --depth 1

Vérifiez que vous avez exactement le code pour lequel ce guide a été écrit :

Sur le Pi
git log -1 --format=%H

La commande doit afficher 287341b8338d00c16da8700258944ac97e44114f. Si elle affiche autre chose, la branche a changé depuis la vérification de ce guide. Lisez ce qui a changé avant de continuer.

Préparer Python

La compilation utilise quelques outils Python pour générer du code. Gardez-les dans leur propre dossier :

Sur le Pi
python3 -m venv ~/wallet-venv
. ~/wallet-venv/bin/activate
pip install "nanopb==0.4.*" protobuf mako munch click requests typing_extensions

Compiler

Sur le Pi
cd ~/wallet/legacy
EMULATOR=1 DIY_HAT=1 DEBUG_LINK=0 BITCOIN_ONLY=1 ./script/cibuild

BITCOIN_ONLY=1 laisse de côté toutes les cryptomonnaies sauf Bitcoin, comme vous l’avez choisi dans Votre configuration.

Cela prend du temps sur un Pi Zero 2 W : probablement une à deux heures (ce n’est pas encore chronométré sur un vrai Pi). Des lignes commençant par CC défilent pendant le travail. Les avertissements sont normaux ; c’est terminé quand l’invite revient. D’ici là, empêchez votre ordinateur de se mettre en veille : si la fenêtre SSH se ferme, la compilation s’arrête. Reconnectez-vous et relancez la même commande, elle reprend là où elle s’était arrêtée.

Si vous vous reconnectez plus tard, lancez . ~/wallet-venv/bin/activate avant de compiler à nouveau.

Point de contrôle

Sur le Pi
ls -lh firmware/onekey_emu.elf

Vous devez voir un seul fichier, d’environ 5 Mo7 Mo. C’est le firmware de votre portefeuille.

C’est fait ? Passer à l’étape 5L’installer sur le Pi

Dernière vérification avec le code source :