Прошу прощения, порыл конфу, но, что-то не нашел ответа на свой вопрос.
Поставил себе наконец Линуха, после FreeBSD, несколько все странно и непривычно =)
В общем трабл такой, почитал все, и решил попробовать, как ядра компилировать.
Ладно, нашел, где живет, нашел GENERIC его
ls /usr/src/linux-2.4/configs/kernel-2.4.20-i386.config
make menuconfig
Загрузил все настройки с него (чтоб не разбираться, а просто сам путь пройти и понять)
make dep (Ok)
make bzImage (Ok)
make modules (XYZ)
/usr/src/linux-2.4.20-8/include/net/sock.h:1276: warning: implicit declaration of function `put_cmsg_Rf39bf4d9'
module.c: In function `cipe_check_kernel':
module.c:73: warning: implicit declaration of function `printk_R1b7d4074'
make[3]: *** [module.o] Error 1
make[3]: Leaving directory `/usr/src/linux-2.4.20-8/drivers/addon/cipe'
make[2]: *** [_modsubdir_cipe] Error 2
make[2]: Leaving directory `/usr/src/linux-2.4.20-8/drivers/addon'
make[1]: *** [_modsubdir_addon] Error 2
make[1]: Leaving directory `/usr/src/linux-2.4.20-8/drivers'
make: *** [_mod_drivers] Error 2
[root@xxx linux-2.4.20-8]#
Может кто подскажет, ведь, как я понял,
Я загрузил аналог GENERIC (FreeBSD), который
должен быть работоспособным по ОПРЕДЕЛЕНИЮ =(
Что я делаю ни так?
Чего недопонял?
Сенькс всем, кто примет участие =)
make menuconfig где делается? Правильно - в /usr/src/linux, а не в папке для конфигов, которая существует исключительно для того, чтобы можно было на несколько архитектур свой конфиг дернуть (и переименовать его в .config и бросить в /usr/src/linux).
Два.
Это пакет kernel-sources - ничего в них собирать не нужно - оно живет для сбора кернел-зависимых прог (не модулей - для последних достаточно файлов заголовков).
rpm -i --target=архитектура kernel-2.4.20-...-.src.rpm
Идешь в /usr/src/redhat/BUILD/kernel-.../linux-.../
make menuconfig
меняешь что тебе надо,
переносишь файл .config в /usr/src/redhat/SOURCES/linux
и переименовываешь в тот, что содержит в себе название твоей архитектуры.
Далее идешь в /usr/src/redhat/SPEC
и в файле kernel.spec ставишь на x86 в параметр
buildsource (точно не помню - увидишь) вместо нуля 1 - это нужно, чтобы сорцы с твоим конфигом построить - поставишь вместо тех, что стоят у тебя сейчас.
Дебаг уберешь.
Потом rpmbuild -bb --target=архитектура kernel-2.4.spec
(или как он там зовется).
Да, само ядро ты получишь в /usr/src/redhat/RPMS/архитектура
P.S. Еще в спеке убери сборку для smp, если у тебя не четвертый пень, конечно, или не двухпроцессорная машина (кстати, в этом случае править придется другой конфиг - smp-шный).
Я прошу прощения, что молчал, только до инета добрался =)
А что, в Линухе нельзя собрать ядро с сырцов?!!!
Я просто как-то, может философию не до конца понял?
Вроде обычный Юних, а ядро в РПМах живет?
Или я что-то недопонимаю?
Да, еще один момент, если сходить в
/usr/src/linux-2.4/README
Там, как ни странно написано именно так, как делал я.
Может кто-то объяснить, что почитать, чотб проникнуться?
Или просто объяснить, думаю, что многим может быть интересно, а потом
это можно и в ФАК закинуть.
Буду просто премного благодарен!!!
Думал, что после БСД за пару дней разберуся, а тут свои геморы =)
Хотя, ОЧЕНЬ все похоже =))))
Юних, однако =)
В общем, разобрался =)
Все у кого стоит 2.4.20-8
Лучше его поменять на другое, у него сорцы кривые =)
Скачал 2.4.26
Положил в /usr/src/2.4.26
make mrproper
make menuconfig
make dep
make clean
make bzImage
make modules
make modules_install
cp /boot /boot.old
cp /usr/src/arch/i386/boot /
Далее сменил все на grup
/sbin/grub-install
редактируем
/etc/grub.conf
shutdown -r now
$ uname -a
Linux localhost.localdomain 2.4.26 #10 Sat Aug 7 10:34:31 MSD 2004 i686 i686 i386 GNU/Linux
Далее, все работает и собирается, как и должно в Юнихе, минуя RPM =)
Вот так-вот, нето запутать хотели =)
Пользуетесь, что я Линуха не знаю $-)