Bouwen van de kernel

Zonodig dient u nu eerst de kernel broncode uit te pakken en te compileren. De steevast gesuggereerde plaats voor dat uitpakken is /usr/src, maar dat kan onbedoelde bijwerkingen geven als u migreert naar een andere versie van kernel dan u al had. Het uitpakken van de tar in /usr/src maakt namelijk /usr/src/linux en daaronder aan. En daarmee overschrijft u de header files van uw oude kernel. Onbedoeld wijzigt u daarmee ook de inhoud van /usr/include/asm en /usr/include/linux; dat zijn namelijk links naar de kernel broncode boom in /usr/src/linux. Die oude header files blijven echter nodig om software te kunnen compileren die werkt met bibliotheken die met die oude header files zijn gecompileerd.

Tip: Bij de meeste distributies is /usr/src/linux een symbolic link naar de directory waarin de actuele kernelcode te vinden is. De naam van de directory met broncode bevat dan meestal het versienummer, bijvoorbeeld /usr/src/linux-2.2.20. Er kunnen uiteraard meerdere bomen met kernelcode zijn. Door nu een symbolic link te leggen van een van de broncode directories naar /usr/src/linux is het schakelen tussen sets headerfiles mogelijk.

We maken dus een nieuwe directory aan van waaruit we onze nieuwe kernel zullen opbouwen. In onze voorbeelden gaan we er van uit dat u alle archieven in /tmp heeft gezet. De volgende opdrachtenreeks zet nu de broncode klaar:
~: # cd /usr/src
/usr/src: # mkdir new 
/usr/src: # cd new 
/usr/src/new: # tar zxf /tmp/linux-2.2.20.tar.gz
/usr/src/new: # mv linux ../linux-2.2.20
/usr/src/new: # cd ..
/usr/src: # rmdir new

Wissel nu naar de Linux source directory en pak de broncode voor RSBAC uit:
/usr/src/linux-2.2.20 # tar xzf /tmp/rsbac-v1.1.2.tar.gz
Nu staan ook de RSBAC bronbestanden gereed. Om de koppeling tussen de originele Linux kernel broncode en de RSBAC code tot stand te brengen brengt u vervolgens de patch aan:
/usr/src/linux-2.2.20 # gzip -dc /tmp/patch-2.2.20-v1.1.2.gz |patch -p1

Tip: Om het leven wat makkelijker te maken zijn er ook archieven gemaakt met kant-en-klaar voorgepatchte kernelcode. Er zijn archieven voor RSBAC versie 1.1.2 en voor (pre)release 1.2.0 voor de meest recente 2.2 en 2.4 kernels. Deze archieven kunt u vinden op http://rsbac.org/kernels/.