Документ взят из кэша поисковой машины. Адрес оригинального документа : http://mavr.sao.ru/hq/sts/linux/doc/kernel-howto/Kernel-HOWTO-4.html
Дата изменения: Unknown
Дата индексирования: Fri Dec 28 19:42:52 2007
Кодировка: koi8-r

Поисковые слова: star
Linux Kernel HOWTO: Компиляция ядра Next Previous Contents

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

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

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

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

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

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

В старых ядрах вы не имели возможности скомпилировать bzImage; вместо этого был просто zImage. That option is at the moment still available, however, given the code size of newer kernels, it is now more or less mandatory to build a bzImage because the older methods can't handle a kernel that's just too large.

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

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

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

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

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

После того как вы установили, что новое ядро работает так как вам надо, наступает время его установки. Большинство людей для этого использует LILO (Загрузчик Linux). Команда `make bzlilo' установит новое ядро, запустит для него 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' это корневой раздел отдельной операционной системы. Сделайте резервную копию вашего ядра и скопируйте только что сделанное ядро (файл bzImage) на его место (вы должны выполнить команду `cp bzImage /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), и набрать метку имя сохраненного образа загрузки (в случае, если произойдут разные неприятные вещи).


Next Previous Contents