При установке из RPM-пакета мы получаем модульное ядро, в котором драйверы устройств могут быть как скомпилированы в одно целое с ядром, так и загружаться отдельно. Такое ядро медленнее в работе, но позволяет обновлять драйверы простой заменой модулей.
При компиляции можно выбрать и монолитное ядро. В этом случае в него будут встроены все необходимые драйверы, что повысит производительность, но это сделает невозможным обновление без перекомпиляции всего ядра.
Я рекомендую вам разобраться с компиляцией, потому что все свежие ядра выходят в исходных кодах, а издание RPM-пакетов иногда запаздывает на неделю и более. Все это время ваша система будет уязвимой.
Как правило, ядро поставляется в виде tar-архива. Сначала его надо разархивировать:
tar xzvf linux-2.6.10-rc2.tar.gz
Имя архива в вашем случае может отличаться. Я беру самое новое на момент написания книги ядро, которое специально скачивал с сайта www.redhat.com.
Архив распаковывается в директорию linux-2.6.10-rc2(имя архива без расширения tar.gz). Необходимо перейти в этот каталог, чтобы выполнять дальнейшие действия по компиляции из этой директории.
Для начала нужно сконфигурировать ядро, т.е. указать, что мы хотим получить в результате. Для этого можно использовать одну из четырех утилит:
1. oldconfig— сценарий, который устанавливает значения по умолчанию без нашего ведома. Для вызова используйте команду make oldconfig.
2. config— сценарий, который в командном интерпретаторе задает вам вопросы о параметрах будущего ядра и в зависимости от ваших ответов формируется конфигурационный файл для компиляции. Для вызова используйте команду make config.
3. menuconfig— текстовая утилита (рис. 3.6). Наиболее удобный вариант конфигурирования из консоли. Для вызова используйте команду make menuconfig.

Рис. 3.6. Текстовая утилита конфигурирования ядра menuconfig
4. qconf( xconfig) — графическая утилита (рис. 3.7). Наиболее удобный вариант конфигурирования ядра из графической оболочки Linux. Для вызова используйте команду make xconfig.

Рис. 3.7. Графическая утилита конфигурирования ядра qconf
Во время конфигурации с помощью любой из вышеперечисленных утилит вы должны указать, нужна ли поддержка загружаемых модулей.
Если вы хотите иметь два разных ядра одной и той же версии, например, с поддержкой модулей и без нее, то необходимо открыть файл Makefile и в параметре EXTRAVERSIONуказать различные значения:
□ EXTRAVERSION=-rc2-module— при компиляции ядра с модулями;
□ EXTRAVERSION=-rc2-nomodule— при компиляции ядра без модулей.
Лучше всего указывать в этом параметре, чем именно будет отличаться ядро. Например, помимо -rc2-moduleможно вставить дополнительное пояснение, но оно должно быть максимально коротким.
Теперь выполняем команды подготовки к компиляции:
make dep
make clean
Следующая команда отнимет достаточно много времени, потому что она будет компилировать непосредственно ядро. Можно отправляться готовить кофе и пить его медленно и печально. Если у вас слабый процессор и памяти менее 256 Мбайт, то процедура будет долгой.
Итак, для компиляции ядра выполним команду:
make bzImage
Во время компиляции вы увидите список собираемых в ядро модулей. Их очень много, поэтому процесс продолжительный.
Если вы выбрали компиляцию ядра с использованием загружаемых модулей, то следующие две команды должны выполнить эту операцию:
make modules
make modules_install
Если вы запретили использование модулей, то эти команды можно пропустить, потому что от них толку мало, а выполняются они долго.
Все модули располагаются в директории /lib/modules/. С помощью первой команды мы скомпилировали модули нового ядра, а вторая скопирует их в каталог /lib/modules/. Здесь вы найдете директории модулей для каждой из версий ядер, установленных в системе.
Теперь инсталлируем скомпилированное ядро. Для этого выполняем следующую команду:
make install
Эта команда скопирует все необходимые файлы для загрузки на свои места. Загляните в директорию /boot. Здесь можно найти несколько файлов, в том числе и загрузчик для новой версии ядра. Их легко можно определить по номеру. Например, я компилировал ядро 2.6.10, и у меня появились файлы vmlinuz-2.6.10 и initrd-2.6.10.img.
Читать дальше
Конец ознакомительного отрывка
Купить книгу