LINUX.ORG.RU

Простая сборка Zen-Kernel в Debian & Ubuntu


2

1

Собственно,хотелось декораций консоли - FBcondecor,но с красивым Plymouth при загрузке,широкой поддержки Reiser4,BFS,BFQ,Numa,возможности записи на разделы UFS2 & HFS+,AUFS,PAE,ну и Boot Logo в виде спиралек Debian. Поиски не давали чего-либо готового,годного к использованию,а под дистрибутивные исходники ядра,либо не было в наличии нужных патчей,либо было невозможно их применить.Должен признать,что считал проект Zen распавшимся на форки Liquorix & Pf-kernel,создавшими у меня не очень приятное впечатление из-за своей урезанности,ИМХО... Однако,обнаружил живой и здравствующий Zen-Kernel на GitHub и сразу получилось всё и сразу:

#!/bin/sh
rm -rf zen*
sleep 2
git clone git://github.com/damentz/zen-kernel zen-kernel
sleep 2
wget -O reiser4-for-3.13.6.patch.gz 'http://sourceforge.net/projects/reiser4/files/reiser4-for-linux-3.x/reiser4-for-3.13.6.patch.gz/download'
sleep 2
gunzip reiser4-for-3.13.6.patch.gz
cd zen*
sleep 2
patch -p1 < ../reiser4-for-3.13.6.patch
sleep 2
cp -vf /boot/config-`uname -r` .config
sleep 2
make menuconfig
echo "Если все включил,так и будем собирать ведро,а если нет - жми CTRL+C !!! "
sleep 8
fakeroot make-kpkg -j3 --initrd --revision=3.13.8 --uc --us kernel_image kernel_headers
Как видно,собирается это дело легко и просто,требуется применить только один патч - для Reiser4 и я не стану расписывать,как потом прописать нужные модули в загрузку или как настроить обоину с 1 по 6 tty, однако есть несколько ньюансов,которые я хочу здесь описать.

Итак:

1.Правильно прописать ревизию при сборке ядра (3.13.8-zen+) не получается из-за Debian Policy, ругающихся на дефис или что-то-там-ещё...ЧЯДНТ?В итоге на выходе получаются пакеты с именами: linux-headers-3.13.8-zen+_3.13.8_i386.deb & linux-image-3.13.8-zen+_3.13.8_i386.deb - причём в составе linux-headers* имеется файл linux-headers.revision с неправильной версией ревизии и, как следствие,начинаются проблемы при пересборке модулей ядра с помощью DKMS.Решается просто:

sudo dpkg -x linux-headers-3.13.8-zen+_3.13.8_i386.deb pkg
sudo mkdir pkg/DEBIAN
sudo dpkg -e linux-headers-3.13.8-zen+_3.13.8_i386.deb pkg/DEBIAN
echo "3.13.8-zen+" | sudo tee pkg/usr/src/linux-headers-3.13.8-zen+/linux-headers.revision
sudo rm -f linux-headers-3.13.8-zen+_3.13.8_i386.deb
sudo dpkg-deb -b pkg linux-headers-3.13.8-zen+_3.13.8_i386.deb
sudo rm -rf pkg/*
В результате имеем пакет с правильной версией ревизии внутри.

2.В пакете самого ядра - linux-image-3.13.8-zen+_3.13.8_i386.deb - создаются ссылки lib/modules/3.13.8-zen+/{build,source} на локальный репозиторий git - исходный каталог сборки zen-kernel,а это ещё большая проблема для DKMS. Решается так же просто:

sudo dpkg -x linux-image-3.13.8-zen+_3.13.8_i386.deb pkg
sudo mkdir pkg/DEBIAN
sudo dpkg -e linux-image-3.13.8-zen+_3.13.8_i386.deb pkg/DEBIAN
sudo rm -f pkg/lib/modules/3.13.8-zen+/build
sudo rm -f pkg/lib/modules/3.13.8-zen+/source
sudo mkdir /usr/src/linux-headers-3.13.8-zen+
sudo ln -sfs /usr/src/linux-headers-3.13.8-zen+ pkg/lib/modules/3.13.8-zen+/build
sudo ln -sfs /usr/src/linux-headers-3.13.8-zen+ pkg/lib/modules/3.13.8-zen+/source
sudo rm -f linux-image-3.13.8-zen+_3.13.8_i386.deb
sudo dpkg-deb -b pkg linux-image-3.13.8-zen+_3.13.8_i386.deb
sudo rm -rf pkg/* && sudo rm -f /usr/src/linux-headers-3.13.8-zen+
sudo dpkg -i *.deb
В результате получаем пакет с правильными ссылками для DKMS.Почему возникает необходимость в подобных исправлениях - мне не ведомо...Однако,после внесения этих изменений и пересборки пакетов,ядро и заголовки ставятся без ошибок и работают, радуя приростом производительности и отзывчивости системы,и эстетическими бонусами от созерцания нескучных обоев в консоли ))

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.