Gerätemodelle generieren und 'releasen'

USRs

Als Anleitung eine stichwortwartige Liste, die als Hilfe zur Erstellung von Produktions-Releases von Gerätemodellen gedacht ist.

Im Workspace

  • Voraussetzung: Das zu releasende Projekt muss ein SVN-Tag haben (im SVN-Repository unter=frontend/tags/eq-models=)
  • Im Verzeichnis ~/workspace/<eq-model> eqpact aufrufen (ggfs. mit der gewünschtenRelease-Nummer, sonst ist es die aktuelle)
  • Mit vmeconfig die Makefiles für die USRs erzeugen.
    Default Einstellungen:
    vmeconfig.jpg
  • USRs mit
    make [clean all] 
    erstellen
  • Allgemeines Release:
    relusrs <eq-model> 09.xx.xx 
    aufrufen
  • Spezielles Release für einen GuP:
    relusrs <eq-model> 09.xx.xx -gup=<GuP-Name> 
    aufrufen (Details zum Kommando: relusrs -h).

Aus SVN mit genusrs

  • Voraussetzungen:
    • Das zu releasende Projekt muss ein SVN-Tag haben (im SVN-Repository)
    • Alle "VME Configuration"-Einstellungen eines Gerätemodells, die vom Default abweichen (siehe Abbildung oben), müssen in der Datei <eq-model>-default.cfg konfiguriert sein. Die Datei muss Bestandteil des Projektes im SVN-Repository sein.Mögliche, vom allgemeinen Default abweichende, gerätemodell-spezifische Einstellungenkönnten z.B. sein:
        VME_PLATFORM="x86"
        VME_DEVICE="native"
        VME_ADDOBJ_USRS="md-helpers.cc"
        VME_CXXFLAGS="-I.. -DGM_ISAU"
        VME_DEVICEFACTORY="1"
        VME_WARNINGS="0" 
      Dabei müssen "Additional Files" in <eq-model>-default.cfg mit VME_ADDOBJ_USRS angegeben werden, nicht mit VME_ADDOBJ. Mehrere Dateien können mit Blank getrenntangegeben werden.
      Achtung: Fehlt eine notwendige Einstellung in <eq-model>-default.cfg, ist esmöglich, dass ein Fehler erst zur Laufzeit (bzw. Ladezeit, beim Start des Devman)auftritt, was man daran merkt, dass der Devman nicht läuft. Das würde man dann z.B. in /common/log01/logs/<GuP> sehen. Etwa:
      /opt/acc/cpu/library/devman: symbol lookup error: ./mb.so: undefined symbol:
      _ZN12DeviceAccess7EqModMB8calcCurrEtPNS0_10DevConTypeEPtS3_S3_S3_ 

  • Aufruf von
    genusrs <eq-model> 
    zum Generieren der neuesten Version oder von
    genusrs --version=09.xx.xx <eq-model> 
    zum Generieren einer spezifischen Version der USRs. Die USRs werden aus SVN nach $HOME/eqmod-gen/<project>/<version> exportiert, falls nicht mit -o ein anderes Verzeichnis angegeben wurde, und dort generiert. Siehe genusrs -h für weitere Erklärungen.

  • USRs, die nicht dem Standard entsprechen bezüglich Name und/oder Verzeichnis, können trotzdem generiert werden. Zwei Beispiele:
    • MXS-USRs liegen im Unterverzeichnis mxs der MX-USRs.
      genusrs --project=mx --dir=mxs mxs 
    • FG01-USRs bis FG12-USRs liegen im Verzeichnis fg. Zur Generierung ist eine spezielle Behandlung notwendig. In solchen Fällen gibt es geräte-spezifischSkripte, die in der Regel <eq-model&gt-genusrs.sh heißen. Die Skripte müssen Bestandteil des Projektes im SVN-Repository sein. Der Aufruf bei FG istdann z.B.:
      genusrs --script=fg08-genusrs.sh --project=fg fg08 
      Siehe genusrs -h oder genusrs -H für weitere Erklärungen.

  • Allgemeines Release:
    relusrs -gen <eq-model> 09.xx.xx 
    oder
    relusrs -alt=$HOME/eqmod-gen/<eq-model>/09.xx.xx <eq-model> 09.xx.xx 
    aufrufen. Auch hier ein Beispiel für ein Nicht-Standard-Release:
    relusrs -gen -pro=mx -dir=mxs mxs 09.xx.xx 

  • Spezielles Release für einen GuP:
    relusrs <eq-model> 09.xx.xx -gup=<GuP-Name> 
    Hier wird in keinem Fall die Option -dir benötigt, weil alle allgemein releasten Dateien auf dem selben 'eqp'-Verzeichnis landen.

EQMs

  • Im Verzeichnis ~/workspace/<eq-model> eqpact aufrufen (ggfs. mit der gewünschten Release-Nummer, sonst ist es die Aktuelle)
  • Mit vmeconfig die Makefiles für die USR erzeugen. Einstellungen:
    vmeconfig-eqms.jpg
  • EQMs für jedes Board und jede Variante mit make erstellen
  • Allgemeines Release: Skript
    releqms f/g <eq-model> 09.xx.xx 
    für jede Variante und jedes Board (F/G) aufrufen
  • Spezielles Release für eine SE:
    releqms f/g <eq-model> 09.xx.xx -ec=SE-Name 
    aufrufen (Details zum Kommando: releqms ohne Parameter aufrufen)

Gut zu wissen

  • Das Kommando cdeqp führt in das Verzeichnis /usr/local/acc/eldk/ppc_6xx/opt/acc/eqp.Hier befinden sich die freigegebenen Gerätemodelle.
  • Leider unterscheidet sich die Anzahl der Minusse vor den Optionen der verschiedenen Skripte.Das hängt davon ab, ob es ein Bash- oder ein Python-Skript ist. Man kann aber in allen Fällen mit <script> -h oder <script> -H gucken, wie die Optionen angegeben werden müssen.
  • ...

This topic: Frontend > PPCDevelopments > USREQMRelease
Topic revision: 08 Feb 2013, LudwigHechler
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback