Cześć,
mam Ubuntu 10 i już od samego początku nie potrafiłem na nim skompilować programu w C, który includuje nagłówki jądra systemu. Na początku co mnie bardzo denerwuje wszystkie potrzebne pliki nie znajdują się w odpowienim miejscu czyli w /usr/include tylko w /usr/src/XXX i trzeba podawać do nich ścieżki. Drugie, najważniejsze, że jak już wszystkie zależności uda się dołączyć do pliku źródłowego to zaczyna sypać mnóstwem błędów typu: "error: ‘nodemask_t’ has no member named ‘bits’". Zdaję sobie sprawę z tego, że to nie jest wina kodu kernela tylko pewnie jakichś dodatkowych zależności lub ich nieprawidłowych wersji.
Co zrobiłem to pobrałem najnowsze źródła 2.6.39.1 i je skompilowałem bez problemu. Następnie napisałem prosty "driver", który wymaga zależności kernela:
#define MODULE
#include "linux/module.h"
int init_module(void)
{
printk("<1>Hello World\\n");
return 0;
}
void cleanup_module(void)
{
printk("<1>Hell yeah!\\n");
}
Następnie kompilacja:
gcc -c kernel_driver.c -I/home/dos/dos/linux-2.6.39.1/include/ -I/home/dos/dos/linux-2.6.39.1/arch/x86/include
oczywiście kończy się niepowodzeniem. Tony błędów typu, który napisałem powyżej, zalewają minie ze wsząd.
Proszę o pomoc w tej sprawie lub naprowadzenie mnie na właściwe tory.
Dziękuję
Jacek