OpenPOWER Firmware kompilieren

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird.
Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar.

OpenPOWER Server enthalten kein proprietäres BIOS oder eine UEFI-Firmware, sondern sind mit einer Open Source OpenPOWER Firmware ausgestattet. Die Firmware kann entweder vor-kompiliert vom Hersteller bezogen werden, oder auch selbst kompiliert werden. In diesem Beispiel zeigen wir anhand eines Produkt nicht mehr verfügbar, wie Sie die Firmware selbst kompilieren und auf das System flashen.

Bestandteile der Firmware

Die OpenPOWER Firmware besteht aus mehreren Komponenten, die allesamt auf GitHub.com/open-power zur Verfügung stehen. Details zu den Komponenten finden Sie im Artikel OpenPOWER - OpenPOWER Firmware.

Firmware vom Herrsteller im HPM Format

Der 2HE OpenPOWER Single-CPU RP2112 Server basiert auf dem OpenPOWER System mit dem Codenamen Habanero, welches in Zusammenarbeit mit TYAN entwickelt wurde. TYAN stellt für dieses System ein Firmware-Image im HPM-Format[1][2] bereit. Dieses Image kann über das IPMI Webinterface oder mittels ipmitool am Server eingespielt werden.[3]

Das Erstellen eines Firmware-Images im HPM-Format erfordert kostenpflichtige Tools des BMC-Herstellers. Bislang gibt es keine Open Source Tools zum Erstellen eines HPM Firmware-Images.[4] Ein selbst-kompiliertes PNOR Firmware-Image kann jedoch mit dem pflash Utility aus dem Linux Betriebssystem am OpenPOWER Server eingespielt werden, wie wir weiter unten im Detail beschreiben.

Firmware selbst kompilieren

Die Firmware für ein OpenPOWER System kann dank Cross-Compiler[5] auf einem herkömmlichen 64-Bit X86 Linux System kompiliert werden.

Zum Kompilieren der Firmware auf einem Ubuntu System installieren Sie zuerst die erforderlichen Pakete:[6]

sudo apt-get install cscope ctags libz-dev libexpat-dev \
  python language-pack-en texinfo \
  build-essential g++ git bison flex unzip \
  libssl-dev libxml-simple-perl libxml-sax-perl libxml2-dev libxml2-utils xsltproc \
  wget bc

Anschließend kompilieren Sie die Firmware (dieser Vorgang dauert je nach der Hardware-Ausstattung Ihres Buildsystems ca. 1-3 Stunden):

$ git clone --recursive https://github.com/open-power/op-build.git
$ cd op-build
$ . op-build-env
$ op-build habanero_defconfig
$ op-build

Nach Abschluss des Kompilierens finden Sie im Unterverzeichnis op-build/output/images die folgenden Firmware-Dateien:

$ ls -1sh
total 232M
 48K cappucode.bin
 65M habanero.pnor
 33M habanero_update.pnor
 55M rootfs.cpio
9,8M rootfs.cpio.xz
 56M rootfs.tar
1,1M skiboot.lid
272K skiboot.lid.xz
 15M zImage.epapr

Firmware einspielen

Die Firmware kann nun am OpenPOWER Server eingespielt werden. Dazu verwenden Sie das pflash Utility, das z.B. bei Ubuntu 16.10 oder RHEL 7.3 enthalten ist.

Alternativ können Sie pflash für Ihre eingesetzte Linux Distribution einfach selbst kompilieren (in unserem Beispiel verwenden wir Ubuntu 16.04 am OpenPOWER Server und kompilieren pflash am OpenPOWER Server selbst). Zum Kompilieren führen Sie die folgenden Schritte aus:[7]

$ git clone https://github.com/open-power/skiboot.git
$ cd skiboot/external/pflash
$ make

Vor dem Flashen der neuen Firmware empfehlen wir zur Sicherheit eine Kopie der aktuell vorhandenen Firmware zu erstellen:

$ sudo ./pflash -r original-pnor

Anschließend können Sie noch weitere Informationen zur Firmware abfragen:

$ sudo ./pflash -i

Nun können Sie Ihre selbst-kompilierte Firmware einspielen. Wir empfehlen dabei, nur die habanero_update.pnor Komponente einzuspielen. Im Falle von Bootproblemen startet das System nach 2 Fehlversuchen automatisch vom sogenannten Golden Image.[8][9]

Zum Einspielen des habanero_update.pnor Images verwenden Sie folgendes Kommando:

$ sudo ./pflash -e -p /home/tk/habanero_update.pnor
About to erase 0x00000000..0x02000000 !
WARNING ! This will modify your HOST flash chip content !
Enter "yes" to confirm:yes
Erasing...
[==================================================] 100% ETA:0s     
About to program "/home/tk/habanero_update.pnor" at 0x00000000..0x02000000 !
Programming & Verifying...
[==================================================] 100% ETA:0s     
tk@ubuntu-16-04:~/skiboot/external/pflash$

Einzelnachweise

  1. HPM.1 (en.wikipedia.org)
  2. Hardware Platform Management (HPM) Overview (www.picmg.org)
  3. How to upgrade BP012 BMC and PNOR to Channel official release version v1.0 (mitacfae.blogspot.com)
  4. Create a tool to produce HPM upgrade files from PNOR (github.com/open-power) op-build Issue 767
  5. Cross-Compiler (de.wikipedia.org)
  6. OpenPOWER Firmware Build Environment (github.com/open-power)
  7. Workaround for opal-prd using 100% CPU (www.flamingspork.com/)
  8. Host golden-side boot (github.com/open-power/docs)
  9. Switching from golden side pnor boot to primary side pnor boot is not happening for habanero machine. (github.com/open-power) op-build Issue 470 - Enthält Erläuterungen zur Funktionsweise des Golden Images

Weitere Informationen


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

Debian 9 Stretch auf OpenPOWER via Petitboot installieren
OpenPOWER Verbindung auf serielle Konsole
Ubuntu 16.04 auf OpenPOWER via Petitboot installieren