Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: сборка ядра centos
Форум на CrossPlatform.RU > Курилка > Трёп
ViGOur
Понадобилось пересобрать ядро под собственные нужды, но что-то не растет каменный цветок. :(

Делаю так

Ставим зависимости:
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 по указанному пути. Но почему?
Ставил сырцы ядра из дистрибутива...
panter_dsd
Как у вас все сложно. :) В Gentoo все намноооого проще с этим.
А если просто make?
ViGOur
другие, еще более несуразные ошибки! :)
panter_dsd
Покажи ошибки.
ViGOur
Цитата(panter_dsd @ 4.7.2011, 15:05) *
Покажи ошибки.

make[1]: *** No rule to make target 'init/main.o', needed by 'init/built-in.o'. Stop.
make: *** [init] Error 2
Iron Bug
смотри тут:
http://lists.centos.org/pipermail/centos/2...May/056615.html
и ниже по течению. и в итоге там
Цитата
If you want to rebuild the kernel, you're going to have to extract the
source from the kernel src.rpm, and follow the instructions on the
wiki.

(гуглится, кстати, за пару минут)
ViGOur
Цитата(Iron Bug @ 4.7.2011, 16:33) *
смотри тут:
http://lists.centos.org/pipermail/centos/2...May/056615.html
и ниже по течению. и в итоге там
Цитата
If you want to rebuild the kernel, you're going to have to extract the
source from the kernel src.rpm, and follow the instructions on the
wiki.

(гуглится, кстати, за пару минут)
Да гуглил я, и wiki так же читал.
Iron Bug
Цитата(ViGOur @ 4.7.2011, 18:49) *
Да гуглил я, и wiki так же читал.

ну дык тебе ж написали, что надо сорц брать из пакетника. там либо патчи, либо свой мейкфайл.
ViGOur
Цитата(Iron Bug @ 4.7.2011, 17:26) *
Цитата(ViGOur @ 4.7.2011, 18:49) *
Да гуглил я, и wiki так же читал.

ну дык тебе ж написали, что надо сорц брать из пакетника. там либо патчи, либо свой мейкфайл.
именно из него и брал, устанавливал так: rpm -Uvh kernel-headers-2.6.18-194.e15.i286.rpm

я пробовал итак и так...
Iron Bug
я так понимаю, это у тебя хэдеры, а не сорц. а сорц типа src.rpm.
сорц - жирный пакетник метров на 70 и более, как правило.
ViGOur
хм, о нем не подумал, попробую...
ViGOur
Так и оказалось. Нужно было скачать kernel-xxxx-src.rpm, распаковать его, после чего в папочке rpmbuild/SOURCES распаковать файл *.tar.bz2, в него скопировать файл .config, настроить как нкужно и запустить: time make rpm.
:)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.