Чтение онлайн

на главную - закладки

Жанры

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

Установка из 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
— текстовая утилита (рис. 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.

3.8.4. Настройка загрузчика

Теперь посмотрим, как можно настроить загрузку нового ядра, оставив при этом возможность пользоваться старыми версиями. Для этого нужно отредактировать файл /etc/lilo.conf, добавив в конец файла следующие строки:

image=/boot/vmlinuz-2.6.10

label=Linux Kernel 2.6.10

initrd=initrd-2.6.10.img

read-only

root=/dev/hda0

В первой строке находится путь к ядру. Вы должны указать правильный путь, а точнее, имя файла, которое будет отличаться номером версии. Параметром

label
задается заголовок нового ядра, который вы будете видеть при загрузке системы. Параметр
initrd
определяет загрузчик. Последняя строка указывает корневой диск. Введите такое же значение, как и у старого ядра. В вашем загрузчике уже должна быть подобная строка, и она одинакова для обеих систем.

Поделиться:
Популярные книги

На границе империй. Том 10. Часть 6

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 6

Антимаг его величества. Том III

Петров Максим Николаевич
3. Модификант
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Антимаг его величества. Том III

Герой

Бубела Олег Николаевич
4. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Герой

Печать Пожирателя

Соломенный Илья
1. Пожиратель
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Печать Пожирателя

На границе империй. Том 7. Часть 2

INDIGO
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
На границе империй. Том 7. Часть 2

Шайтан Иван 3

Тен Эдуард
3. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
7.17
рейтинг книги
Шайтан Иван 3

Изгой Проклятого Клана. Том 2

Пламенев Владимир
2. Изгой
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Изгой Проклятого Клана. Том 2

Твое сердце будет разбито. Книга 1

Джейн Анна
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Твое сердце будет разбито. Книга 1

Играть... в тебя

Зайцева Мария
3. Звериные повадки Симоновых
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Играть... в тебя

Князь

Шмаков Алексей Семенович
5. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
5.00
рейтинг книги
Князь

Приказано выжить!

Малыгин Владимир
1. Другая Русь
Фантастика:
боевая фантастика
попаданцы
альтернативная история
7.09
рейтинг книги
Приказано выжить!

Личный аптекарь императора

Карелин Сергей Витальевич
1. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Личный аптекарь императора

Серпентарий

Мадир Ирена
Young Adult. Темный мир Шарана. Вселенная Ирены Мадир
Фантастика:
фэнтези
готический роман
5.00
рейтинг книги
Серпентарий

Цеховик. Книга 1. Отрицание

Ромов Дмитрий
1. Цеховик
Фантастика:
попаданцы
альтернативная история
5.75
рейтинг книги
Цеховик. Книга 1. Отрицание