Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   Ошибки при компиляции нового ядра (http://forum.oszone.net/showthread.php?t=14855)

Guest 29-11-2002 14:28 79915

Я уже несколько дней пытаюсь собрать новое ядро 2.5.40. Сейчас стоит Suse 7.3 c ядром 2.4.10.
Нашел мануал по установке ядра. Там советуют распаковать в /usr/src. *Удалить старые симлинки на linux asm scsi и создать новые на исходники. Все так и сделал, но *после make dep получил вот такую ошибку:
* /
> make[1]: Entering directory `/usr/src/linux/scripts'
> gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o split-include
split-include.c
> In file included from /usr/include/linux/errno.h:4,
> from /usr/include/bits/errno.h:25,
> from /usr/include/errno.h:36,
> from split-include.c:26:
> /usr/include/asm/errno.h:4:31: asm-generic/errno.h: No such file or directory
> make[1]: *** [split-include] Error 1
> make[1]: Leaving directory `/usr/src/linux/scripts'
> make: *** [scripts/mkdep] Error 2
В одном форуме прочитал, что нужно fix your setup to not use symlinks, or, at least, put an older kernel
back into /usr/src/linux and compile the new kernels elsewhere. *Говорят что сейчас не рекомендуется компилировать ядра в /usr/src. *Но поскольку собираю новое ядро впервые в /usr/src *у меня ничего никогда не было и старые исходники положить я туда не могу. *
Просто распаковал тарбол в другой каталог и попробовал make config с нижеследующим результатом:
linux:~/Downloads/kernel/linux-2.5.40 # make xconfig
make[1]: Entering directory `/root/Downloads/kernel/linux-2.5.40/scripts'
*gcc -Wp,-MD,./.fixdep.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer * -o fixdep fixdep.c
In file included from /usr/include/bits/posix1_lim.h:126,
* * * * * * * * from /usr/include/limits.h:144,
* * * * * * * * from /usr/lib/gcc-lib/i486-suse-linux/2.95.3/include/limits.h:117,
* * * * * * * * from /usr/lib/gcc-lib/i486-suse-linux/2.95.3/include/syslimits.h:7,
* * * * * * * * from /usr/lib/gcc-lib/i486-suse-linux/2.95.3/include/limits.h:11,
* * * * * * * * from fixdep.c:105:
/usr/include/bits/local_lim.h:36: linux/limits.h: No such file or directory
In file included from /usr/include/netinet/in.h:212,
* * * * * * * * from fixdep.c:107:
/usr/include/bits/socket.h:304: asm/socket.h: No such file or directory
fixdep: ./.fixdep.d: No such file or directory
make[1]: *** [fixdep] Error 2
make[1]: Leaving directory `/root/Downloads/kernel/linux-2.5.40/scripts'
make: *** [xconfig] Error 2
Напишите. пожалуйста, что я делаю неправильно и как мне решить эту проблему. Если можно поподробнее поскольку в Линуксе я новичок.

Barracuda 30-11-2002 00:38 79916

Guest
Цитата:

Но поскольку собираю новое ядро впервые
Такой тривиальный вопрос: а нафига вам development-ядро? Есть туча стабильных ядер, вроде 2.4.19, 2.2.22 и т.п.
Если вы сами являетесь разработчиком под Linux - другое дело. Но если обычный юзер - не поинмаю.
Цитата:

В одном форуме прочитал, что нужно fix your setup to not use symlinks, or, at least, put an older kernel
Ага, именно так. Для начала. Я, конечно, понимаю, что это может привнести в систему некоторый конфуз, зато не будет никаких траблов с возвратом к предыдушему состоянию.
Цитата:

и старые исходники положить я туда не могу.
От чего же? Разве на диске с дистрибутивом их нет? Если так, то тупо скачивайте с сайта координации разработки ядра ядро версии 2.4.10 и выкладывайте его туда (в /usr/src). Хотя, для сборки нового ядра, оно не нужно, но можно восстановить потерянные инклюдники (см. в <kernel_sources>/include/linux, <kernel_sources>/include/i386/asm и <kernel_sources>/include/scsi соответственно).

JafoNix 30-11-2002 07:49 79917

Barracuda

Это опять я, только зарегистрировался.

Цитата:

а нафига вам development-ядро?
Эти исходники были на cd-romе, прилагаемом к какому-то журналу - вот и решил попробовать. Качать-то 30 с лишним мег через dial-up,  да еще с нашей связью - то еще удовольствие.


Цитата:

fix your setup to not use symlinks
Не могли бы вы объяснить как это сделать?



Dmitrich 05-12-2002 00:07 79918

 Как вариант, можно ещё попробовать перед процессом конфигурации и компиляцией сделать make clean

Barracuda 05-12-2002 11:56 79919

Dmitrich
Не можно, а нужно.
Начнём с того, что после распаковки ядра, нужно зайти в его каталог и выполнить make mrproper. Затем make config (варианты - oldconfig, xconfig, menuconfig). Затем, после окончания конфигурации make dep && make clean. И уж опосля всего выполняется компиляция и установка: make bzImage && make modules && make modules_install.
Я иногда на крайности пускаюсь, что после конфигурации копирую файл .config куда нить, потом делаю make mrproper. После этого возвращаем .config назад и выполняем make oldconfig. После этого - как обычно.

Deonis 06-12-2002 06:06 79920

Я ставил это-же ядро, из этого же журнала, "Хакер 10.02(46)"

Раньше я считал, что нестабильное ядро собирается в любом
случае, но не всегда работает верно.
    Обваливалась компиляция с похожей ошибкой, только если
включал некоторые опции, причем не обязательно NEW
   
  Ядро никак предварительно не проверяют на предмет разных вариантов компиляции, прежде, чем выкладывать ?
 

Barracuda 06-12-2002 11:02 79921

Deonis
Цитата:

Ядро никак предварительно не проверяют на предмет разных вариантов
Имхо - нет. Я как-то тоже решил такое собрать. Собрать получилось, но пришлось кой-чего повыкашивать. Однако оно таки всё равно не запустилось (конфликты были).
По сему - если вы не девелопер, оставьте эти ядрышки в покое.

Deonis 07-12-2002 10:44 79922

Цитата:

По сему - если вы не девелопер, оставьте эти ядрышки в покое.
Ну, девелоперы тоже с малого начинают ;)


Время: 17:43.

Время: 17:43.
© OSzone.net 2001-