intern:boot3

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
intern:boot3 [2013/02/22 20:26] – [Bootloader 3] sveschintern:boot3 [2025/06/11 20:35] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Bootloader 4 ======
 +
 +Die Unterscheidung zwischen Lizenzkunden und Originalkunden wird aufgegeben.
 +Alle Images werden mit dem pro-key verschlüsselt.
 +Die Images werden nun auch auf der MoBaCon-Webseite veröffentlicht (ist einfacher als sie per Mail rumzuschicken).
 +
 +Der Updatemechanismus mit auf MAC-Adresse verschlüsselten Updates wird jedoch beibehalten.
 +
 +
 +====== Bootloader 3 ======
 +
 +===== Funktionsumfang =====
 +
 +Flashen eines mit XTEA verschlüsselten Binaries welches im TFTP-Binärmodus übertragen wird.
 +Das Auslesen des geflashten Images ist im Nachhinein nicht mehr möglich.
 +Es ist nicht möglich, Images zu flashen, die nicht mit dem korrekten Schlüssel verschlüsselt wurden.
 +
 +Es existieren derzeit zwei verschiedene Schlüssel, einer für Lizenzkunden (keypro_license.bin) und einer für Originalkunden (keypro_license.bin). Für spezielle Anforderungen können auch andere Schlüssel erzeugt werden.
 +
 +
 +===== Lizenzkunden =====
 +Diese Kunden haben bereits einen oder mehrere Netzer mit installiertem Bootloader 2.
 +Dieser wurde bei Elektor oder MoBaCon im Shop gekauft.
 +Mit der Lizenz (im Shop gekauft) erwirbt der Kunde ein Lizenz-File für **einen** Netzer. 
 +Dieser wird mit der MAC-Adresse identifiziert.
 +Die MAC-Adresse muss vom Kunden bei der Bestellung mit angegeben werden!
 +
 +Mit dem Lizenzfile kann ein Netzer von Bootloader 2 auf Bootloader 3 migriert werden. Im Anschluss kann jedes beliebige Image, welches mit dem richtigen Schlüssel verschlüsselt wurde aufgeflasht werden.
 +
 +===== Originalkunden =====
 +Diese Kunden kaufen einen oder mehrere Netzer mit bereits installiertem Bootloader 3.
 +Dieser wurde beim Elektronikladen oder MoBaCon im Shop gekauft.
 +
 +<WRAP center round important 60%>
 +Die Images für Originalkunden und Lizenzkunden unterscheiden sich, da sie mit verschiedenen Schlüsseln verschlüsselt werden! Das zugrundeliegende Hexfile ist jedoch das Gleiche. Ein kleiner Unterschied besteht dennoch: Der Versionsstring enthält bei der Lizenzversion zur besseren Unterscheidung noch ein **lic**.
 +</WRAP>
 +
 +===== Releasefiles =====
 +
 +Das Release wird mittels des Shell-Scripts releasePro.sh im root des Netzer-Projektverzeichnisses erstellt. Das Script wird nur aufrufen, wenn auch ein Release ansteht. Sonst findet sich im Releases-Ordner der entsprechende Ordner für das neueste Release. 
 +
 +Folgende Files sind im Release enthalten:
 +  * **txt-Files** für die Dokumentation - sie sind mit den Files der Basis-Version identisch
 +  * **boot3udate_MACless.hex** - Ein Hex-Update von Bootloader 2 auf Bootloader 3 (unabhängig von der MAC-Adresse)
 +  * **NetzerIObase.bin** - Die verschlüsselte Basis-Version für Neukunden
 +  * **NetzerIOpro.bin** - Die verschlüsselte Pro-Version für Neukunden
 +  * **NetzerIOpro_license.bin** - die verschlüsselte Pro-Version für Lizenz-Kunden
 +  * **NetzerIObase.hex** - die unverschlüsselte Basis-Version für Neukunden
 +  * **NetzerIOpro.hex** - die unverschlüsselte Pro-Version für Neukunden
 +  * **NetzerIOpro_license.hex** - die unverschlüsselte Pro-Version für Lizenzkunden
 +
 +Was **nicht** enthalten ist:
 +  * **NetzerIObase_license.hex** - die unverschlüsselte Basis-Version für Lizenz-Kunden macht keinen Sinn, da die Basisversion frei downloadbar ist und mit Boot 2 nach wie vor installiert werden kann.
 +  * **NetzerIObase_license.bin** - die verschlüsselte Basis-Version für Lizenz-Kunden macht keinen Sinn, da die Basisversion frei downloadbar ist und mit Boot 2 nach wie vor installiert werden kann.
 +  * **Lizenz-Files** - Diese müssen aufgrund des MAC-Stempels für jeden Kunden individuell generiert werden.
 +
 +
 +
 +==== Update des Netzers für Lizenzkunden ====
 +
 +Lizenz-Kunden, die über einen Netzer mit Bootloader 2 verfügen und eine Netzer-Lizenz erworben haben, müssen zunächst auf Bootloader 3 updaten. Dazu bekommen sie ein Hex-File mit dem Update. Dieses Hex-File wird speziell für die MAC-Adresse des zu lizensierenden Netzers zugeschnitten. Nur der korrekte Netzer ist danach mit pro- und base-Images für Lizenzkunden bespielbar. 
 +
 +<WRAP center round important 60%>
 +Sollte fälschlicherweise eine Netzer mit der falschen MAC-Adresse beschrieben werden, hilft nur ein Löschen mit ICD!
 +</WRAP>
 + 
 +
 +Zunächst wird boot3 gebaut mit Referenz auf den Schlüssel keypro_license.key. 
 +Danach wird das update von boot2 auf boot3 ebenfalls mit Referenz auf den Schlüssel keypro_license.key gebaut. Es muss außerdem die MAC-Adresse für das Target-Device angegeben werden.
 +
 +All das erledigt das Shell-Script **"releaseProLicense.sh"** im root des Netzer-Projektverzeichnisses.
 +Die MAC-Adresse wird diesem Script als Kommandozeilenparameter übergeben in Form von XX-XX-XX-XX-XX-XX.
 +Ergebnis des Shell-Scripts ist ein Intel-Hexfile. Der Filename enthält die MAC-Adresse des Ziel-Netzers um Verwechslungen vorzubeugen.
 +
 +Das verschlüsselt Image (**NetzerIOpro_license.bin**) für die Pro-Version erhalten die Kunden per e-Mail.
 +
 +Kunden führen nun die folgenden Flash-Befehle aus:
 +  - Update auf Boot3: <code>tftp 192.168.97.12 PUT boot3update_XX-XX-XX-XX-XX-XX.hex</code>
 +  - Installieren der Pro Version: <code>tftp -i 192.168.97.60 PUT NetzerIOpro_license.bin</code>
 +
 +Schritt 2 wird auch dann ausgeführt, wenn Updates anliegen.
 +==== Update des Netzers für Originalkunden ====
 +
 +Durch Aufruf des Shell-Sciptes "releasePro.sh" im root des Netzer-Projektverzeichnisses werden die Images Version 1.4 gebaut.
 +
 +Es wird auch das Image für License-Kunden mitgebaut, das ist für einfacheres Deployment auf die Webseiten gedacht (nutzerabhängiger Download).
 +
 +Außerdem wird boot3 mit dem richtigen Keyfile (keypro.key) gebaut und ein MAC-unabhängiges bootupdate gebaut (boot3update_MACless.hex).
 +Alle(!) Netzer mit installierten boot2 können mittels diesem bootupdate auf Original boot3 gezogen werden. Anschliessend kann die base- oder pro-Version geflasht werden.
 +
 +Update auf Boot3 (boot3udate_MACless.hex ist ein MAC-unabhängiges Update-File): 
 +<code>tftp 192.168.97.12 PUT boot3update_MACless.hex</code>
 +
 +Installieren der Pro-Version:
 +<code>tftp -i 192.168.97.60 PUT NetzerIOpro.bin</code>
 +
 +Installieren der Base-Version:
 +<code>tftp -i 192.168.97.60 PUT NetzerIObase.bin</code>
 +