Главная > Linux > Сборка ядер с kernel.org в CentOS 5

Сборка ядер с kernel.org в CentOS 5

Сегодня поговорим о сборке ядер с Kernel.Org в CentOS 5 Linux. Для чего это необходимо, и не обходимо ли вообще, на это вопрос педлагаю ответить самому читателю, я же опишу только момент сборки и установки ядна и включение на уровне ядра функционала Full NAT. И вот об этом читайте под катом.

С чего начнем? Начнем с того что установим все необходимые запвисимости:

1
yum install -y ncurses-devel gcc make rpm-build redhat-rpm-config

Далее скачаем и распакуем свежее ядро (на момент написания статьи 2.6.39.1):

1
2
3
4
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.1.tar.bz2
tar -xf linux-2.6.39.1.tar.bz2
cd linux-2.6.39.1

Косле копируем конфиг активного ядра:

1
cp /boot/config-`uname -r` .config

И запускаем конфигуратор:

1
make menuconfig

В меняю конфигуратора выбираем

1
2
3
4
5
6
General setup ---> enable deprecated sysfs features which may confuse old userspace
Networking support --->
Networking options --->
Network packet filtering framework (Netfilter) --->
Core Netfilter Configuration --->
Netfilter connection tracking support ВКЛЮЧАЕМ

после этого в менюшке уровнем выше

1
IP: Netfilter Configuration --->

Появляется пункт Full NAT. Должно все заработать, хотя я для теста включил все, что было в разделах «Core Netfilter Configuration» и «IP: Netfilter Configuration»

Создаем папки для сохранения результирующего rpm файла:

1
2
mkdir -p /usr/src/redhat/SRPMS
mkdir -p /usr/src/redhat/RPMS/{i386,x86_64}

Стандартный make rpm не собирает initrd автоматически и не добавляет ядро в grub.conf, поэтому надо наложить патчик

1
nano scripts/package/mkspec

И в самый низ добавляем следующее:

1
2
3
4
5
6
7
echo "%post"
echo "/sbin/new-kernel-pkg --package kernel --mkinitrd --depmod --install "$KERNELRELEASE" || exit \$?"
echo ""
 
echo "%preun"
echo "/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove "$KERNELRELEASE" || exit \$?"
echo ""

Собираем ядро (заодно контролируем время сборки):

1
time make rpm

И ставим:

Для i386:

1
rpm -ihv /usr/src/redhat/RPMS/i386/kernel-2.6.39.1.i386.rpm

Для x86_64:

1
rpm -ihv /usr/src/redhat/RPMS/x86_64/kernel-2.6.39.1.x86_64.rpm

После перезагружаем машину и радуемся новому ядру. Если что-то не взлетело — всегда есть возможность загрузиться со старым ядром.

Popularity: 12% [?]




Похожие записи:

coded by nessus
Plugin from the creators of Brindes :: More at Plulz Wordpress Plugins