LXF70:Frequently Asked Questions
|
|
|
Frequently Asked Questions: Ядро
Как узнать, какая версия ядра используется в моей системе?
Большая часть современных дистрибутивов построена на ядре 2.6, хотя некоторые все еще используют 2.4. Вы можете узнать версию ядра, работающего в вашей системе, с помощью команды uname. Введите:
$ uname –a
Вы увидите строки, напоминающие приведенные ниже:
Linux cr2 2.6.11.6 #1 SMP Mon Mar 28 18:48:32 BSt 2005 i686 GNu/Linux
Данная система работает с ядром 2.6.11.6, шестой ревизией версии 2.6.11. Создатели вашего дистрибутива могли внести в ядро свои изменения, так что его номер может не соответствовать простейшей схеме «2.6.x.y».
Oткуда я могу загрузить ядро, и что получу конечном итоге?
Вы можете загрузить tar-архив последней версии ядра с сайта Linux Kernel Archives, расположенного по адресу http://www.kernel.org. Скорее всего, вы захотите загрузить файл linux-2.6.11.6.tar.gz или аналогичный из каталога linux/pub/linux/kernel. В нем содержатся все исходные тексты ядра Linux соответствующей версии. Если в вашей системе уже установлено дерево исходных текстов ядра Linux, вы можете загрузить изменения (patch) между ним и следующей ревизией. Это избавит вас от необходимос ти загружать все дерево исходных текстов.
Должен ли я использовать ядро, поставляемое в комплекте с моим дистрибутивом или жемогу собрать свое собственное?
Ответ на этот вопрос лучше всего пояснить на примере. Red Hat распространяет ядра, на которые наложено множество исправлений, и некоторые из предлагаемых ими утилит не будут работать с ядрами, не содержащими данных изменений. аналогично, исправления сторонних разработчиков могут войти в конфликт с исходными текстами ядра Red Hat, поскольку они подразумевают наличие немодифицированного ядра.
В случае, если вам не нужны специфические возможности ядра, отсутствующие в редакции Red Hat, лучше использовать ядра из состава вашего дистрибутива. Конечно, если вам не требуются никакие исправления, включенные в ядро разработчиками дистрибутива, чистое ядро (также называемое «vanilla kernel») должно прекрасно работать.
Я получил tar-файл с моим ядром. Как мне скомпилировать его?
Сборка ядра обычно производится в каталоге /usr/src/linux, поэтому перейдите в /usr/src и распакуйте ядро командой
tar xzf ~/linux-2.6.11.6.tar.gz
После этого в каталоге linux будет содержаться исходный код ядра, предназначенного для компиляции.
Стандартная последовательность настройки, сборки и установки ядра такова:
cd linux make mrproper xconfig dep clean bzlilo modules modules_install
В первую очередь, необходимо настроить ядро. Конфигурация по умолчанию, в принципе, работоспособна, но вам, вероятно, потребуется выбрать некоторые опции, для ваших устройств, таких как звуковые карты или интерфейсы SCSI. Сохраняя резервную копию старой версии ядра доступной для загрузки через LILO, вы можете без опаски экспериментировать с настройками, чтобы найти те, что обеспечивают необходимые возможности системы.
Вызов bzlilo собирает ядро и копирует его в /vmlinuz. Чтобы установить новое ядро, выполните команду lilo. Необходимо также указать LILO использовать образ /vmlinuz вместо /boot/vmlinuz. При необходимости можно также скорректировать файлы Makefile ядра таким образом, чтобы образ устанавливался сразу же в каталог /boot.
Последние два параметра команды make в приведенном выше примере создают подгружаемые модули и размещают их в соответствующем месте.
После сборки ядра с поддержкой подгружаемых модулей, вы в любой момент можете изменить его конфигурацию, просто установив новый модуль.
Могу ли я добавить в ядро новые возможности?
Для ядра Linux имеется множество патчей, которые добавляют в него возможности, отсутствующие в стандартной версии. Один из основных проектов, распространяющих пакеты патчей к ядру — это WOLK (Working Overloaded Linux Kernel). Вместо того, чтобы накладывать исправления по одному, вы можете загрузить с WOLK (http://sf.net/projects/wolk) и применить к своему ядру один-единственный патч, объединяющий в себе множество более мелких исправлений.
Алан Кокс (Alan Cox) поддерживает линейку ядер, известную как -ac. Эти ядра содержат некоторые функции, которые еще не включены в основную версию ядра Linux, а также базовые исправления для ошибок, обнаруженных в стандартном ядре. Многие люди используют ядра -ac вместо официальных, однако, как и в случае с ядрам, подготовленными разработчиками дистрибутивов, наложение некоторых патчей на ядра серии -ac может привести к конфликту.