FastNetMon

Показаны сообщения с ярлыком make-kpkg. Показать все сообщения
Показаны сообщения с ярлыком make-kpkg. Показать все сообщения

пятница, 17 сентября 2010 г.

суббота, 27 февраля 2010 г.

Сборка в Debian ядра с kernel.org

Идем на: http://kernel.org/, смотрим какое ядро "Latest Stable Kernel" и скачиваем его.

Скачиваем:

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