FreeBSD branduolio kompiliavimas

FreeBSD turi standartinį palaikomų irenginių ir modulių sąrašą. Naudojant specifinę programinę, techninę įrangą ar kitais atvejais reikia FreeBSD branduolį suderinti su šia įranga – reikalingas branduolio kompiliavimas.

Vienkartinio modulio aktyvavimo atveju (jei jis naudojamas retai) viso FreeBSD branduolio perkompiliuoti nebūtina, galime pasinaudoti komanda “kldload“. Ji laikinai (iki sistemos perkrovimo) įkrauna modulį į branduolį, pvz.,

kldload accf_http                  #Aktyvuojame “HTTP request accept filter” modulį, reikalingą Apache HTTP serveriui

Jei norime, kad modulis kurį laiką būtų įkraunamas kievienos įkrovos metu, tada galime pasinaudoti failu “loader.conf“, kuris yra kataloge “/boot”. Atsidarome šį failą ir pridedame reikiamus modulius, pvz.,

ee /boot/loader.conf            #Failas bus atidarytas redagavimui su “ee” redaktoriumis.

accf_http_load="YES"       #Įdedame šią eilutę spaudžiam [ESC] ir [Save]. Loader’is kievienos įkrovos metu įkraus šį modulį.

Vis dėl to nuolatiniam tam tikrų dalykų palaikymui  FreeBSD branduolyje, pvz., (IPFW, NAT, Quota ir t.t.) rekomenduojama branduolį perkompiliuoti. FreeBSD branduolio konfigūravimo failai yra kataloge “/usr/src/sys/”. Kokį konfigūravimo failą reikėtų pasirinkti, priklauso nuo įrangos achitektūros. Minėtam kataloge rasite katalogus: i386, amd64, ia64, powerpc, sparc64, pc98 ir kt., kuriuose konfigūracija yra paruošta įvairioms architektūroms. Standartiškai: 32 bit – naudokite i386, 64 bit – naudokite amd64. Pagrindinis branduolio konfigūravimo failas “GENERIC” yra ktaloge “/usr/src/sys/*/conf” (čia vietoje “*” architektūros katalogo pavadinimas), pvz., “/usr/src/sys/i386/conf”. Žemiau pateikiu detalę FreeBSD branduolio kompiliavimo i386 (32bit) veiksmų seką:

1.  Pereiname į katalogą “conf”, kuriame yra “GENERIC” failas

cd /usr/src/sys/i386/conf             

2. Pasidarome konfigūravimo failo "GENERIC" kopiją faile "naujas" (originalo "negadinsime"). Pavadinimą galite pasirinkti laisvai, nebūtinai "naujas"

cp GENERIC naujas              

3. Redaktoriumi "ee" (galite naudoti bet kokį kitą redaktorių) atsidarome failą ir jį redaguojame arba pildome:

ee naujas

4. Pvz., norime aktyvuoti IPFW ugniasienę. Faile "naujas" pridedame šias eilutes:

options         IPFIREWALL                                                         #IPFW ugniasienės aktyvavimas
options         IPFIREWALL_DEFAULT_TO_ACCEPT        #Pagal nutylėjimą IPFW ugniasienė viską “praleidžia”.

5.  Išsaugojame padarytus pakeitimus faile “naujas”. Jei naudojate redaktorių “ee”, tada spaudžiam [ESC] ir [Save].

6. Pereiname į katalogą kuriame yra branduolio kompiliavimui reikalingi failai “make”:

cd /usr/src

7. Pradedame branduolio kompiliavimą.

make buildkernel KERNCONF=naujas         #/Tai tikrai užtruks (~ 30 min.), todėl galite kažkuo kitu užsiimti.

8. Jei kompiliuojant klaidos pranešimų nebuvo (procesas nenutrūko - sėkmingai užbaigė), tada viskas OK ir sukompiliuotą branduolį galime įdiegti:

make installkernel KERNCONF=naujas

9. Perkrauname sistemą:

shutdown -r now

Viskas – po perkrovimo naujas FreeBSD branduolys jau bus aktyvus.

Pastaba. Konfigūruojant branduolio failą nebūtinai daryti viso “GENERIC” failo kopiją (kaip pateiktame pvz.). Jei norime tik nedidelio papildymo ar pataisymo, tai galime panaudoti komandą “include GENERIC“. Tuo atveju, susikuriame naują, tusčią failą, pvz., “naujas” ir jame rašome:

include GENERIC                                     //Bus įtraukiama visa GENERIC faile esanti konfigūracija.

ident naujas                                                //Mūsų konfigūracijos papildymo failas.

options         IPFIREWALL                     //Pridedame savo visus pageidaujamus dalykus.

options         …

Toliau, seka veiksmai kaip pateiktame pavyzdyje – nuo 5 žingsnio.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s