Скачиваем:
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.9.tar.bz2
tar -xf linux-2.6.32.9.tar.bz2
cd linux-2.6.32.9
Если Вам требуется самое новое актуальное ядро (сейчас это 2.6.33.7), а не то, что идет с долгой поддержкой, вызываем следующие команды (а такде не забудьте поставить kernel-package из testing):
cd /usr/src
export KERNEL_VERSION=2.6.33.7
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-$KERNEL_VERSION.tar.bz2
tar -xf linux-$KERNEL_VERSION.tar.bz2
cd linux-$KERNEL_VERSION
Копируем конфиг от активного ядра:
cp /boot/config-`uname -r` .config
Ставим ncurses, необходимый для работы конфигуратора:
apt-get install -y libncurses5-dev
Запускаем конфигуратор:
make menuconfig
Корректируем, что требуется, выходим из конфигуратора по Exit и подтверждаем сохранение конфига.
Ставим спец-софт для сборки .deb пакетов с ядром:
apt-get install -y kernel-package
Очищаем директорию от временных файлов, оставшихся от прошлой сборки(если она была):
make-kpkg clean
В случае 2.6.33 ядра и Debian Lenny (ну Ubuntu все должно быть ок) следующая операция у Вас завершится гарантированной неудачей, чтобы ее не постигнуть читаем здесь: http://phpsuxx.blogspot.com/2010/02/2633-makekpkg.html
Собираем (2 - означает число ядер в системе, ставьте на основе того, сколько у Вас их):
CONCURRENCY_LEVEL=2 make-kpkg --initrd --revision=1.2 --append-to-version=-mycompany-1-2 kernel-image
Кстати, есть фишка у make-kpkg - он Вам не даст собрать ядро, пока вы не сделали clean, что при частой пересборке ядра (например при тюнинге) очень неудобно, но решение есть:
vi /etc/kernel-pkg.conf
do_clean := NO
Теперь ждем, после окончания сборки в папке /usr/src будет создан пакет .deb c новым ядром, его нужно установить командой:
dpkg -i kernel-some-version.deb
После установки этого .deb пакета возможна проблема - initrd не будет создан автоматически (у меня она имела место лишь на Debian 5 Lenny), более подробно о баге: http://phpsuxx.blogspot.com/2010/09/make-kpkg-deb-initrd.html
Видел замечания относительно файла .config. Предлагают либо пользоваться "make oldconfig" после копирования .config, либо после "make menuconfig" воспользоваться кнопкой "Load" и открывать файл с конфигурацией ядра.
ReplyDeleteP.S.
Если комментарий не содержит информации соответствующей истине, предполагаю что владелец блога, удалит комментарий, либо не допустит к публикации, не хотелось бы вводить в заблуждение читателей.
Честно говоря, я не знаю, что делается при make oldconfig, вполне возможно что как раз то самое копирование конфига ядра из /boot. Если кто владеет полной информацией - милости прошу.
ReplyDeleteО make oldconfig.
ReplyDeleteБерется 1в1 текущая конфигурация ядра, плюс конфигуратор спрашивает о задействовании новых параметров, отсутствующих в старом ядре. Что бы использовать make oldconfig, старый конфиг нужно подсунуть руками.