Op maandag 24 juni 2002 12:42 schreef Den the Man het volgende:
Als mijn suse machine is opgestart staat er: Welcome to SuSE linux 7.2 (i386) Kernel 2.4.4-4GB
edit:
Dit staat er in de text dat voorbij komt vliegen als ik make heb ingtikt:
[...]
aangezien in een beginner ben op het gebied van linux, weet ik niet waar ik dit moet veranderen
Zoals de make output zegt zijn er twee sets kernel include headers. Namelijk de kernel include headers die gebruikt zijn bij het compileren van de glibc (systeem library) en de kernel include headers van de kernel zelf.
Deze hoeven niet van de zelfde versie te zijn aangezien de kernel versie kan afwijken van de kernel waarvoor de glibc is gecompileerd.
Voor normale programma's die glibc gebruiken om met de kernel te communiceren is de set kernel headers die bij glibc horen voldoende.
Echter wanneer je modules gaat maken die in de kernel worden geladen (wat hiet waarschijnlijk de bedoeling is) moet je bij het compileren de kernel include headers van de kernel zelf gebruiken en niet van glibc.
Hiertoe moet je de source installeren die gebruikt is om je huidige kernel te compileren (bij Suse vandaan halen) en in /lib/modules/2.4.4 (of /lib/modules/2.4.4-4GB, zie output "uname -r") een link met de naam 'build' naar de kernel source directory plaatsen.
bv:
ln -s /usr/src/linux /lib/modules/2.4.4/build
Let op, alleen de kernel source in /usr/src/linux plaatsen als daar al niks anders staat. Sommige distro's zetten namelijk de glibc headers in /usr/src/linux die je dan zou overschrijven.
Zet de kernel source anders in bv /usr/src/kernel-2.4.4 en laat de build link hierna verwijzen.
Tevens moet je de Makefile van rshaper aanpassen en "-I/usr/include/linux" vervangen door -I/lib/modules/2.4.4/build/include"
Tevens moet je het bestand /boot/vmlinuz.version.h copieeren
naar /lib/modules/2.4.4/build/include/version.h.
Als je geen /boot/vmlinuz.version.h hebt maar wel een /boot/config-2.4.4 (of iets wat er op lijkt), copier die dan naar /lib/modules/2.4.4/build/.config en doe 'make oldconfig' in de directory /lib/modules/2.4.4/build.
Dat zou als het goed is de version.h file moeten aanmaken.
Als dat niet lukt kan je beter zelf een nieuwe kernel compileren en installeren zodat je zeker weet dat de rshaper module bij je kernel past.
Dat laatste is overigens geen slecht idee want dan kan je gelijk een nieuwere kernel versie gebruiken (2.4.18 is redelijk stabiel) omdat jouw kernel versie 2.4.4 een aantal bekende problemen heeft (bv local root exploite).
Succes:)