EZBS FAQ Entwicklungsumgebung

Aus Verteilte Systeme - Wiki
Wechseln zu: Navigation, Suche

Kernelmodule für Targets entwickeln

ELINOS-Projekt aufsetzen

  • mindestens eine Projektkopie pro Target aufsetzen, um die Build-Umgebung für ELINOS zu erhalten
  • /opt/elinos-4.2/bin/elinos-cloneproject /opt/elinos-4.2/demos/Applications <neues Projektverzeichnis>
    • im Konfigurationsdialog Target auswählen
      • F & S PicoCOM1 für ARM-Target, Kernel 2.6.25
      • epia_itx für x86-Target, Kernel 2.6.22
  • immer vor einem Build oder Konfigurationsänderung:
    • in <Projektverzeichnis> wechseln
    • . ELINOS.sh (Punkt, Space, ELINOS.sh eingeben)
  • feature-config aufrufen, u.g. Änderungen vornehmen und und abspeichern
    • nur für x86-Target: EPIA-ITX options / CPU Variant of your board / VIA C7 auswählen
    • für beide Targets: General System Configuration / Loadable Modules / Module Unloading selektieren

Projektstruktur und Build

(alle Angeben relativ zum Projektverzeichnis)

  • Quellen in src/
  • im Applications-Beispielprojekt gibt es drei Unterprojekte in src/
    • fetchmail: (importiertes fetchmail-Paket, ignorieren)
    • myprogs: Beispiel für ELINOS-Anwendung, erzeugt ein Binärfile
    • kernel-modules: Entwicklung von eigenen Kernelmodulen
  • Build des Gesamptprojekts: make boot in Projektverzeichnis
    • aufwändig, Kernel-Image wird ebenfalls erstellt
  • Build von Teilprojekten
    • make -f Makefile.elinos in src/-Unterverzeichnissen

Kernelmodule im Applications-Projekt

  • in src/kernel-modules gibt es mehrere Unterverzeichnisse für 2.4/2.6-Kernel und Module aus ein bzw. mehreren Quelldateien
  • für unsere Projekte geeignet: src/kernel-modules/multi-file-kernel-2.6-module
  • dort neue Quelldateien ablegen und im dortigen Makefile die Regeln entsprechend anpassen
    • aber: Build mit make -f Makefile.elinos in src/kernel-modules (oder höherem Verzeichnis) anstoßen