вторник, 1 ноября 2011 г.

Собираем ядро 3.1 с патчами pf-kernel.

Вышла первая версия патчсета pf-kernel для свежего ядра Linux v3.1.

В этой версии:
  • стабилизационный патч Linux v3.1.1;
  • патчсет от Кона Коливаса (Con Kolivas) 3.1.0-ck2, включающий в себя свежайшую версию планировщика процессов BFSv415;
  • планировщик ввода-вывода BFQ v3-r1;
  • альтернативная подсистема гибернации TuxOnIce по состоянию на v3.1-rc8;
  • патч, уменьшающий энергопотребление системы до уровня Linux v2.6.37.
Сборка под 11.10 не составляет трудностей. Во первых удовлетворим зависимости:
sudo apt-get -y install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge git-core libncurses5 libncurses5-dev libelf-dev libdw-dev binutils-dev kernel-package
sudo apt-get build-dep kernel-package linux-meta
Затем добудем ядро и сам патч. Установка патча подразумевается на чистое ядро 3.1 (не 3.1.1). Скачиваем с kernel.org. Распакуем оба архива в ~/pf-kernel


Приступим к сборке.
  • Получим привилегии суперпользователя:
sudo -s
  • Перейдем в директорию с исходниками ядра.
cd ~/pf-kernel/linux-3.1
  • Применим патч
patch -p1 --dry-run < ../patch-3.1.1-pf #Запустит патч без применения изменений. Для проверки.
patch -p1 < ../patch-3.1.1-pf #Применим патч.
  • Скопируем текущий конфиг ядра.
cp /boot/config-`uname -r` .config
  • Чтобы собрать без поддержки лишних модулей:
В ядрах >=2.6.32 добавили скрипт, который сравнивает загруженные в данный момент модули и те, чья поддержка включена в ядре, если находит лишние модули, то он их отключает, сохраняя настройки в «.config»
make localmodconfig
  • Чтобы собрать ядро, используя старый конфиг:
make oldconfig
При сборке будут заданы несколько вопросов по поводу добавления изменений. Примем BFQ, BFC, TuxOnIce и прочие плюшки.
  • Для экстремалов можно собрать конфиг с нуля.
make menuconfig
  • Почистим директорию с исходниками от мусора.
make-kpkg clean
  • И наконец соберем само ядро (на core2duo@1.3GHz заняло всего час).
CONCURRENCY_LEVEL=`getconf _NPROCESSORS_ONLN` fakeroot make-kpkg --initrd kernel_image kernel_headers

После сборки в директории ~/pf-kernel образуются два deb-пакета с ядром. Просто установим их:
dpkg -i linux-*
И перезагрузимся. В случае неудачи - при загрузке выбрать старое ядро и удалить новое.

Комментариев нет :

Отправить комментарий