Linux Kernel HOWTO: Компиляция ядра

Previous Next Table of Contents

## 4. Компиляция ядра

## 4.1 Очистка и создание зависимостей

Когда настроечный скрипт закончит свою работу, он также скажет вам, чтобы вы выполнили ``make dep`' и (вероятно) ``clean`'. Так что выполните ``make dep`'. Он обеспечит, чтобы все зависимости, такие как файлы заголовков, находятся на месте. Эта процедура не длиться долго, если у вас не медленный компьютер. Для более старых версий ядер, при окончании вы должны выполнить ``make clean`'. Эта процедура удаляет все объектные файлы и некоторые другие вещи оставшиеся от предыдущей компиляции. В любом случае, не забывайте выполнить этот шаг до начала перекомпиляции ядра.

## 4.2 Время компиляции

После выполнения `dep` и `clean`, вы можете выполнять ``make zImage`' или ``make zdisk`' (эта часть процесса занимает длительное время). ``make zImage`' скомпилирует ядро и оставит в директории `arch/i386/boot` файл названный ``zImage`' (среди других вещей). Это новое сжатое ядро. ``make zdisk`' делает тоже самое, но также помещает новый файл `zImage` на гибкий диск, который вы должны вставить в устройство ``A:''. ``zdisk`' является довольно удобным для тестирования новых ядер; если оно не загружается (или просто работает неправильно), то просто вытащите дискету из дисковода и загрузитесь со старым ядром. Это может быть также удобным в том случае, если вы случайно удалили ядро (или сделали что-нибудь подобное по своему разрушительному действию). Вы также можете использовать его для установки новых систем, в том случае когда вы просто делаете дамп с одного диска на другой(``это все и больше! Теперь, сколько вы могли бы купить?'').

Все, даже сравнительно недавние ядра являются сжатыми, поэтому они имеют букву ``z`' в начале имени. Сжатое ядро автоматически разжимается при выполнении.

## 4.3 Другие вещи, можно сделать с помощью ``make''

``make mrproper`' выполнит более интенсивную очистку дерева исходных текстов. Иногда она является необходимой; вы можете выполнять эту команду после каждого наложения заплаток. ``make mrproper`' также удалит ваши файлы конфигурации, так что вы можете захотеть сохранить резервную копию вашего файла (`.config`), если вы считаете его ценным.

``make oldconfig`' попытается настроить ваше ядро используя старый файл настроек; он проделает путь по процессу конфигурации ``make config`' вместо вас. Если у вас нет скомпилированного ядра или у вас нет старого файла настроек, то вам скорее всего не надо делать этой операции, поскольку вы вероятно захотите изменить настройки по умолчанию.

Смотрите раздел о модулях для описания операции ``make modules`'.

## 4.4 Установка ядра

После того как вы установили, что новое ядро работает так как вам надо, наступает время его установки. Большинство людей для этого использует LILO (Загрузчик Linux). Команда ``make zlilo`' установит новое ядро, запустит для него LILO, и все будет готово к перезагрузке, НО ТОЛЬКО если lilo настроено правильно в вашей системе: ядро располагается в файле `/vmlinuz`, lilo находится в директории `/sbin`, и ваш конфигурационный файл lilo (`/etc/lilo.conf`) отражает эти условия.

Иначе вам придется использовать LILO непосредственно. Это довольно легкий в установке и в работе пакет, но он имеет тенденцию вводить в замешательство людей своим конфигурационным файлом. Посмотрите конфигурационный файл (либо `/etc/lilo/config` для старых версий либо `/etc/lilo.conf` для более новых версий), и посмотрите текущие настройки. Конфигурационный файл выглядит примерно так:

        image = /vmlinuz
            label = Linux
            root = /dev/hda1
            ...

``image =`' указывает на установленное в настоящее время ядро. Большинство людей используют `/vmlinuz`. ``label`' используется для определения какое ядро или операционная система будет загружаться, и ``root`' это корневой раздел отдельной операционной системы. Сделайте резервную копию вашего ядра и скопируйте только что сделанное ядро на его место (вы должны выполнить команду ``cp zImage /vmlinuz`' если вы используете ``/vmlinuz`'). Затем перезапустите lilo -- на более новых системах вы можете просто запустить ``lilo`', но на старых вы должны выполнить `/etc/lilo/install` или даже `/etc/lilo/lilo -C /etc/lilo/config`.

Если вы хотите знать больше о настройке LILO или у вас его нет, то возьмите самую новую его версию с вашего любимого сервера ftp и следуйте инструкциям.

Для загрузки одного из ваших старых ядер на жестком диске (еще один способ обезопасить себя при использовании нового ядра), скопируйте нижеприведенные строки (и включите) ``image = xxx`' в файл конфигурации LILO в конце файла, и измените ``image = xxx`' на ``image = yyy`', где ``yyy`' это полный путь вашего старого ядра. Затем измените ``label = zzz`' на ``label = linux-backup`' и перезапустите `lilo`. Вам может быть будет необходимо поместить строку в конфигурационный файл, которая выглядит так ``delay=x`', где x это количество десятых долей секунды, на которое LILO задержится до загрузки, так что вы можете прервать его выполнение (например при помощи клавиши shift), и набрать метку имя сохраненного образа загрузки (в случае, если произойдут разные неприятные вещи).

Previous Next Table of Contents