Linux Kernel Sourcen verwenden geht nicht



  • Hallo,
    Ich habe gerade gemerkt dass einem skbuff.h aus den Linux Kernel Sourcen durch ein einfaches

    #include <linux/skbuff.h>
    

    wohl nicht zur Verfuegung steht?!

    Frage: Muss ich, um Header Files aus dem Kernel nutzen zu koennen eine Umgebungsvariable anlegen/bzw editieren (wenn ja welche und wie?), oder verweist man dazu im Makefile auf die sourcen von Linux?

    System: Debian (Lenny/Sid)/Linux 2.6



  • Möchtest Du ein Kernelmodul oder eine Anwendung programmieren? Im ersten Fall musst Du sowieso den Kernelsource installieren und einige Vorkehrungen treffen, im zweiten Fall hast Du an den Kernel-Headern nichts verloren. Hier stellt die glibc alles, was im Userspace benutzt werden darf, zur Verfügung. Wenn die glibc-Header hinreichend aktuell sind (die glibc-Header werden zum Teil aus den Kernel-Headern generiert) und dieser Header nicht zur Verfügung steht, ist er wohl nicht zur Verwendung im Userspace gedacht.



  • Nja, ich arbeite an einem Kernel Modul, bzw will das in angriff nehmen. Um mit den Funktionen die einem da zur Verfuegung stehen zu experimentieren, wollte ich eben Anwendungen implementieren, u.a. auch um etwa Code in einer Anwendungsumgebung einfacher testen zu koennen mit gdb oder valgrind.



  • Hallo,
    mir leuchtet mittlerweile ein, warum es nicht gehen kann - saemtliche Funktionen die bspw schon mal ein kalloc() oder skb_alloc() verwenden, allokieren ja spaetetens schon mal Speicher im Kernel Space. Da Linux ja diesen strikt vom User Space trennt, also dem Addressraum in dem die Applikationen zu laufen haben, werde ich wohl meinen "Test-Code" direkt als Modul kompilieren und den entsprechenden Kernel patchen muessen.

    Manchmal dauert es etwas bis man merkt, dass man einfach nur irgendwie auf der Leitung steht. 🤡


Anmelden zum Antworten