LINUX.ORG.RU

Трабл при сборке GENERIC ядра в RH9


0

0

Прошу прощения, порыл конфу, но, что-то не нашел ответа на свой вопрос.

Поставил себе наконец Линуха, после 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 - ничего в них собирать не нужно - оно живет для сбора кернел-зависимых прог (не модулей - для последних достаточно файлов заголовков).

Три.

Дабы собрать ядро делается
rpmbuild --rebuild --target=архитектура kernel-2.4.20-...-.src.rpm

архитектура - например, i686

Чтобы подправить конфиг можно сделать так:

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
(или как он там зовется).

jackill ★★★★★
()
Ответ на: комментарий от jackill

Да, само ядро ты получишь в /usr/src/redhat/RPMS/архитектура

P.S. Еще в спеке убери сборку для smp, если у тебя не четвертый пень, конечно, или не двухпроцессорная машина (кстати, в этом случае править придется другой конфиг - smp-шный).

jackill ★★★★★
()
Ответ на: комментарий от jackill

Я прошу прощения, что молчал, только до инета добрался =)

А что, в Линухе нельзя собрать ядро с сырцов?!!!
Я просто как-то, может философию не до конца понял?
Вроде обычный Юних, а ядро в РПМах живет?

Или я что-то недопонимаю?

Да, еще один момент, если сходить в
/usr/src/linux-2.4/README

Там, как ни странно написано именно так, как делал я.
Может кто-то объяснить, что почитать, чотб проникнуться?
Или просто объяснить, думаю, что многим может быть интересно, а потом
это можно и в ФАК закинуть.

Буду просто премного благодарен!!!
Думал, что после БСД за пару дней разберуся, а тут свои геморы =)
Хотя, ОЧЕНЬ все похоже =))))

Юних, однако =)

ManJak ★★★★★
() автор топика
Ответ на: комментарий от ManJak

В общем, разобрался =)

Все у кого стоит 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 =)

Вот так-вот, нето запутать хотели =)
Пользуетесь, что я Линуха не знаю $-)

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