Для начала определим, чего мы хотим получить:
Итак, вы решили пересобрать ядро. Зачем? Ядра в системах от ALT Linux Team собраны так, чтобы быть универсальными. В них включены максимум функций и возможностей, причем все, что можно собрать в виде модулей, именно так и собрано. Поэтому если у вас возникли проблемы, например какое-либо устройство не работает, так как для него не найден (не загружен) модуль, не спешите пересобирать ядро». Возможно модуль просто «не загрузился автоматически» (если возможность автозагружать модули вообще когда-нибудь нормально заработает в Сизифе).
Если вам нужно специфическое ядро, например с поддержкой Real Time, Win 4 Lin и т.п., то просто проверьте альтовский репозитарий. Может там уже все есть?
Так зачем же пересобирать ядро? Причины могут быть такими:
Определимся.
Для начала определим, какое ядро сейчас запущено и что именно мы хотим собрать:
2.6.10-std26-smp-alt1
Итак, версия и тип ядра определены.
Для сборки ядра в системе должно быть установлено множество пакетов, например компилятор, скрипты для сборки RPM и т.п.Далее редполагается, что все это уже установлено, или вы знаете, как доустановить нужные пакеты.
Кроме того, нужны пакеты, связанные непосредственно с конкретным ядром:
Установку начнем несколько нетрадиционно, «с конца» и из-под пользователя. Установим src-пакет с настройками ядра и spec-файлом. Название таких пакетов начинается с kernel-image, далее следует тип ядра (wks, std, vs, wks26 и т.п.) и -up для однопроцессорных систем и -smp для мультипроцессорных.
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Необходимо получить 0B/56,6kB исходных архивов.
kernel-image-std26-smp
#############################################
После этого у вас в ~/RPM/SPECS появился файл kernel-image-std26-smp.spec — это инструкция для RPM по сборке пакетов с ядром и заголовками. В каталоге ~/RPM/SOURCES появился файл config-2.6.10-std26-smp — это настройки ядра по умолчанию.
Заглянем в начало spec-файла:
d_patch_list kernel-fix-build
d_patch_list kernel-fix-core
d_patch_list kernel-fix-acpi
d_patch_list kernel-fix-fs
d_patch_list kernel-fix-net
d_patch_list kernel-fix-drivers-net
d_patch_list kernel-fix-drivers-usb
d_patch_list kernel-fix-drivers-ide
d_patch_list kernel-fix-drivers-ieee1394
d_patch_list kernel-fix-drivers-sound
#add_patch_list kernel-fix-drivers-serial
d_patch_list kernel-fix-drivers-parport
d_patch_list kernel-fix-security
# Feathures:
d_patch_list kernel-feat-drivers-video-splash
d_patch_list kernel-feat-drivers-input
d_patch_list kernel-feat-drivers-lirc
d_patch_list kernel-feat-drivers-pktcdvd
d_patch_list kernel-feat-fs-squashfs
d_patch_list kernel-feat-net-ppp-mppe
d_patch_list kernel-feat-evms-nodm
Это список пакетов, которые необходимо установить для сборки вашего ядра. Перейдем в режим суперпользователя и установим сначала исходники ядра:
[root at localhost root]# apt-cache search kernel-source
kernel-source-2.4.26 – Linux kernel 2.4.26rel sources
kernel-source-2.6.10 – Linux kernel 2.6.10 sources
........
........
и установим их
[root at localhost root]# apt-get install kernel-source-2.6.10
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие НОВЫЕ пакеты будут установлены:
kernel-source-2.6.10
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 1 не будет обновлено.
..............
..............
А затем аналогичным образом установим все остальные пакеты kernel-fix* и kernel-feat* из вышеприведенного списка.
Выйдете из режима суперпользователя, т.к. сборки RPM-пакетов по соображениям безопасности невозможна из-под суперпользователя. В принципе уже все готово для сборки ядра. Но вы наверняка захотите проделать некоторые дополнительные настройки.
Откройте в вашем любимом редакторе spec-файл. Исправьте строку
Теперь можно приступить к сборке:
rpm -bb kernel-image-std26-smp.spec
Если все сложилось удачно, то будут удалены файлы, которые могли остаться после предыдущих сборок, распакованы исходные коды ядра, приложены все необходимые патчи и запущен текстовый интерфейс для настройки параметров ядра. Если этого не произошло, внимательно читайте вывод в консоли и принимайте меры.
После того, как вы покинете конфигуратор ядра, начнется сборка. Тут самое время откинуться на спинку кресла, расслабиться и получать удовольствие от созерцания этого завораживающего процесса.
Если сборка ядра и модулей прошла без ошибок и RPM-скрипты отработали исправно, то в ~/RPM/RPMS/i686 вы обнаружите пакеты
kernel-image-std26-smp-2.6.10-alt1.i686.rpm
kernel-headers-std26-smp-2.6.10-alt1.i686.rpm
То есть вы получили пакет с ядром kernel-image и два пакета с заголовками. Осталось только установить их:
cd /home/<user-name>/RPM/RPMS/i686
rpm -i ./kernel-image-std26-smp-2.6.10-alt1.i686.rpm
rpm -i ./kernel-headers-std26-smp-2.6.10-alt1.i686.rpm
rpm -i ./kernel-headers-modules-std26-smp-2.6.10-alt1.i686.rpm
При установке ядра RPM автоматически пропишет новую запись в /etc/lilo.conf и запустит lilo
Так что вам наверняка захочется заглянуть в /etc/lilo.conf и поправить там что-нибудь (но и «по умолчанию» все должно хоты бы загрузиться). После правки /etc/lilo.conf не забудьте запустить lilo.
reboot