11.1 Kurz Linuxu - Priprava prekladu jadra
- STEFi - 2000-12-31 10:00:00
Tento serial o Linuxu byl vytvoren Milanem Cermakem v roce 2000 a s jeho svolenim zverejnen na strankach linux4all.misto.cz......
Příprava překladu jádra
=======================
Jako první se nabízí pochopitelná otázka, proč vůbec jádro překládat?
Důvodů může být několik.
1, Staré jádro nepodporovalo některou z vašich karet, ale nové jádro
už ano.
2, Vypuštěním nepotřebných ovladačů můžete zvýšit rychlost systému a
zmenšit velikost jádra (a tím uvolnit část paměti).
3, Nová verze jádra je rychlejší.
4, Nové jádro je prostě nové. (Častý důvod.)
Co pro to musíme udělat? Nejprve musíme sehnat zdrojový kód jádra.
Jakožto uživatelé Linuxu a licence GPL na to máme právo. Kódy jádra
jsou samozřejmě i součástí distribuce (aspoň o RedHatu a Debianu to
vím jistě). Druhým místem je internet. Primarním serverem je
"ftp.kernel.org", zrcadlem například brněnský "ftp.fi.muni.cz", kde se
aktuální zdrojové kódy objevují s půl az denním zpožděním.
Teď by asi nebylo od věci zmínit se o číslování verzí. Jde o to, že se
souběžně vydávají jak verze 2.0.xx, tak i 2.1.xx. Rozdíl je v tom, že
liché verze jsou vývojové a sudé jsou stabilní. Vývojové verze často
obsahují podporu pro různý nestandardní hardware, ale nejsou
odzkoušené a občas se i stane, že poslední verze nejde vůbec přeložit.
Stabilní verze jsou odzkoušené a, jak už název napovídá, stabilní.
Na serveru jsou verze odděleny různých adresářích. V každém z nich je
soubor (něco jako "LATEST-IS-2.0.36"), který udává číslo poslední
verze jádra.
!POZOR! Velikosti balíků jádra je pohybují kolem 8 MB u stabilní a
10 MB u vývojové řady.
Dále budeme pro překlad potřebovat programy "gcc", "binutils",
"bin86" a "make", případně některé další (což si RedHat a Debian
pohlídají). Všechny tyto programy by měly být součástí distribuce.
Když už tedy máme jádro stažené na svém počítači, rozbalíme ho do
adresáře "/usr/src" a zkontrolujeme, jestli jsou spravně nastaveny
symbolické linky v adresáři "/usr/include". To můžeme udělat například
příkazem:
ls -l linux asm scsi
mělo by se zobrazit toto:
asm -> /usr/src/linux/include/asm/
linux -> /usr/src/linux/include/linux/
scsi -> /usr/src/linux/include/scsi/
Může se stát, že tyto názvy jsou jmény adresářů. Ty pro jistotu
přejmenujte (třeba na "asm.old" apod.) a založte nové linky:
ln -s /usr/src/linux/include/asm asm
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/scsi scsi
V adresáři "/usr/src" musí existovat link "linux", který má uvazovat
na adresář se zdrojovými kódy jádra.
Těsně před překladem bude nevhodnější staré jádro zazálohovat. Ono by
to nové třeba taky nemuselo fungovat. Tím nejmenším je asi kopie
jádra. Pokud tedy máte jádro v adresáři "/boot", zkopírujte ho
například takto:
cp /boot/vmlinuz /boot/vmlinuz.old
Pak je ještě vhodné upravit LILO tak, aby bylo schopné zavést i staré
jádro, například volbou "old".
Poslední věcí, kterou je vhodné udělat (zvlaště pokud je nové jádro
stejné verze a bude používat moduly), je přejmenovat adresář, kde jsou
umístěny moduly současného jádra. Pokud je naše jádro verze "2.0.34",
bude to tedy adresář "/lib/modules/2.0.34", který přejmenujeme na
"/lib/modules/2.0.34.old".
Tím jsme dokončili přípravu a můžeme se pustit do konfigurace a
překladu nového jádra. Ale až příště.