Linux Kernel Modul kompilieren für De1-SOC yocto

Gast #4617894
Hallo allerseits, zwar habe ich einige verwandte Themen gefunden 
allerdings enthalten diese nicht die Detaisl die ich brauche.

Ich versuche ein Linux Kernel Modul für mein De1-Soc von Terasic zu 
kompilieren, scheitere aber kläglich. Meine Linux Kenntnisse selbst sind 
leider etwas beschränkt und ich finde im Internet nicht die richtige 
Hilfestellung oder weiss nicht wo ich anfangen muss.

Ich habe ein laufendes embedded Linux von der Terasic homepage (Linux 
Kernel 3.12), dies läuft auf dem HPS meines Cyclone V.
Nun möchte ich, um Interrupts des FPGA verarbeiten zu können ein 
Kernelmodul hinzufügen, dass diese entsprechend registriert.

Gibt es irgendwo Informationen wie ich dies bewerkstellige? Welche 
Kernelsourcen brauche ich genau? Herunterladen kann ich 3.12.60 und wo 
müssen diese hin? Wie richte ich den Compiler ein, kann ich den selben 
verwenden wie für meine Target Applikationen? Wie muss das Makefile 
genau aussehen?

Danke und Gruss
Möchtest du nur das Kernelmodul kompilieren, oder das gesamte Image?

Wenn nur das Modul, dann müsstest du die Imageumgebung vom Hersteller 
beziehen können, oft auch als SDK abgekürzt. Dort sind alle Headerfiles 
im Filetree abgebildet, zudem der Crosscompiler und vielleicht sogar ein 
Beispielprojekt.
Solltest du in Eclipse programmieren, so kannst du dort in den 
Linkeroptions auf das SDK verweisen. Dies geschieht mit dem Keywort 
'sysroot' und danach der Pfad zu deinem rootfs (z.B. 
sysroot=/home/Humpawumpa/de1-soc-terasic/rootfs/ )

In CMake kannst du ebenfalls mit Sysroot arbeiten, ich glaube aber erst 
ab Version 3. Fürs Makefile gibt es vielleicht eine ähnliche Option.
Gast
Ja ich will nur das Module kompilieren.
Das Problem mit dem Yocto Image ist, dass es das /build nicht enthält - 
zumindest habe ich es nicht gefunden.
Ich versuches mal mit Ubuntu Image das man ebenfalls auf deren Homepage 
herunterladen kann und das auf demselben Kernel basiert.
Gast
Hi

was du benötigst ist der cross compiler z.B. die 
arm-linux-gnueabihf-toolchain, um dein modul zu kompilieren.

Falls der Interrupt vom FPGA kommt musst du diesen auch im Qsys-Design 
mit dem HPS verbinden und die Interruptnummer vergeben. Beachte das du 
hier zwei Interruptreceiver hast und du entsprechend die Interruptnummer 
auswählen musst. Ich glaube die Interrupts vom FPGA liegen von 72 bis 
135(mehr sagt dir das HPS Handbuch).
Gast
proggen schrieb:

> Falls der Interrupt vom FPGA kommt musst du diesen auch im Qsys-Design
> mit dem HPS verbinden und die Interruptnummer vergeben. Beachte das du
> hier zwei Interruptreceiver hast und du entsprechend die Interruptnummer
> auswählen musst. Ich glaube die Interrupts vom FPGA liegen von 72 bis
> 135(mehr sagt dir das HPS Handbuch).

Genau, das hab ich gemacht,es scheitert wirklich nur am kompilieren. 
Aber habe die entsprechenden Kernelsourcen gefunden glaube ich.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.