Beispiel für das Erstellen und Flashen benutzerdefinierter Firmware

Home Foren Trezor Wallet Beispiel für das Erstellen und Flashen benutzerdefinierter Firmware

Ansicht von 0 Antwort-Themen
  • Autor
    Beiträge
    • #3057
      admin
      Mitglied
      Up
      0
      Down
      ::

      Ich habe mich (aus Spaß) entschlossen, einige Trezor-Builds auf einem neuen Unbuntu-Laptop auszuprobieren. Für diejenigen, die das noch nicht gemacht haben, hier eine sehr ausführliche Anleitung. Für alle, die wissen wollen, wie eine unsignierte Firmware-Warnung aussieht, habe ich unten Bilder angehängt.

      ## TLDR

      Für die Ungeduldigen, hier ist die kürzeste Erklärung, die ich finden konnte.

      tg=“core/v2.4.3″
      git clone -b $tg https://github.com/trezor/trezor-firmware.git
      PRODUCTION=0 ./trezor-firmware/build-docker.sh –skip-legacy –skip-bitcoinonly $tg
      trezorctl firmware update -f ./trezor-firmware/build/core/firmware/firmware.bin

      ## Prebuild

      Ein paar Dinge müssen eingerichtet werden, bevor man den Build ausprobiert. Wir verwenden den Tag „core/v2.4.3“ als die Version, die wir bauen wollen. Wenn du dein eigenes Werk erstellst, verwende git, um einen Zweig oder ein Tag lokal zu erstellen und nenne diesen Zweig oder dieses Tag als Argument für `checkout` und später in `docker-build.sh`

      1. Erstellen Sie einen sauberen Ordner für den Build (`mkdir -p ~/src/trezor-firmware; cd ~/src/trezor-firmware`)
      2. Füllen Sie den Ordner mit den Quellen (`git clone https://github.com/trezor/trezor-firmware.git $PWD`)
      3. Wechseln Sie zum neuesten markierten Build (`git checkout „core/v2.4.3″`)
      4. Installieren Sie Trezor `udev` Regeln (`sudo apt install python3-venv trezor`)
      5. Machen Sie Python VEV (`python3 -m venv python.venv`)
      6. Python VENV starten (`source python.venv/bin/activate; python3 -m pip install –upgrade pip setuptools wheel`)
      7. Aktualisieren Sie die Trezor-Bibliotheken (`python3 -m pip install $PWD/python`)
      8. [Install docker](https://docs.docker.com/engine/install/ubuntu/)
      9. Fügen Sie sich selbst zur Docker-Gruppe hinzu (`usermod -aG docker $USER`)
      10. Sie benötigen \~12 GiB für den Docker-Build, [change docker storage location](https://linuxconfig.org/how-to-move-docker-s-default-var-lib-docker-to-another-directory-on-ubuntu-debian-linux), falls erforderlich.

      Wenn Sie sich selbst zur Docker-Gruppe hinzufügen mussten, müssen Sie sich ab- und wieder anmelden.

      ## Starten Sie den Build

      Dies wird \~12 GiB und 2 Stunden für den ersten Lauf benötigen (80 Minuten in Docker; 40 Minuten im Build). Rebuilds sind schneller und verbrauchen weniger Speicherplatz.

      1. Verzeichnis vorbereiten (`cd ~/src/trezor-firmware; git checkout „core/v2.4.3″`)
      2. Build ausführen (`PRODUCTION=0 ./build-docker.sh „core/v2.4.3″`)
      3. Flash-Build von Python VENV (`trezorctl firmware update -f build/core/firmware/firmware.bin`)

      Sie können die Sektor-Hashes mit dem Python-Skript `headertool` vergleichen. Sie könnten zum Beispiel Ihre Build mit der Produktionsfirmware vergleichen:

      ./core/tools/headertool.py ./build/core/firmware/firmware.bin
      ./core/tools/headertool.py ./download/trezor-2.4.3.bin

      Damit die Hashes übereinstimmen, müssen Sie mit `PRODUCTION=1` laufen (siehe Build-Schritt 2)

      ## Fehlersuche

      So sieht es aus, wenn man versucht, ohne `PRODUCTION=0` zu flashen

      [Flashing unsigned firmware with production bit on](https://preview.redd.it/alf0ew2xeco81.jpg?width=1884&format=pjpg&auto=webp&s=e52b90533ff6e6f24bd3bed98451ff6140e239ee)

      Dies ist die Warnung, die Sie erhalten, wenn Sie eine unsignierte Firmware flashen

      [Prompt when flashing unsigned firmware](https://preview.redd.it/jevcvtb2fco81.jpg?width=2104&format=pjpg&auto=webp&s=6539cfab751930a5fb1e2ce6cd66d5c43897a2e9)

      Dies ist die Warnung, die Sie erhalten, wenn Sie unsignierte Firmware ausführen

      [First prompt when powering up device running unsigned firmware](https://preview.redd.it/4cfdvre5fco81.jpg?width=1635&format=pjpg&auto=webp&s=f53c7c6eaa2c2525236de6736d988afdcd8a0047)

      UPDATE …

      Ich habe herausgefunden, dass die Einstellung `PYOPT=0` einige der cooleren Debug-Funktionen aktiviert. Sie erkennen den Debug-Modus an dem roten Punkt in der oberen Ecke. Man müsste ein paar kleine Änderungen an der `build-docker.sh` vornehmen oder man könnte [run the NIX/Poetry build outside of docker](https://www.reddit.com/r/TREZOR/comments/thochb/comment/i1d5bq3/?utm_source=reddit&utm_medium=web2x&context=3)

      [Trezor running with DEBUG firmware \(note red dot\)](https://preview.redd.it/utqsn97vrgo81.jpg?width=1773&format=pjpg&auto=webp&s=e1b4bbc49aa705ba97ec6bb023094c0de72d9def)

Ansicht von 0 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.
Zur Werkzeugleiste springen