Самый простой способ установить новое ядро — использование RPM-пакета. Установка такая же, как и любой другой программы. Для обновления ядра можно выполнить команду:
rpm -Uvh ИмяПакета
Если вы хотите установить новое ядро, то ключ U
Из RPM-пакета устанавливаются только все необходимые файлы, модули и загрузчик, но чтобы можно было загрузиться с новым ядром, необходимо еще прописать ядро в загрузчик LILO.
Установка из RPM-пакета дает нам доступ к новым функциям и исправляет старые ошибки. Возможности ядра остаются теми же, что заложил разработчик. Максимальных преимуществ от обновления можно добиться только при компиляции ядра.
3.8.3. Компиляция ядра
При установке из 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
make menuconfig
.Рис. 3.6
. Текстовая утилита конфигурирования ядра menuconfig4. 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