Читаем Linux для пользователя полностью

На этом предварительные предупреждения сделаны, и я перехожу к изложению пошаговых инструкций по компиляции и установке нового ядра. В дальнейшем предполагается, что все описываемые действия выполняются с правами суперпользователя root, и что домашним каталогом является каталог /root.

<p>17.5. Семь шагов к новому ядру</p><p>17.5.1. Получение и разархивация ядра</p>

Исходные тексты новой версии ядра можно скачать с сайта ftp.kernel.org. Как уже было сказано, bzip2-архив исходных кодов ядра версии 2.4.2 имеет объем более 20 Мбайт, так что скачать его - тоже еще проблема. Но перекачивать исходные тексты необходимо только в том случае, если вы желаете установить новую версию ядра. Если же вы просто хотите перекомпилировать существующее ядро (скажем, из-за того, что необходимо обеспечить поддержку какого-то протокола или нового оборудования), то можно обойтись и без перекачки пакета из Интернета, поскольку с дистрибутивами обычно поставляются и исходные коды (на втором диске или просто в подкаталоге SRPM). Кроме того, даже если вы захотели скомпилировать ядро новой версии, существует возможность сократить объем информации, которую необходимо скачивать из Интернета, но об этом мы поговорим в последнем разделе данной главы. А пока будем предполагать, что вы тем или иным способом получили полный пакет исходных кодов ядра.

Поместите архив в каталог, в котором вы имеете достаточные права, например, в ваш домашний каталог. Не используйте каталог /usr/src/linux для разархивации исходников! Этот каталог содержит (обычно неполный) набор заголовочных файлов (kernel headers), которые используются заголовочными файлами библиотек (the library header files). Они должны соответствовать установленным в системе библиотекам, поэтому не стоит заранее вносить путаницу в эти файлы.

Распакуйте архив командой:

[root]# bzip2 -d linux-2.4.XX.tar.gz | tar xvf -

(где "XX" надо заменить на номер версии ядра, у меня была просто 2). Если вы скачали архив, сжатый программой gzip, то, естественно, команда будет иметь вид:

[root]# gunzip linux-2.4.XX.tar.gz | tar xvf -

Можно также воспользоваться следующим вариантом команды:

[root]# tar xvzf linux-2.4.2.tar.gz

В результате в текущем каталоге появится новая директория linux. Сделайте ее текущей с помощью команды cd. 17.5.2. Обновление программного обеспечения

Если вы владеете английским, то неплохо просмотреть файл README в каталоге linux и файлы Changes и Configure.help в подкаталоге linux/Documentation. Впрочем, тем кто не владеет английским, тоже необходимо заглянуть по крайней мере в файл linux/Documentation/Changes. Дело в том, что в этом файле приведен состав программного обеспечения, необходимого для компиляции нового ядра.

В приводимой ниже табл. 17.1 показан его состав для случая ядра 2.4.2.

Таблица 17.1. ПО, необходимое для компиляции нового ядра

ПрограммаВерсияКак определить версию
Gnu C2.91.66gcc --version
Gnu make3.77make --version
Binutils2.9.1.0.25ld -v
util-linux2.10ofdformat --version
Modutils2.4.2/sbin/insmod -V
e2fsprogs1.19/sbin/tune2fs
Reiserfsprogs3.x.0breiserfsck 2›&1|grep reiserfsprogs
pcmcia-cs3.1.21cardmgr -V
PPP2.4.0pppd --version
isdn4k-utils3.1pre1isdnctrl 2›&1|grep version

Приведенные в правой колонке команды позволяют произвести проверку того, что необходимый пакет имеется, и имеет соответствующую версию (более новые версии не возбраняются). Не все перечисленные в этой таблице пакеты безусловно необходимы для компиляции ядра: если в Вашей системе нет PCMCIA-карт (PC Card), например, то вам не нужен и пакет pcmcia-cs. Я посчитал ненужными последние 4 пакета (reiserfs и pcmcia у меня нет, а удаленный дозвон и соединение по isdn я не использую), а для остальных пакетов нашел на rpmfind.net последние версии и установил их. Все указанные пакеты установились из rpm-файлов без проблем.

Примечание

Совет для "чайников" вроде меня: используйте команду rpm -Uhv paket_name, а не rpm -i paket_name.

<p>17.5.3. Конфигурирование будущего ядра</p>

Следующий этап заключается в конфигурировании будущего ядра. Если вы при установке обновленных версий ПО покинули каталог linux, то вернитесь в него (например, с помощью команды cd ~/linux).

Примечание

В некоторых случаях перед началом конфигурирования ядра необходимо выполнить команду make mrproper. Необходимо это бывает тогда, когда этот каталог уже использовался для компиляции ядра и надо удалить следы былых, может быть ошибочных, действий, в частности, ранее созданные файлы с расширением .o.

Перейти на страницу:

Похожие книги