Portál AbcLinuxu, 1. května 2025 15:18
Jednoduchý postup, který vás provede konfigurací, kompilací a instalací jádra z nadcházející řady 2.6. Překlad článku Jeremyho Andrewse z kerneltrap.org.
Když začaly vycházet -test verze 2.6 kernelů, chtěl jsem napsat podobný návod sám. Naštěstí jsem však neměl dost času a pár lidí mě předběhlo s články, které jsou zajímavější a přehlednější než to, co bych sepsal já. Rozhodl jsem se proto toto krátké howto od Jeremy Andrewse přeložit, místo abych psal článek nový. Jedinou novou věcí jsou tak screenshoty.
Během dvou dnů, kdy jsem text překládal, vyšla další verze (-test5) jádra. V článku ponechávám odkazy a zmínky o verzi -test4, která figuruje v originále. Samotný postup je však úplně stejný a toto malé zpoždění by při kompilaci/instalaci podle návodu nemělo hrát roli.
Odkazy v hranatých závorkách směřují na stránky kerneltrap.org.
Překlad Robert Krátký.
Jeremy Andrews, kerneltrap.org, originální verze
Každý, kdo posledních několik měsíců sledoval vývoj linuxového jádra, slyšel o začleňování jedné skvělé funkce za druhou do zatím nevydaného jádra 2.6. Mezi významné nové věci, se kterými se uživatel setká, patří výsledky práce těchto lidí:
Protože jsem měl pár nocí zpátky trošku volného času, rozhodl jsem se vyzkoušet poslední kernel 2.6.0-test4 na svém stárnoucím stolním počítači s 550MHz PIII a výsledek byl skutečně vynikající. S přibližujícím se finálním vydáním 2.6.0 je důležité, aby tento kernel vyzkoušelo velké množství uživatelů (aka testerů). Zvláště proto, že zatím je pro vývojáře stále lákavé vychytávat chyby v jádře a vylepšovat stabilitu. Jakmile jednou začne práce na vývojovém stromu 2.7, nevyhnutelně se bude mnoho úsilí znovu zaměřovat na nové funkce.
Účelem tohoto textu je poskytnout užitečné rady těm čtenářům, kteří zatím kompilují svá vlastní 2.4 jádra, ale ještě neučinili krok k 2.6. Jedná se stále o vývojovou verzi kernelu, takže můžete narazit na problémy, ale celková stabilita a výkon jsou působivé a doporučuji vám jej vyzkoušet ještě dnes.
Tento článek je zamýšlen pro uživatele Linuxu, kteří již nemají problémy s kompilováním svých vlastních jader 2.4. Pokud jste ještě nikdy kernel nekompilovali, navrhuji, abyste začali zde:
Kromě toho také doporučuji každému, pro koho je kernel 2.6 novou věcí, aby si prohlédli po-halloweenský dokument Davea Jonese (aka "2.5 - co očekávat").
Než začneme, nezapomeňte při testování vývojového kernelu čerstvě zálohovat všechna důležitá data. Ačkoliv jsem při používání 2.6.0-test4 nenarazil na žádné problémy, stále ještě tam jsou chybky...
Všechny oficiální verze zdrojového kódu linuxového jádra lze nalézt na http://kernel.org/. Najdete-li si nejrychlejší lokální zrcadlo, pomůžete rozdělit zátěž mezi ochotné hostitele zdrojového kódu kernelu. Seznam zrcadel kernel.org naleznete zde: http://kernel.org/mirrors/.
Ve chvíli, kdy píši tento text, je aktuálním jádrem 2.6 verze 2.6.0-test4 - vývojová verze. Dalším vydáním bude -test5, pak -test6 a tak dále, dokud autor Linuxu, Linus Torvalds, nerozhodne, že nastal čas vydat 2.6.0 - první oficiální verzi tolik očekávaného stabilního 2.6 stromu.
Po stažení zdrojového kódu je také velmi vhodné stáhnout GnuPG podpis a použít ho k ověření pravosti a platnosti zdrojových kódů vašeho nového kernelu. Více informací najdete najdete na: http://www.kernel.org/signature.html.
Absolutním minimem by mělo být pročtení README
v hlavním adresáři a souboru Changes
v adresáři Documentation
, které jsou oba distribuovány se zdrojovým kódem Linuxu.
README
v hlavním adresáři o sobě říká, že patří k vývojovému kernelu 2.5, protože 2.6.0-test je stále ještě součástí vývojové fáze (2.6.0 bez přípony -test bude prvním 2.6 kernelem). V tomto dokumentu naleznete mnoho dobrých rad pro úspěšné zkompilování linuxového kernelu. Text začíná takto:
"Toto jsou poznámky k vydání Linuxu verze 2.5. Pozorně si je přečtěte, protože vám poví, co je tohle všechno zač, vysvětlí instalaci kernelu a co máte dělat, když něco nebude v pořádku."
Soubor Documentation/
Changes
obsahuje popis nových požadavků vývojového kernelu 2.5 v podobě seznamu software, který musí být upgradován, aby správně fungoval s novým jádrem. Začíná slovy:
"Tento dokument je určen k poskytnutí seznamu minimálních verzí software nezbytných k provozu kernelů 2.5 a zároveň k poskytnutí stručných pokynů ohledně všech dalších 'vychytávek', na které mohou uživatelé narazit, když zkoušejí žít na Ostří nože."
Changes
Aby správně fungovaly s novým 2.6 kernelem, bude potřeba několik utilit upgradovat. O některé utility zmíněné v Changes
se nemusíte starat, protože mohou být například určené pro některé souborové systémy. Nicméně alespoň u těch následujících budete muset požadavek na minimální verzi splnit (nejčerstvější požadavky zkontrolujte v Documentation/Changes
-- mohlo dojít ke změně!):
Název: | Minimální verze: |
Jak zjistit verzi: |
Gnu C Compiler | 2.95.3 | gcc --version |
Gnu Make | 3.78 | make --version |
binutils | 2.12 | ld -v |
util-linux | 2.10o | fdformat --version |
module-init-tools | 0.9.9 | depmod -V |
procps | 2.0.9 | ps --version |
[procps 2.x] [procps 3.x] |
Následující utility jsou pro jednotlivé souborové systémy. Pokud používáte ext2 nebo ext3, nezapomeňte aktualizovat e2fsprogs, pokud používáte jfs, nezapomeňte aktualizovat jfsutils, atd...
Pozn. překl.: Oproti verzi -test4 se ze všech uvedených utilit u -test5 změnila pouze požadovaná verze jfsutils (1.1.3).
Název: | Minimální verze: |
Jak zjistit verzi: |
e2fsprogs | 1.29 | tune2fs |
jfsutils | 1.0.14 | fsck.jfs -V |
reiserfsprogs | 3.6.3 | reiserfsck -V 2>&1 | grep reiserfsprogs |
xfsprogs | 2.1.0 | xfs_db -V |
nfs-utils | 1.0.5 | showmount --version |
Pár dalších utilit, které je třeba aktualizovat, pokud je používáte:
Název: | Minimální verze: |
Jak zjistit verzi: |
pcmcia-cs | 3.1.21 | cardmgr -V |
quota-tools | 3.09 | quota -V |
PPP | 2.4.0 | ppd --version |
isdn4k-utils | 3.1pre1 | isdnctrl 2>&1 | grep version |
oprofile | 0.5.3 | oprofiled --version |
Pokud budete používat poprvé ovladače ALSA, nezapomeňte navštívit http://www.alsa-project.org/ a opatřit si čerstvé alsa-lib a alsa-utils.
Jednou z prvních změn, které si povšimnete, bude nový build systém [článek]. Starý způsob založený na Tk/Tcl ('xconfig') už neexistuje. Byl nahrazen novým Qt 'xconfig'. Těm, kterým Qt nevyhovuje, se nabízí 'gconfig' založený na Gtk.
Build metody pro 2.6:
To se zdá být stejné jako 'config' u kernelů 2.4. Coby nejprostší konfigurační metoda se vás pouze zeptá na každou konfigurační možnost, jednu po druhé... Vyžaduje 'bash' shell.
To se zdá být také stejné jako 'menuconfig' u 2.4. Jednoduchý způsob využívající curses.
Tento nový výchozí konfigurační systém používá knihovny Qt. Musím po svých zkušenostech říct, že je docela funkční a je snadné ho používat.
Tato možnost je variací na nový xconfig, která využívá Gtk knihovny místo knihoven Qt. Bohužel se mi při mém krátkém testování zdála poněkud chybová. Po spuštění vyhazoval program stále dokola stejnou chybu a poměrně brzy spadl.
Pozn. překl.: Když jsem gconfig zkoušel u verze -test5, fungoval bez problému také jen chvilku. Předpokládám tedy, že chyby, na které narazil Jeremy, ještě nebyly opraveny.
Zároveň chci připomenout, že pro využití obou způsobů grafické konfigurace budete potřebovat i vývojové (-dev, devel) balíčky příslušných knihoven.
Velkou užitečnost této metody oceníte při upgradu na novější a novější 2.6 kernely. Na první pohled vypadá stejně jako obyčejné 'make config', ale 'oldconfig' načte vaše stávající nastavení v .config
a na základě těchto nastavení za vás automaticky odpoví, takže budete muset zadávat jen nové volby. Pokud budete chtít využít této možnosti, nakopírujte svůj soubor .config
do adresáře kernelu a zadejte make oldconfig
.
Při první kofiguraci 2.6 kernelu pamatujte na následující rady ze souboru README uloženého v hlavním adresáři zdrojových kódů:
Mnoho lidí bude díky upgrade z 2.4 na 2.6 poprvé používat Advanced Linux Sound Architecture (ALSA), která nahradila OSS. Ačkoliv vás může lákat možnost, že prostě povolíte překonané OSS a nic nebudete měnit, bude vám asi stát za to, když ALSA zprovozníte. Díky ALSA emulaci OSS API to nebude tak těžké. Při konfiguraci kernelu nezapomeňte povolit volby OSS emulace (SND_OSSEMUL, SND_MIXER_OSS a SND_PCM_OSS). Zároveň je třeba povolit příslušný ovladač zvukové karty (v PCI devices) - já jsem si ho zakompiloval přímo do kernelu. A nakonec nezapomeňte stáhnout a nainstalovat poslední alsa-lib a alsa-utils.
Samotná kompilace je o jeden krok snazší než u 2.4, protože už nemusíte zadávat
make dep
. Nový kernel sestavíte příkazem make bzImage
. Pokud jste zvolili kompilaci některých modulů, budete také muset zadat make modules
a make modules_install
. Nebo to můžete zřetězit všechno dohromady, třeba takto make bzImage && make modules && make modules_install
.
Po začátku kompilace si jistě všimnete, že standardní proces kompilace je mnohem méně upovídaný než u 2.4. Poskytuje jednoduchá shrnutí namísto výstupu kompilátoru.
Teď, když máte jádro zkompilované, musíte ho nakopírovat na správné místo. Například na x86 ho najdete v arch/i386/boot
. Tento soubor a nový System.map
zkopírujte do /boot
. Třeba takto:
# pwd
|
Všiml jsem si, že můj nový 2.6 kernel je větší než poslední 2.4 kernel, který jsem kompiloval se stejnou verzí gcc. Je však možné, že mám povoleno více věcí:
-rw-r--r-- 1 root root 1094390 Aug 12 20:30 bzImage-2.4.21-ck3
|
Po nakopírování jádra tam, kam patří, musíte nakonfigurovat zaváděč systému (boot loader). Pravděpodobně používáte grub (manuál) nebo lilo (howto). Pokud si nejste jisti, jak váš zaváděč systému funguje, zkuste příslušný manuál (pozn. překl.: nebo článek o lilo na AbcLinuxu.cz).
Nesnažím se vás vystrašit, ale až do této chvíle jste neudělali nic, co by mohlo poškodit data na vašem disku. Nicméně, následující krok představuje nabootování nového kernelu, takže pro jistotu ještě jednou doporučuji pořídit aktuální zálohu všech důležitých dat, která na disku máte.
Teď přichází okamžik, na který jste čekali... Je čas restartovat počítač a otestovat svůj čerstvě zkompilovaný kernel 2.6. Pokud jste vše udělali správně, uvidíte několik milých bootovacích zpráv a naskočí login (pokud bootujete do initstate=3, poznáte nový kernel okamžitě...).
Pokud to byla první instalace ovladačů ALSA, můžete ověřit, zda je váš ovladač správně natažen příkazem cat /proc/asound/cards
. Například:
$ cat /proc/asound/cards
|
Jestli vidíte něco podobného, ale zvuk stále nefunguje, spusťte alsamixer
a nastavte hlasitost. Zprvu jsem nechápal, proč nestačí nastavit 'Master' - je potřeba ještě 'PCM' (/dev/dsp
), aby zvuk fungoval.
Až vyzkoušíte svůj nový kernel 2.6, byl bych rád, kdybyste přidali komentář se svými postřehy. Zároveň se nebudu bránit návrhům na vylepšení tohoto návodu.
Pokud s novým kernelem narazíte na problémy, podívejte se znovu do README
v hlavním adresáři zdrojových kódů kernelu, které má užitečnou kapitolu nazvanou "IF SOMETHING GOES WRONG". Bude-li třeba, podívejte se i na soubor v hlavním adresáři 'REPORTING-BUGS'. Než pošlete zprávu do velmi vytížené konference Linux kernel mailing list, nezapomeňte hledat v jednom nebo druhém z mnoha online lkml archívů, abyste zjistili, jestli už někdo problém nenahlásil a nebo ještě lépe, jestli už někdo neposlal opravu. A nakonec se můžete také zkusit zeptat na KernelTrap v 2.6 kernel fóru (pozn. překl.: a samozřejmě také v diskuzi na AbcLinuxu.cz).
Díky velkému množství reakcí čtenářů ve formě komentářů pod článkem a soukromých mailů mohu na konec tohoto textu přidat několik nahodilých, ale doufejme užitečných, rad. Pokud máte další tipy, nestyďte se mi poslat email. (Pokud už jste komentář poslali, ale ještě jsem neodpověděl, mějte prosím trpělivost...)
apt-get install module-init-tools
. Potěšilo mě, že Debian při bootu zjistí, jestli používat nové module-init-tools nebo starší modutils. I když, možná, že to dělají všechna distra." (pozn. překl.: neoficiální balíček module-init-tools pro Woodyho najdete zde). Copyright Jeremy Andrews & kerneltrap.org.
Input device support ---> <*> Serial i/o support (needed for keyboard and mouse) [*] Mice <*> PS/2 mouse [*] MiscPC Speaker support (1024) Horizontal screen resolution (768) Vertical screen resolution
Zdravím. Používám redhat 9.0 a patchované jádro 2.4.20, abych mohl používat šifrování Bluefish přes losetup. Pamatuji, že před kompilaci 2.4.20 mi syn zaváděl nějaké dva (možná tři) patche. Šlo o to, že standardní kernel nepodporuje silné šifrování, myslím, že to je omezení USA.
Je nutno stejnou operaci provést i v případě jádra 2.6? Má s tím někdo nějaké zkušenosti?
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.