ot Nikola Antonov(21-07-2002)

reiting (30)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Sledkonfiguratsionna nastroika, samata kompaliatsiia, lilo

Sledkonfiguratsionna nastroika

Zvuchi malko taftalogichno. Nali predi malko tochno tova pravehme - nastroivahme? Vse pak, sled kato sme priklyuchili s 'make menuconfig' i sme zapisali izbranite ot nas optsii v edin skrit fail '.config', koito mozhete da razgledate suvsem bezproblemno, mozhe da iskame da pipnem tuk i tam, predi da izvikame kompilatora da si svurshi rabotata.

Edin primer. Ot edin i sushti sors mozhem da si napravim bezbroino kolichestvo iadra. Vseki put, kogato kompilirame novo iadro, to shte se imenuva po edin i sushti nachin i negovite moduli shte se instalirat v edna i sushta direktoriia (/lib/modules/x.x.x). Taka, modulite na razlichnite iadra shte se pripokrivat i shte nastane pulna kasha. V kraina smetka, edinstvenoto raboteshto iadro shte e samo tova, koeto sme kompilirali posledno. Kak da nakarame modulite da otivat v otdelni direktorii? Kato preimenuvame iadroto. A kak da go preimenuvame? Kato redaktirame faila 'Makefile' v direktoriiata '/usr/src/linux' predi kompilatsiiata.

V purvite tri reda na tozi fail, koito zadava bazovite nastroiki za izrabotvaneto na novoto iadro, e opisana imenno versiiata na iadroto. Tretiiat red - 'EXTRAVERSION' - e prazen. V nego razrabotchitsite na distributsii obiknoveno vpisvat nomera na krupkata, koiato praviat na iadroto. Veche kazahme, che te chesto puti dobaviat novi draiveri ili praviat sobstveni korektsii v izhodniia tekst. Tova ne oznachava, che i nie ne mozhem da go izpolzuvame, razbira se. Imenno v nego mozhem da dobavim neshto, s koeto da otlichim nasheto iadro ot ostanalite. Naprimer:

EXTRAVERSION = -1MyLinux

Taka, sled kompilatsiiata, nasheto iadro shte se oznachava kato '2.4.18-1MyLinux', negovite moduli shte otidat v direktoriiata '/lib/modules/2.4.18-1MyLinux' i niama da pripokriiat modulite na drugite iadra, koito polzuvame. Eto kak mozhem suvsem bezopasno da eksperimentirame svobodno s kompilatsiiata na iadroto, bez da se strahuvame, che neshto shte povredim v sistemata, ako sluchaino novoto iadro ne proraboti.

Zabelezhka! Imeto na iadroto ne e tuzhdestveno s faila, koito predstavliava samoto iadro i koito mozhem da narechem kakto si poiskame. Imeto na iadroto e zapisano v negovite heduri, blagodarenie na koito programite razpoznavat negovata versiia.

Kompilatsiia na iadroto i modulite, instalirane na modulite

Dotuk beshe nashata rabota. Sega sledvat niakolko magicheski komandi i s malko turpenie shte imame novo Linux-iadro.

    make dep

Proveriava za zavisimosti.

    make bzImage

Kompilira samoto iadro kato bzip imidzh. SHTe go namerite kato fail bzImage v direktoriiata 'arch/i386/boot'.

    make modules

Kompilira modulite.

    make modules_install

Instalira modulite.

Mozhem da gi dadem i navednuzh:

make dep bzImage modules modules_install

Vremeto, koeto otnema izpulnenieto na tezi komandi, e dobur test za proizvoditelnostta na vashiia kompyutur. Pri samata kompilatsiia v konzolata shte se poiavi tsiala orda ot suobshteniia, ot koito mozhete da nauchite dokude e stignala protsedurata (naprimer, koi modul se kompilira v momenta) i dali vsichko preminava po plan. Fatalni greshki izlizat riadko i obiknoveno govoriat za nepravilno konfiguriran ili povreden sors, vuzmozhno e da se dulzhat i na harduerni problemi (greshki v modulite na pametta, forsiran protsesor). Po-chesti obache sa preduprezhdeniiata (warnings), koito ne triabva da vi pritesniavat.

Sushtestvuva i drug nachin za avtomatizirano instalirane na iadroto - s komandata make install. Spetsialen skript shte se pogrizhi da kopira faila bzImage v direktoriiata /boot, shte go preimenuva po podhodiasht nachin i shte redaktira faila /etc/lilo.conf taka, che da mozhete da zarezhdate veche novoto iadro. E, mozhe da ne vi haresa nachinut, po koito shte go imenuva, no pone vi spestiava ruchnata nastroika, za koiato shte stane duma po-dolu. Imaite predvid, che ako izpolzuvate niakoia po-ekzotichna distributsiia, tazi komanda mozhe da ne se okazhe udachnoto reshenie. I ne zabraviaite, che osven iadroto, triabva da instalirate i modulite, taka che make modules_install si ostava.

Nastroika na lilo za zarezhdane na novoto iadro

Qdroto e gotovo, modulite sa instalirani. Idva vreme da kazhem na lilo, che imame novo iadro i triabva da go zaredi. Nezavisimo ot distributsiiata, koiato polzuvate, iadroto obiknoveno se namira v '/boot' pod ime vmlinuz. Vsushtnost vmlinuz poniakoga e simvolichen link kum samiia fail na iadroto. Taka, samo chrez redaktirane na linka mozhete da startirate novoto iadro, bez da se nalaga do promeniate nastroikite na lilo. V linuxconf sushto ima modul za nastroika na lilo, koito obache kato che li otnema poveche vreme, otkolkoto ako prosto otvorite /etc/lilo.conf i napishete dve-tri dumi.

Eto vi posledovatelnostta ot komandi, s koito mozhete da podgotvite novoto iadro za zarezhdane:

1. Variant s pripokrivane na originalnoto iadro (ne e preporuchitelen)

cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz

cp /usr/src/linux/System.map /boot

Pri tova polozhenie /etc/lilo.conf ne bi triabvalo da se nuzhdae ot redaktirane, zashtoto toi po podrazbirane zarezhda vmlinuz kato originalno iadro. Predi tova se uverete, che naistina e taka, razbira se, kato proverite dali v /etc/lilo.conf e napisano 'image = /boot/vmlinuz'.

Togava triabva samo da startirate:

lilo

2. Variant bez pripokrivane na predishnoto iadro (preporuchitelen)

Znaem, che po nachalo lilo tursi i zarezhda /boot/vmlinuz. Mozhem da preimenuvame staroto iadro:

mv /boot/vmlinuz /boot/vmlinuz.old

mv /boot/System.map /boot/System.map.old

Da kopirame novoto:

cp /usr/src/linux/arch/i386/boot/vmlinuz.new /boot

cp /usr/src/linux/System.map /boot/System.map.new

Da suzdadem simvolichen link kum nego pod imeto vmlinuz:

ln -s /boot/vmlinuz.new vmlinuz

ln -s /boot/System.map.new System.map

Da dobavim v /etc/lilo.conf optsiia za zarezhdane na staroto iadro po izbor, v sluchai che ne trugne novoto:

image=/boot/vmlinuz.old # Imeto na faila-iadro

label=OldLinux # Proizvolno naimenovanie na iadroto

root = /dev/hda1 # root-diala na vashata Linux-instalatsiia

I da izpulnim komandata:

lilo

Gotovo, vasheto iadro e podgotveno za zarezhdane. Sega restartiraite kompyutura i opitaite dali shte se zaredi pravilno. Ako neshto se oburka, restartiraite s vulshebnata klavishna kombinatsiia i izberete za zarezhdane staroto iadro. Razbira se, ako distributsiiata vi e po-nestandartna, shte triabva sami da proverite kude e razpolozheno iadroto za zarezhdane, kato razgledate shtatelno faila /etc/lilo.conf i se zapoznaete s man lilo.

Pri zarezhdaneto na novoto iadro prosledete vnimatelno suobshteniiata - dali razpoznava i konfiguira pravilno harduera, kakto i na init-sistemata - vsichko li e [OK]?.

Uspeh na vsichki eksperimentatori!



<< Kirilizatsiia na Debian 3.0 i KDE | Kompilatsiia na Linux-iadroto, chast V: Network device support >>