Делаю так
Ставим зависимости:
yum install - y ncurses- devel gcc make rpm- build redhat- rpm- config
cd /usr /src
wget http: //www .kernel .org /pub /linux/ kernel/v 2 .6 /linux- 2. 6 .33 .2 .tar .bz2
tar - xf linux- 2 .6 .33 .2 .tar .bz 2
cd linux- 2. 6 .33 .2
Копируем конфиг от активного ядра и если нужно вносим коррективы:
cp /boot /config- `uname -r ` .config
Запускаем конфигуратор:
make menuconfig
Выбираем там следующую опцию (иначе не загрузится он на CentOS) :
General setup - -- > enable deprecated sysfs features which may confuse old userspace
Создаем папки для сохранения результирующего rpm файла:
mkdir -p /usr /src/redhat/ SRPMS
mkdir -p /usr /src/redhat/ RPMS/{ i386 ,x86 _64 }
Стандартный make rpm не собирает initrd автоматически и не добавляет ядро в grub. conf,
поэтому надо наложить патчик
vi scripts/ package/mkspec
И в самый низ добавляем следующее:
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 ""
Собираем ядро (заодно контролируем время сборки)
time make rpm
но в результате получаю ошибку
Цитата
make clean
scripts/Makefile.clean:17 :
/usr/src/kernels/2.6. 18-194.e15-i686/drivers/infiniband/hw /amso1100/Makefile:
No such file or directory
make[5]: *** No rule to make target
`/usr/src/kernels/2.6 .18-194.e15-i686/drivers/infiniband/hw /amso1100/Makefile'.
Stop.
make[4]: *** [drivers /infiniband/hw/amso1100] Error 2
make[3]: *** [drivers /infiniband] Error 2
make[2]: *** [_ clean_drivers] Error 2
make[1]: *** [rpm] Error 2
make: *** [rpm] Error 2
посмотрел, реально нет makefile по указанному пути. Но почему?scripts/Makefile.clean:17 :
/usr/src/kernels/2.6. 18-194.e15-i686/drivers/infiniband/hw /amso1100/Makefile:
No such file or directory
make[5]: *** No rule to make target
`/usr/src/kernels/2.6 .18-194.e15-i686/drivers/infiniband/hw /amso1100/Makefile'.
Stop.
make[4]: *** [drivers /infiniband/hw/amso1100] Error 2
make[3]: *** [drivers /infiniband] Error 2
make[2]: *** [_ clean_drivers] Error 2
make[1]: *** [rpm] Error 2
make: *** [rpm] Error 2
Ставил сырцы ядра из дистрибутива...