Ich baue Busy-Box und Iptables für ein eingebettetes Gerät und eine der Abhängigkeiten für sie sind die Kernel-Header.
Ich habe das gesamte Dateisystem nach * .ko-Dateien durchsucht und keine gefunden. Also kam ich zu dem Schluss, dass die Apps keine ladbaren Treiber (Kernelmodule) erstellen.
In welchen anderen Fällen benötigt eine User Space-Anwendung Kernel-Header?
linux
linux-kernel
kernel-modules
TheMeaningfulEngineer
quelle
quelle
include <linux/*.h>
eine Steckdose öffnen müssen? (Ich wollte sys / socket.h)Antworten:
Da diese Programme so erstellt wurden, dass sie die in den Kernel-Headern definierten Elemente verwenden:
Für jedes spezifische Tool müssen Sie die Quelle des Tools und den entsprechenden Kernel-Header lesen, um genau herauszufinden, was.
Sie können sehen, dass einige Dinge kommentiert werden, um es einfach zu machen.
Zum Beispiel
mkfs_vfat
enthältlinux/fd.h
, um zu erhaltenFDGETPRM
:Sie könnten wahrscheinlich die relevanten entfernen
#include
und auf Compilerfehler achten, um dies zu vereinfachen. Sie erhalten Warnungen, dass einige Dinge nicht definiert sind. Diese Dinge stammen wahrscheinlich aus den Kernel-Headern.quelle