Log in


Forgot your password?
prijatelji LUGoNSa
gnu.gif
linuxzasve.jpg
hulk.jpg
zextras_logo.png
 
You are here: Home / Uputstva / Opšte / Kompajliranje kernela van izvornog stabla

Kompajliranje kernela van izvornog stabla

by Goran Mekić last modified Jul 22, 2008 10:51 AM
Ako poželite da Vam /usr/src/linux ostane "nezaprljan" binarnim fajlovima

Postoji više scenarija zašto ovo može biti korisno, ali jedan od njih je definitivno više različitih mašina u mreži kojima treba update kernela. Recimo da imate 2 mašine u mreži - klijent i server. Zbog jednostavnosti, razmatramo scenario sa dve mašine u mreži. Na serveru je kernel u /usr/src/linux i deljen je (NFS, Samba ili nešto treće). Na klijentu je, recimo, deljeni direktorijum servera mount-ovan na /mnt/server/kernel. Sve što treba da uradite da napravite direktorijum gde će se smeštati binarni fajlovi (potrebno je uraditi samo jednom):

# mkdir -p /var/tmp/kernel

Potom, uđite u direktorijum gde su izvorni fajlovi kernela i uradite pomalo izmenjenu standardnu proceduru kompajliranja kernela:

# cd /mnt/server/kernel
# make O=/var/tmp/kernel menuconfig
# make O=/var/tmp/kernel all
# make O=/var/tmp/kernel modules_install
# make O=/var/tmp/kernel install

Promenljiva O označava direktorijum gde će se smeštati binarni fajlovi (Output). Sve make komande koje biste inače pokrenuli, pokrenite sa O=/var/tmp/kernel i to je sva mudrost. Naravno, možete napraviti i skriptu koja odrađuje ovaj posao. Recimo, nešto ovakvo (meni radi posao):

#!/bin/bash

O=/var/tmp/kernel

cd /mnt/server/kernel
if [ "$?" != 0 ]; then
echo "No dir in /mnt/server/kernel" >&2
exit 1
fi

if [ ! -d $O ]; then
mkdir $O
fi
make O=$0 $@

Smestite ovu skriptu u /usr/bin (ili neki drugi direktorijum koji je u PATH-u) i nazovite je, recimo, make-kernel.sh. Na dalje pozivate make-kernel.sh umesto make sa apsolutno istim argumentima. Na primer:

# make-kernel.sh menuconfig all modules_install install

Document Actions