Neautentificat.
FreeBSD, ca aproape orice alt sistem de operare OpenSource, ne permite sa recompilam kernelul dupa bunul plac asta fiind un avantaj mare fata de sistemele cu sursa inchisa - gen Ms Windows sau sistemele UNIX comerciale. In cazul instalarii unui server FAMP (FreeBSD, Apache, MySQL, PHP) care foloseste ca sistem de gestiune cPanel/WHM este importanta recompilarea kernelului cel putin pentru a adauga optiunea QUOTA. QUOTA nu poate fi inclusa ca modul, deci e importanta sa fie built-in. Pe langa aceasta optiune se mai pot adauga alte optiune necesare unei bune administrari - PAE, IPFIREWALL etc.
Inainte de toate, pentru a recompila kernelul, avem nevoie de sursele kernelului. Ca sa copiem sursele prin CVS avem nevoie de o aplicatie care sa faca asta pentru noi - cvsup. Eu obisnuiesc sa fac un director /root/install in care lucrez. Va recomand sa faceti la fel.
mkdir /root/install
cd /root/install
Pentru CVS folosim varianta text a aplicatiei cvsup, adica cvsup-without-gui. Pentru instalare folosim urmatoarele doua comenzi:
fetch ftp.freebsd.org/pub/FreeBSD/ports/i386/ … ut-gui.tbz
pkg_add cvsup-without-gui.tbz
Bun, avem toate sculele necesare pentru a downloada sursele kernelului. Mai trebuie sa ii spunem aplicatiei cvsup ce anume ne intereseaza. Pentru asta facem un fisier supfile in care punem urmatoarele:
*default host=cvsup.FreeBSD.org *default base=/usr/local/etc/cvsup *default base=/usr *default tag=RELENG_6_2 *default release=cvs delete use-rel-suffix compress src-all
sau, ca sa nu folosim un editor de texte:
echo '*default host=cvsup.FreeBSD.org' > supfile echo '*default base=/usr/local/etc/cvsup' >> supfile echo '*default base=/usr' >> supfile echo '*default tag=RELENG_6_2' >> supfile echo '*default release=cvs delete use-rel-suffix compress' >> supfile echo 'src-all' >> supfile
Bineinteles trebuie inlocuit cvsup.freebsd.org cu un server cvsup mai aproape de locatia serverului si RELENG_6_2 trebuie inlocuit cu string-ul corespunzator versiunii instalate. Eu am ales cvsup.freebsd.org pentru ca momentan nu functioneaza nici un mirror din Romania si am pus RELENG_6_2 pentru ca in momentul de fata cPanel suporta doar FreeBSD 6.2-RELEASE sau versiuni mai mici.
Astea fiind facute mai avem de copiat sursele, copiere care se face folosind cvsup dupa cum urmeaza:
/usr/local/bin/cvsup -g -L 2 supfile
Comanda cvsup va citi fisierul supfile dat ca parametru si in functie de instructiunile din fisier se va conecta la server si va downloada versiunea surselor specificata. Optiunea -g ii spune aplicatiei sa dezactiveze suportul pentru interfata grafica iar -L 2 e nivelul de date returnate in timpul downloadarii (2 ne da mai multe detalii).
Dupa cateva minute sursele ar trebui sa fie gata downloadate. Putem trece la treaba. Trebuie sa intram in directorul in care sunt pastrate fisierele de configurare:
cd /usr/src/sys/`uname -m`/conf/
Pentru siguranta copiem fisierul GENERIC cu un nou nume si vom modifica copia:
cp GENERIC server
Fisierul server (sau GENERIC daca modificati direct) se deschide cu orice fisier de texte si se modifica. Eu prefer vi sau vim.Modificarile care le fac eu de obicei sunt urmatoarele:
Adaug suport pentru PAE, pentru a putea accesa mai mult de 3GB RAM pe i386
options PAE
Las doar I686_CPU, I486_CPU si I586_CPU nefiind necesare pe Xeon
cpu I686_CPU
Modific ident si pun numele serverului (trebuie sa corespunda cu numele fisierului)
ident server
Adaug un comentariu (#) in fata liniei de mai jos pentru a micsora fisierul final
#makeoptions DEBUG=-g
Dezactivez INET6, pentru ca folosesc doar INET
#options INET6
Adaug si urmatoarele linii. Suport QUOTA si firewall-ul
options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT
options QUOTA
Astea fiind facute pot trece la compilare:
make buildkernel KERNCONF=server
make installkernel KERNCONF=server
Daca totul a mers bine pana aici, fara nici o eroare, se restarteaza sistemul si totul e in regula.
Articolul original: Compilare kernel in FreeBSD
Offline