despre compartiment
Aici puteti gasi articole in romana despre instalarea, configurarea si administrarea unor servicii precum si a intregului sistem.
login
articole
13.11.03 19:53Recompilarea kernelului in OpenBSD
Sunt cateva motive pentru a-ti compila un kernel propriu, diferit de cel standard.
1. Kernelul standard suporta o multime de hardware, si ocupa degeaba memoria sistemului.
2. Vreti sa incercati optiuni care nu sunt incluse in kernelul default, sau sa scoateti optiuni de care nu aveti nevoie ( de exemplu suport
de XFree86 sau pcmcia device-uri pe un server).
3. Vreti sa activati optiuni experimentale.
Un inconvenient - developerii ignora bug reporturile de pe masini cu kernel diferit de cel generic.
Pentru recompilarea kernelului avem nevoie de sursele sale in directorul /usr/src, pe care le putem lua de pe unul din serverele
ftp,http sau rsync, mirroruri ale openbsd.org.
Lista poate fi gasita pe openbsd.org/ftp.html
Sursele kernelului se gasesc intr-o arhiva de tipul sys.tar.gz.
Odata downloadate, sursa trebuie dezarhivata:
root@sh:/usr/src# cd /usr/src/root@sh:/usr/src# tar -xzvf sys.tar.gz
Urmeaza sa updatam sursele kernelului prin CVS.Daca nu avem setata variabila CVSROOT, o setam in fisierul ~/.profile,
sau prin comanda
export CVSROOT=anoncvs@anoncvs.openbsd.org.ua:/cvs
sau oricare cvs server mai apropiat.
root@sh:/usr/src# cvs get -rOPENBSD_3_4 -P sys
root@openbsd:/usr/src# cvs get -rOPENBSD_3_4 -P sys
cvs server: Updating sys
cvs server: Updating sys/adosfs
cvs server: Updating sys/altq
cvs server: Updating sys/arch
cvs server: Updating sys/arch/alpha

etc ...
root@sh:/usr/src# cd /usr/src/sys/arch/i386/conf/
root@sh:/usr/src/sys/arch/i386/conf# cp GENERIC mykernel

Urmeaza sa redactam cu editorul preferat fisierul mykernel (va mai dura mult pana ce cei de la OpenBSD vor scoate un utilitar comod,
cum este cel din Linux, bazat pe ncurses, la make menuconfig.
Comentand o linie cu # scoatem optiunea respectiva din kernel, respectiv decomentand o optiune, o activam in kernel.
Daca vrem sa deactivati o optiune deja activata anterior, puteti face asta creand o linie de tipul
rmoption [optiune]
Toate optiunile posibile pot fi vizualizate citind manul la options.
root@sh:/usr/src/sys/arch/i386/conf# man options
Voi comenta mai jos cateva optiuni pe care le-am considerat mai speciale.
Liniile de mai jos specifica tipul procesorului. Am nevoie doar de i686_CPU, asa ca restul le-am comentat.

#option I386_CPU # CPU classes; at least one is REQUIRED
#option I486_CPU#option I586_CPU
option I686_CPU
La fel am comentat si linia
#option APERTURE # in-kernel aperture driver for XFree86
fiindca nu am nevoie de X pe un server.

Daca avem nevoie de compatibilitate cu binarele altor OS, lasam liniile necomentate.In cazul meu am lasat:

#option COMPAT_SVR4 # binary compatibility with SVR4
#option COMPAT_IBCS2 # binary compatibility with SCO and ISC
option COMPAT_LINUX # binary compatibility with Linux
option COMPAT_FREEBSD # binary compatibility with FreeBSD
#option COMPAT_BSDOS # binary compatibility with BSD/OS
option COMPAT_AOUT #suport pentru binarele vechi a.out

Numarul aproximativ de useri pe masina:

maxusers 2000 # estimated number of users

Sistemul pe care am recompilat kernelul este un server ce ofera shell hosting, deci va avea un numar impresionant de useri.
In continuare urmeaza o multime de hardware, suport pentru care contine kernelul default.
Cititi cu atentie comentariile fiecarei linii, si lasati suport doar pentru hardwarele pe care il aveti acum, sau pe care il veti putea avea.
Eu am scos totul legat de usb,audio,firewire,pcmcia,joystickuri,etc... tot de ce nu am nevoie pe un server.
Daca doriti o configurare mai fina, puteti redacta si fisierul Makefile.i386, aflat in acelasi director.
Eu am modificat variabilele CPPFLAGS si CMACHFLAGS.
Dupa ce ati incheiat redactarile, urmeaza procesul de compilare propriu-zis.

root@sh:/usr/src/sys/arch/i386/conf# config mykernel
root@sh:/usr/src/sys/arch/i386/conf# cd ../compile/mykernel/
root@sh:/usr/src/sys/arch/i386/compile/mykernel# make clean
root@sh:/usr/src/sys/arch/i386/compile/mykernel# make depend
root@sh:/usr/src/sys/arch/i386/compile/mykernel# make

Pastram kernelul vechi pentru orice eventualitate ca bsd.generik
root@sh:/usr/src/sys/arch/i386/compile/mykernel# cp /bsd /bsd.generik
Schimbam kernelul generik cu cel compilat de noi:
root@sh:/usr/src/sys/arch/i386/compile/mykernel# cp bsd /bsd

Reboot.
Autor: GRisha
Comentarii: 0

Adauga Comentariu:
Nume:
E-mail:
Cometariu:
 
counter
Informatia de pe site este prezentata "AS IS" si nimeni NU garanteaza veridicitatea sa
Hosting si intretinerea site-ului - REMSYS © 2003-2007