[РЕШЕНО] Внезапно перестало собираться ядро
cheerfulboy 5 июня, 2016 - 09:26
Решил тут пересобрать ядро с поддержкой OverlayFS для Docker, а оно перестало собираться.
Ошибка выглядит так:
CC scripts/mod/empty.o scripts/mod/empty.c:1:0: ошибка: code model kernel does not support PIC mode /* empty file to figure out endianness / word size */ ^ scripts/Makefile.build:258: ошибка выполнения рецепта для цели «scripts/mod/empty.o» make[2]: *** [scripts/mod/empty.o] Ошибка 1 scripts/Makefile.build:403: ошибка выполнения рецепта для цели «scripts/mod» make[1]: *** [scripts/mod] Ошибка 2 make[1]: *** Ожидание завершения заданий… SHIPPED scripts/genksyms/parse.tab.c SHIPPED scripts/genksyms/lex.lex.c SHIPPED scripts/genksyms/keywords.hash.c SHIPPED scripts/genksyms/parse.tab.h HOSTCC scripts/genksyms/parse.tab.o HOSTCC scripts/genksyms/lex.lex.o HOSTLD scripts/genksyms/genksyms Makefile:555: recipe for target 'scripts' failed make: *** [scripts] Error 2
Полное содержание /var/log/genkernel.log:
https://gist.github.com/8c7dffd82c1e925c1ea166bc9b9fe2da
Конфиг собираемого ядра:
https://gist.github.com/f69c696fd5f85449466fa0fc7cc752d4
Информация о системе:
$ uname -a Linux router 4.1.15-gentoo-r1 #1 SMP Tue Mar 22 10:14:09 KRAT 2016 x86_64 Intel(R) Atom(TM) CPU K410 @ 1.66GHz GenuineIntel GNU/Linux $ emerge --info | wgetpaste Your paste can be seen here: https://gist.github.com/6b1d1bcbe18ca7ab19fdf8bfbb4b02cf
»
- Для комментирования войдите или зарегистрируйтесь
Для начала пробуйте более
Для начала пробуйте более новую версию.
Такая же проблема.
Такая же проблема.
А ты видел, что генкернел у
А ты видел, что генкернел у тебя берет конфиг не из
/usr/src/linux/.config
, a из/etc/kernels/kernel-config-x86_64-4.1.15-gentoo-r1
? Там точно, то что нужно??Если да, то покажи
В курсе. С конфигом
В курсе. С конфигом
/etc/kernels/kernel-config-x86_64-4.1.15-gentoo-r1
у меня до недавних пор все отлично собиралось. А запостил в топик я конфиг/usr/src/linux/.config
.Надеюсь, что они у тебя
Надеюсь, что они у тебя одинаковые! :)
По сути же есть несколько вопросов:
1. Давно ли используешь
hardened
профиль? Компилировалось ли ядро с ним уже?2. Когда обновились
sys-kernel/linux-headers
? Знаешь ли ты, что версия заголовков не должна быть выше версии ядра? Идеально когда точно такая же, тогда система (glibc
) сможет использовать все фишки ядра.3. И самое важное - обновлял ли ты тулчейн (
glibc/binutils/gcc
- именно в такой последовательности!) и ядро после обновленияsys-kernel/linux-headers
?! Это надо делать обязательно при любом измененииsys-kernel/linux-headers
. Эта связка очень важна для всей системы, поэтомуlinux-headers/glibc/binutils/gcc
лучше даже замаскировать от автоматического обновления и не трогать без особой нужды.А в качестве ответа могу дать только подсказку (маловато данных о твоей системе - там надо глубоко копать/смотреть): похоже что у тебя где-то происходит конфликт с
-fPIC/-fno-PIC
ключами. Скорее всего проблема решится пересобиранием мира, особенно если отключишьhardened
профиль перед этим.Если используете hardened,
Если используете hardened, почему используете gentoo-sources?
Вообще-то это не связанные
Вообще-то это несвязанные вещи!
Одно время (после отказа команды
grsecurity
предоставлять патчи без подписки) мы тоже ушли наgentoo-sources
приhardened
профиле, и все там прекрасно работает! ;)У меня действительно оказался
У меня действительно оказался включен hardened-профиль, хотя до этого я всегда висел на дефолтном. Возможно, я был нетревз и зачем-то переключил профиль.
Про
sys-kernel/linux-headers
интересная информация, не знал, что заголовки должны быть не старше версии ядра. Даунгрейднул их и данный момент занимаюсь пересборкой добра:Как пересоберется
sys-devel/gcc
, попробую еще раз собрать ядро.Если "Даунгрейднул
Если изменил
sys-kernel/linux-headers
, то обязательная последовательность должна быть такой (и только такой!), как я уже писал - сначала:убедиться, что пересборка будет именно в таком порядке и у
binutils
версия или параметры не меняются, тогда убрать-pv
и пересобрать тулчейн, потомИначе делать по частям:
и только после этого можно компилить все, что нужно.
В твоем сообщении изменились параметры
gcc
, поэтому его надо было пересобрать первым, как я описал выше.