PDA

Показать полную графическую версию : Ошибки при компиляции нового ядра


Guest
29-11-2002, 14:28
Я уже несколько дней пытаюсь собрать новое ядро 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
Guest
Но поскольку собираю новое ядро впервые
Такой тривиальный вопрос: а нафига вам development-ядро? Есть туча стабильных ядер, вроде 2.4.19, 2.2.22 и т.п.
Если вы сами являетесь разработчиком под Linux - другое дело. Но если обычный юзер - не поинмаю.
В одном форуме прочитал, что нужно fix your setup to not use symlinks, or, at least, put an older kernel
Ага, именно так. Для начала. Я, конечно, понимаю, что это может привнести в систему некоторый конфуз, зато не будет никаких траблов с возвратом к предыдушему состоянию.
и старые исходники положить я туда не могу.
От чего же? Разве на диске с дистрибутивом их нет? Если так, то тупо скачивайте с сайта координации разработки ядра (http://www.kernel.org/pub/linux/kernel/v2.4/) ядро версии 2.4.10 (http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.10.tar.bz2) и выкладывайте его туда (в /usr/src). Хотя, для сборки нового ядра, оно не нужно, но можно восстановить потерянные инклюдники (см. в <kernel_sources>/include/linux, <kernel_sources>/include/i386/asm и <kernel_sources>/include/scsi соответственно).

JafoNix
30-11-2002, 07:49
Barracuda

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

а нафига вам development-ядро?

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


fix your setup to not use symlinks

Не могли бы вы объяснить как это сделать?

Dmitrich
05-12-2002, 00:07
 Как вариант, можно ещё попробовать перед процессом конфигурации и компиляцией сделать make clean

Barracuda
05-12-2002, 11:56
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
Я ставил это-же ядро, из этого же журнала, "Хакер 10.02(46)"

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

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

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




© OSzone.net 2001-2012