Buduję busy-box i iptables dla urządzenia osadzonego, a jedną z zależności dla nich są nagłówki jądra.
Przeszukałem cały system plików w poszukiwaniu plików * .ko i nie znalazłem żadnego. Doszedłem więc do wniosku, że aplikacje nie tworzą żadnych ładowalnych sterowników (modułów jądra).
W jakich innych przypadkach aplikacja przestrzeni użytkownika wymaga nagłówków jądra?
linux
linux-kernel
kernel-modules
TheMeaningfulEngineer
źródło
źródło
include <linux/*.h>
otworzyć gniazdo? (Celowałem w sys / socket.h)Odpowiedzi:
Ponieważ te programy są budowane do korzystania z rzeczy zdefiniowanych w nagłówkach jądra:
Dla każdego konkretnego narzędzia musisz przeczytać jego źródło i odpowiedni nagłówek jądra, aby dokładnie dowiedzieć się, co.
Aby ułatwić, możesz zobaczyć kilka komentarzy.
Na przykład
mkfs_vfat
obejmuje,linux/fd.h
aby uzyskaćFDGETPRM
:Prawdopodobnie możesz usunąć odpowiedni
#include
i uważać na błędy kompilatora, aby ułatwić, otrzymasz ostrzeżenia, że niektóre rzeczy nie są zdefiniowane. Te rzeczy prawdopodobnie pochodzą z nagłówków jądra.źródło