Шрифт:
Интервал:
Закладка:
Я экспериментировал на версии 2.2.16-22 из свежеустановленного дистрибутива ASPLinux Release Candidate 3 и устанавливал ядро версии 2.4.2. Поэтому все примеры в данной главе приводятся для случая, когда система уже работает на ядре версии 2.2.x и вы пришли к решению установить ядро версии 2.4.x.
17.4.2 Что надо знать до начала компиляции
Пожалуй, самое первое, к чему нужно быть готовым, приступая к компиляции ядра, - это то, что процедура эта длительная. Так что не рассчитывайте скомпилировать ядро "между делом", в свободную минутку. Заранее планируйте, что потратите на это несколько часов, иначе вы будете вынуждены прервать процедуру посредине.
Во-вторых, до начала компиляции ядра вам необходимо хотя бы в общих чертах представлять, какую именно конфигурацию аппаратного обеспечения будет обслуживать новое ядро, и решить, какие устройства будут обслуживаться самим ядром, а какие - модулями.
В-третьих, ядро версии 2.4.2 даже в архивированном (программой bzip2) виде занимает более 20 Мбайт, а после разархивации объем исходных текстов превышает 108 Мбайт. Еще столько же может потребоваться для промежуточного tar-архива, так что надо иметь не менее 250 Мбайт свободного места. Поэтому прежде чем приступить к компиляции, позаботьтесь о том, чтобы места на диске было достаточно.
В-четвертых, приготовьтесь отвечать на те вопросы, которые программа задаст вам в процессе конфигурирования ядра (а их около 500). Перевод всех этих вопросов, относящийся к версии 2.0.x ядра, можно найти в файле Configure.help, который находится по адресу http://nevod.perm.su/service/linux/doc/kernel/Configure.help.
Этот файл можно использовать и для более поздних версий, поскольку в основном вопросы, задаваемые при конфигурации, одинаковы, только появляются некоторые дополнительные в связи с появлением в ядре новых возможностей. Лучше всего скачать этот файл, распечатать его и использовать этот перевод в процессе конфигурирования ядра (см. ниже шаг 3). Если вы не смогли скачать этот файл, то после развертывания исходников ядра (см. ниже) вы найдете файл Configure.help в подкаталоге linux/Documentation. Имеет смысл просмотреть его (а лучше - распечатать) до начала конфигурирования, даже если вы не очень хорошо владеете английским.
На этом предварительные предупреждения сделаны, и я перехожу к изложению пошаговых инструкций по компиляции и установке нового ядра. В дальнейшем предполагается, что все описываемые действия выполняются с правами суперпользователя root, и что домашним каталогом является каталог /root.
17.5. Семь шагов к новому ядру
17.5.1. Получение и разархивация ядра
Исходные тексты новой версии ядра можно скачать с сайта 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 C 2.91.66 gcc --version Gnu make 3.77 make --version Binutils 2.9.1.0.25 ld -v util-linux 2.10o fdformat --version Modutils 2.4.2 /sbin/insmod -V e2fsprogs 1.19 /sbin/tune2fs Reiserfsprogs 3.x.0b reiserfsck 2›&1|grep reiserfsprogs pcmcia-cs 3.1.21 cardmgr -V PPP 2.4.0 pppd --version isdn4k-utils 3.1pre1 isdnctrl 2›&1|grep versionПриведенные в правой колонке команды позволяют произвести проверку того, что необходимый пакет имеется, и имеет соответствующую версию (более новые версии не возбраняются). Не все перечисленные в этой таблице пакеты безусловно необходимы для компиляции ядра: если в Вашей системе нет PCMCIA-карт (PC Card), например, то вам не нужен и пакет pcmcia-cs. Я посчитал ненужными последние 4 пакета (reiserfs и pcmcia у меня нет, а удаленный дозвон и соединение по isdn я не использую), а для остальных пакетов нашел на rpmfind.net последние версии и установил их. Все указанные пакеты установились из rpm-файлов без проблем.
Примечание
Совет для "чайников" вроде меня: используйте команду rpm -Uhv paket_name, а не rpm -i paket_name.
17.5.3. Конфигурирование будущего ядра
Следующий этап заключается в конфигурировании будущего ядра. Если вы при установке обновленных версий ПО покинули каталог linux, то вернитесь в него (например, с помощью команды cd ~/linux).
Примечание
В некоторых случаях перед началом конфигурирования ядра необходимо выполнить команду make mrproper. Необходимо это бывает тогда, когда этот каталог уже использовался для компиляции ядра и надо удалить следы былых, может быть ошибочных, действий, в частности, ранее созданные файлы с расширением .o.
Собственно конфигурирование выполняется командой make config. Конфигурация в этом случае будет производиться в текстовом режиме. Процедура конфигурации будет заключаться в том, что вы должны будете последовательно ответить на серию вопросов о том, какое значение присвоить определенному параметру. На каждый вопрос предлагается обычно несколько вариантов ответа. Допустимые варианты ответа предлагаются в виде символов, заключенных в квадратные скобки. Я думаю, что смысл символов "y" и "n" пояснять не требуется. Пояснения требуют символы "?" и "m".
Символ "?" присутствует среди возможных вариантов ответа на любой вопрос и позволяет получить подсказку (конечно, по-английски). Эти подсказки и составляют содержание файла Configure.help, который упоминался выше, и перевод которого (даже не в последней версии) я очень рекомендую вам иметь под рукой.
Если вы выбираете вариант "m", это означает, что драйвер соответствующего устройства будет сконфигурирован (и впоследствии скомпилирован) в виде отдельного подключаемого модуля.
Один из вариантов ответа на каждый вопрос представлен большой буквой, что означает, что он выбирается по умолчанию (когда вы не задаете явно свой вариант выбора, а просто нажимаете клавишу ‹Enter›).
- Linux From Scratch - Gerard Beekmans - Программное обеспечение
- Знакомьтесь: Windows 7 - Владимир Пташинский - Программное обеспечение
- Полное руководство по Microsoft Windows XP - Питер Нортон - Программное обеспечение
- Windows Vista. Для профессионалов - Роман Клименко - Программное обеспечение
- Windows Vista - Сергей Вавилов - Программное обеспечение