Linux-Headers - Woher bekommen? Xilinx Zynq

Gast #4858158
Hallo, ich arbeite hier auf dem Zynq und habe folgenden Linux-Kernel 
(kommt wenn ich uname -r) eingebe.

4.6.0-xilinx-00040-g7862283-dirty

Ich möchte ein char-device kompilieren.

Natürlich habe ich gemerkt, dass die Verlinkung 
/lib/modules/4.6.0-xilinx-00040-g7862283-dirty/build fehlt.

Auch unter /usr/src ist leere.


Der Befehl sudo apt-get install linux-headers-`uname -r` funktioniert 
auch nicht.


jetzt muss ich mir manuell die Header beschaffen.


Ist es möglich, dass ich mir grad von Git nochmal alles hole und in 
diesen Ordner dann die Verlinkung mache?
https://github.com/Xilinx/linux-xlnx

Ist es wichtig, dass die Inhalte unter /usr/src liegen?


Danke
Gast #4858197
Markus schrieb:
> Clemens L. schrieb:
>> Was ist denn der Name des Pakets, in dem der Kernel selbst ist?
>
> Wie finde ich das raus, wenn ich mal so doof fragen darf?

Der Kernel liegt einfach als Binärfile auf der SD-Karte in einer extra 
FAT-Partition, der wird von U-Boot in den Ram geladen.
Als rootfs habe ich mir einfach ein armhf-ubuntu minimal rootfs irgendwo 
runtergeladen, das kommt nicht von xilinx.
#4858305
Markus schrieb:
> Den habe ich selber cross-(kompiliert) aus dem Xilinx-Linux Repo.

Den Kernel baust du mit "make bzImage".
Die Module bekommst du mit "make modules modules_install".
Die Header bekommst du mit "make headers_install".

Beachte die Pfade, wo das hin installiert wird. Ich habe gerade keinen 
Baum da, schau ins Makefile vom Kernel.
Gast #4858657
Mw E. schrieb:
> Oder wenn er nen Kernelmodul/Treiber Für seine FPGA Hardware am
> AXI Bus
> schreiben will ;)

Genau das habe ich vor, aber mein VHDL-AXILite Modul funktioniert sogar 
schon ;-)
Wenn ich direkt auf die Register via /dev/mem und mmap zugreife 
funktioniert das.


Muss jetzt nur einen character-device dafür schreiben damit es einfacher 
nutzbar ist.
#4858697
Schau dir mal das UIO Framwork an (muss natürlich in deinem Kernel 
aktiviert sein)

Da wirfst du eine Beschreibung "welchen Adressraum, wie viel, welchen 
Interrupt" in den Device-Tree und bekommst ein /dev/uio0, mit dem du 
ohne jede Kernelprogrammierung folgendes machen kannst:
- lesen (blockiert bis zum nächsten Interrupt)
- schreiben (aktiviert Interrupts)
- mmap (mappt den angegebenen Adressraum)

Das reicht für die meisten, eher einfachen FPGA-Module vollkommen aus, 
ersparst dir einen eigenen Kerneltreiber und ist deutlich sicherer als 
ein Zugriff über /dev/mem.
Gast #4858704
S. R. schrieb:
> Schau dir mal das UIO Framwork an (muss natürlich in deinem Kernel
> aktiviert sein)
>
> Da wirfst du eine Beschreibung "welchen Adressraum, wie viel, welchen
> Interrupt" in den Device-Tree und bekommst ein /dev/uio0, mit dem du
> ohne jede Kernelprogrammierung folgendes machen kannst:
> - lesen (blockiert bis zum nächsten Interrupt)
> - schreiben (aktiviert Interrupts)
> - mmap (mappt den angegebenen Adressraum)
>
> Das reicht für die meisten, eher einfachen FPGA-Module vollkommen aus,
> ersparst dir einen eigenen Kerneltreiber und ist deutlich sicherer als
> ein Zugriff über /dev/mem.

Danke für den Tipp, ich werds mir mal anschauen ;-)
Gast #4858709
Aber mal so eine grundsätzliche Frage:

Wenn ihr Hardwaremodule für AXI entwerft, schreibt ihr quasi direkt die 
Module mit der entsprechenden Funktion (z.B. PWM) die dann auch direkt 
ein AXI Interface haben?

Bei uns wurde es so festgelegt, dass wir getrennte AXI-Lite Module nur 
für schreiben und nur für lesen haben die zur weiteren Hardware über ein 
FIFO-Interface entkoppelt ist, sodass man sich bei jeder weiteren 
Entwicklung nicht immer mit der AXI-Kommunikation rumschlagen muss.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 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.