Как да си компилираме и инсталираме ядро ?

в 1.5 от Валери Дачев

   "Компилиране на ядро" - това нещо звучи много страшно за всеки начинаещ Linux-ар. Всъщност, това е един не чак толкова сложен процес (особенно ако познавате добре компютъра си). Цялото това удоволствие може да се подели на три етапа, всеки от които ще разгледаме подробно по-долу.

0. Предговор

    Що е то ядрото и какво е компилиране ? Има хора, които това не е ясно, така че ще обясня тук.

    Ядрото е общото между всички дистрибуции на Linux - това е нещо, което зависи от Линус Торвалдс. Вие можете да се сдобиете безплатно с него. Обикновенно го получавате в неговия изходен код (така, както са го писали Линус Торвалдс, Алан Кокс и др.), но, за да се зареди операционната система, трябва ядрото да е в машинен код. Т.е. трябва на превърнете ядрото от изходен в машинен код, който процес се нарича компилиране. Това обаче позволява да компилирате само тези тези части, които са ви нужни. Например, вие може би не се нуждаете от поддръжка на SCSI адаптери и устройства или на поддръжка на повече от 1GB RAM. Благодарение вие можете да настроите така ядрото, че то да е най-оптимизирано за вашата конфигурация.

    Когато инсталирате някаква дистрибуция на Linux, вие получавате компилирано ядро, което обаче е направено така, че да поддържа почти всичко, което го прави доста неоптимизирано. Това предполага, че бихте искали да го прекомпилирате.

1. Подготовка

    Започвам с предположението, че, както повечето от Linux-арите, изходния код на ядрото ви се намира в директорията /usr/src/linux. Ако това не е така, просто ще ви се наложи да замествате имената да директориите. В повечето дистрибуции /usr/src/linux не е директория, я сомволична връзка ("symlink") към директорията съдържаща изходния код (който за краткост ще наричам "source", доколкото започват да ме мързят пръстите) на текущото ядро, примерно /usr/src/linux-2.2.13.

    Тук ще предположа, че вече сте си изтеглили пълно ядро (примерно 2.2.14) или само измененията в него (файла с последните ще наричам с по-популярното му название - "patch"). В зависимост от това какво точно сте изтеглили имате два вариянта на действие:

    И точно в този момент преключва първия етап от компилирането на ядрото.

2. Настройка и компилиране

    В тази част ще можете да проявите познанията си по английски. Но първо трябва да влезете в директорията със source-а:
machine:/usr/src# cd /usr/src/linux
    Конфигурирането на ядрото става с помощта на конфигурационите скриптове и програми, които вървят с него. Самите скриптове се пускат както следва:

    Искам да спомена за модулите. Те са аналог на драйверите под Microsoft (r) Windows (tm), с тази разлика там, че те могат да бъдат пускани и спирани по всяко време. Трябва добре да прецените кое колко често ви трябва и дали да го компилирате на модули. Уви, не всичко може. Но определено модулите помагат за смаляването на паметта заемана от ядрото по време на работа.

    По време на настройката разполагате информация за почти всяка опция, като в същото време можете да хвърляте по едно-две или там колкото искате очи на документацията на ядрото забутана в директорията /usr/src/linux/Documentation, където примерно можете да намерите информация за това как стъпка по стъпка да инсталирате мрежовата и/или звуковата си карта, както и много други дрънкулки по машината си, като, примерно, любителски радиоприемник.

    Забележка: За съжаление поддръжка за кафе-машина няма в ядрото, поради липсата на стандартизиран протокол за комуникация разработен от производителите на такива, но информация по въпроса можете да намерите във файла /usr/doc/Linux-mini-HOWTOs/Coffee (който, ако искате, бих превел).

    След като настроите ядрото, добре би било да запишете конфигурацията му във файл със "Save Kernel Configuration", за да можете при следваща преконфигурация на ядрото да я заредите с "Load Kernel Configuration".

    Вече свършихте с настройките. Точно по средата сте.

    Вече сте готови да инсталирате ядрото.

3. Инсталиране

    Сигурно се питате къде ви е ядрото, което след толкова писания уж сте компилирали. Е, добре, ядрото се намира в /usr/src/linux/arch/?!?/boot, където "?!?" е архитектурата ви (тя може да е "alpha", "sparc", "m86k", но в повечето случаи е "i386"). В зависимост какво е нивото на компресия на ядрото, което сте компилирали, файлът се казва:

    Преименувайте файла и го изкопирайте примерно в главната директория. В следващия пример ще предположа, че ядрото е 2.2.14 и е компилирано на i386-архитектура с "make bzImage":

machine:/usr/src/linux# mv arch/i386/boot/bzImage /bzImage-2.2.14

    Сега трябва да сложим модулите по местата им, т.е. да ги инсталираме:

machine:/usr/src/linux# make modules_install

    Следват настройки в зависимост от това какво ползвате, за да пуснете Linux:

    Остава ви само да рестартирате машината си и да си пуснете Linux-а.

Проблеми

    След като пуснете Linux-а си, може да се имате появяват някои досадни грешки при зареждането на модулите. В такъв случай направете следното:

    Рестартирайте своя Linux и вижте какво ще стане. Дано проработи. Ако не, пишете ми и кажете точно какво става - ще се опитам да ви помогна.

Друга полезна информация

    Като най-полезна информация (защо ли съм на това мнение ? :-)), можете да намерите този документ на официалната ми страница .

    Linux ядро можете да си изтеглите от http://www.kernel.org/ или http://www.kernelnotes.org/. В документацията, която върви с ядрото (/usr/src/linux/Documentation/*), можете да намерите информация за почти всичко свързано с него (включително и скриптове, които да автоматизират и улеснят процеса на компилиране).

    Голяма е вероятността с всичко останало да сте инсталирали и стандартната документация. Там можете да намерите следните файлове, в които можете да намерите доста полезна информация:

Други

    Авторът на това произведение (в мое лице), се не носи отговорност за каквито и да било (морални, физически, софтуерни, хардуерни, мийтуерни и т.н.) щети нанесени пряко или косвено от информацията публикувана в този документ. Т.е., правейки нещо в резултат на употребата на този документ, вие носите цялата отговорност за действията си. Този документ може да бъде разпространяван свободно съгласно поледната версия на GNU GPL във вида, в който е публикуван от Free Software Foundation.

    Авторът (отново моя милост, за изненада на всички) не приема упреци, а само предложения (и поздравителни картички).   


Версия: 1.5, 14.06.2000 г.
Автор: Валери Дачев
back