Hlavní navigace

Triky pro začátečníky (13)

11. 12. 2000
Doba čtení: 4 minuty

Sdílet

Celé minulé číslo obsahovalo popis důležitých voleb. Dostali jsme se téměř na konec konfiguračního skriptu. Dnes kompilaci jádra doufám dokončíme.

Nacházíme se v menu Multimedia Devices, které obsahuje submenu Video4Linux a ovladače radio karet. V souborových systémech zvolte Second Extended FS, /proc FS a /dev/pts FS. Pak podle vašich potřeb ISO 9660 plus MS Joliet pro podporu CDROM a MSDOS FS plus VFAT pro přístup k datům z Windows. Pak tu máme ještě síťové protokoly. Jsou jimi NFS pro sdílení dat mezi Unixy, lepší varianta Coda, SMB pro sdílení Windows a NCP pro Novell. Můžete vyzkoušet i Native Language Support, pomocí něhož by mělo být možné automaticky konvertovat znakové sady názvů souborů, ale nějak jsem s touto volbou ještě neuspěl. Nevíte někdo, jak na to?

Na řadě jsou Console drivers. Zde ponechte vybránu volbu VGA Text Console a můžete i zapnout podporu framebufferu. Framebuffer je nesmírně populární mezi autory instalačních programů jednotlivých distribucí. Docela jim zjednodušuje práci, protože jim poskytuje univerzální grafické prostředí na jakékoliv VESA 2 kompatibilní grafické kartě. Na druhou stranu, Xy jsou rychlejší pod obyčejným XServerem. Pokud máte odvahu, zkuste si s tím pohrát. Nejdříve ale pořádně prostudujte dokumentaci. V sekci Sound si můžete vybrat ovladač své zvukové karty. Je jich zde vážně dost. Předposledním menu je USB. Přiznám se, že vzhledem ke stáří svého počítače nemám s USB žádné praktické zkušenosti. Budete si muset s ním poradit sami. A konečně poslední volbou jádra je MagicSysRq. Pomocí něj se aktivují kombinace kláves, které dokáží synchronizovat disky, zabít libovolný proces, odmontovat disk či rebootovat počítač.

V tuto chvíli máme již tu nejtěžší část naší práce za sebou. Zbývá nám již jen vlastní kompilace a instalace nového jádra. Před kompilací ale nesmíme zapomenout na ještě jeden krok: upravit závislosti. Laicky řečeno se při tomto kroku projeví naše volby během konfigurace. Závislosti vyřešíme příkazem make dep. Pak už můžeme spustit překlad jádra příkazem make bzimage. Kdysi se ještě používal parametr zimage, ale dnes je to jen relikt. Existují i jiné přepínače, například bzlilo, ale jejich použití nechám na samostudiu laskavého čtenáře. Po dokončení překladu jádra je ještě nutné přeložit i moduly. To uděláme příkazem make modules. Posledním krokem je make modules_install. Hotovo. Zbývá nám již jen jádro nainstalovat. Protože jsem člověk od přírody líný, snažím se každou periodickou činnost zautomatizovat. Proto používám následující skript kernelkompil:

#!/bin/bash
cd /usr/src/linux

make clean

make dep

echo "make bzImage" > chyba_kompilace

make bzImage 2>>chyba_kompilace || exit 1

echo -e a

echo "make modules" >> chyba_kompilace

make modules 2>> chyba_kompilace || exit 1

echo -e a

echo "make modules_install" >> chyba_kompilace

make modules_install 2>> chyba_kompilace || exit 1

echo "Done." >> chyba_kompilace

echo -e a

Příkazem time kernelkompil potom zkompiluji jádro i moduly a nakonec se i dovím, jak dlouho to trvalo. Veškeré chybové hlášky se přesměrují do souboru /usr/src/linux/chy­ba_kompilace, takže o ně nepřijdu. A pokud se náhodou někde objeví chyba, skript se přeruší. Během každé fáze na mě skript ještě zapíská.

Kompilace jádra je docela výpočetně náročná činnost, jádro 2.4.0-test11 se na počítači s procesorem AMD K6–233 a 128 MB RAM překládalo 18 minut. Pro zajímavost, na stejném počítači s poloviční pamětí se jádro 2.2.3 překládalo sedm a půl minuty.

Poslední fází je instalace jádra. Hotový kernel najdete v adresáři arch/i386/boot a jmenuje se bzImage. Tento soubor zkopírujte do adresáře /boot pod názvem bzImage-2.X.X, kde X.X odpovídá verzi jádra. Například takto: cp bzImage /boot/bzImage-2.4.0-test11. Dále potřebujeme zkopírovat tabulku se symboly jádra. Tu najdeme v hlavním adresáři jádra a jmenuje se System.map. Opět ji stejným způsobem zkopírujeme do adresáře /boot: cp System.map /boot/System.map-2.4.0-test11. Pokud je v adresáři /boot symbolický link jménem System.map, smažte jej a vytvořte nový na právě přidanou tabulku: rm System.map;ln -s System.map-2.4.0-test11 System.map.

Úplně posledním krokem je úprava zaváděče jádra – typicky lilo. Jeho konfigurační soubor najdete pod názvem /etc/lilo.conf. Takže jej otevřete v editoru a musíme jej upravit. Nejdříve si ale přečtěte manuálovou stránku man lilo.conf. Na začátku tohoto souboru najdete globální parametry, ujistěte se, že je mezi nimi timeout a nastavte jej aspoň na pět sekund: timeout=50. Zároveň přidejte i volbu prompt. Díky těmto dvěma parametrům získáte čas při bootu počítače. Takže pokud by jádro nefungovalo, stisknete při startu počítače klávesu Shift a tím zastavíte odpočet (pěti sekund). Pak klidně napíšete název původního jádra (nebo zadáte parametry novému jádru) a bezpečně nabootujete.

Teď musíme do tohoto souboru vložit ještě definici nového jádra. Obvykle bude stačit zkopírovat přes schránku původní definici a pouze přepsat cestu k jádru u kopie a název jádra u originálu. Takže můj soubor /etc/lilo.conf vypadá takto:

root_podpora

map=/boot/map

install=/boot/boot.b

prompt

timeout=40

linear

default=linux



image=/boot/bzImage-2.4.0-test11

        label=linux

        read-only

        root=/dev/hda5



image=/boot/vmlinuz-2.2.16-3.ext3

        label=zaloha

        read-only

        root=/dev/hda5

Pozor, nesnažte se tento text slepě opsat, berte jej jen jako inspiraci. Teď už stačí jen spustit příkaz /sbin/lilo, který v případě úspěchu vypíše něco jako:

Added linux *

Added old

Pokud jste tomuto výkladu neporozuměli, přečtěte si manuálovou stránku příkazu lilo. A pokud jste to pochopili, přečtěte si ji stejně. Lilo se musí spouštět vždy, když provedete nějakou změnu s jádrem či konfiguračním souborem /etc/lilo.conf. Pak už jen přebootujte počítač a vychutnejte si nové jádro. V případě problému stiskněte ten Shift a napište zaloha (název záložního původního jádra).

Byl pro vás článek přínosný?