Ошибка при компиляции ядра

Вопросы программного кода и архитектуры Linux

Модератор: Olej

just_a_student
Писатель
Сообщения: 20
Зарегистрирован: 11 июл 2013, 20:57
Контактная информация:

Ошибка при компиляции ядра

Непрочитанное сообщение just_a_student » 10 сен 2013, 15:40

Здравствуйте. Первый раз пытаюсь скомпилировать ядро. Версия 2.6.38: http://www.linux.org.ru/news/kernel/6019428

Распаковал и сконфигурировал успешно.
При попытке собрать, выводит следующую ошибку:

Код: Выделить всё

sudo make && make modules_install
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  AS      arch/x86/kernel/entry_32.o
/tmp/ccEiQW8S.s: Assembler messages:
/tmp/ccEiQW8S.s: Error: .size expression for apf_page_fault does not evaluate to a constant
make[2]: *** [arch/x86/kernel/entry_32.o] Error 1
make[1]: *** [arch/x86/kernel] Error 2
make: *** [arch/x86] Error 2
Подскажите пожалуйста, что это за ошибка и как ее можно исправить. Спасибо!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Ошибка при компиляции ядра

Непрочитанное сообщение Olej » 10 сен 2013, 16:08

just_a_student писал(а):Здравствуйте. Первый раз пытаюсь скомпилировать ядро. Версия 2.6.38: http://www.linux.org.ru/news/kernel/6019428
2.6.38 - это ядро дремучей давности - 2.5 года назад.

Вопрос (любопытство): а зачем? ... "пытаюсь" :lol:
P.S. О том, что вы не знаете ответа на этот вопрос, говорит хотя бы то, что тему свою вы разместили в раздел "Администрирование Linux" - администраторам нет нужды перекомпилировать ядро (да они, в большинстве своём, и не умеют этого делать).
just_a_student писал(а):Распаковал и сконфигурировал успешно.
А вот это (успешно ли?) неизвестно ;-)

Откуда брали исходники ядра? и какие?
Что с ними делали?
Команды "сконфигурировал" нужно бы показать ... и как это делалось - это самый сложный шаг, всё остальное - пустяки.
just_a_student писал(а): При попытке собрать, выводит следующую ошибку:

Код: Выделить всё

sudo make && make modules_install
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  AS      arch/x86/kernel/entry_32.o
/tmp/ccEiQW8S.s: Assembler messages:
/tmp/ccEiQW8S.s: Error: .size expression for apf_page_fault does not evaluate to a constant
make[2]: *** [arch/x86/kernel/entry_32.o] Error 1
make[1]: *** [arch/x86/kernel] Error 2
make: *** [arch/x86] Error 2
А кто вас учил собирать именно такими командами?
Не уж то на LOR :lol:
... зачем make от root делать? и т.д.

См. Модули ядра Linux - возьмите там текст, там в "Приложение" подробно показана сборка ядра ... и подробно рассказано почему этого не нужно делать. :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Ошибка при компиляции ядра

Непрочитанное сообщение Olej » 10 сен 2013, 16:28

just_a_student писал(а):Версия 2.6.38: http://www.linux.org.ru/news/kernel/6019428
Вы бы побольше LOR читали - может таким же дебилом станет :lol:
Там же далее в той же теме
Это ядро гавно. 2.6.37.2 прекрасно компилируется но, правда с АЛСА не дружит. Это же сразу пишет что АСПИ_ВИДЕО нет. Посмотрел - и в самом деле нет. Потом при загрузке нагло виснет.

just_a_student
Писатель
Сообщения: 20
Зарегистрирован: 11 июл 2013, 20:57
Контактная информация:

Re: Ошибка при компиляции ядра

Непрочитанное сообщение just_a_student » 10 сен 2013, 16:33

Делаю по инструкции отсюда: http://zenux.ru/articles/44/

Скачал исходники по ссылке: http://www.kernel.org/pub/linux/kernel/ ... 38.tar.bz2. Как сказано в статье, перенес их в /usr/src/, распаковал там же. Зашел в папку с исходниками. Далее запустил make menuconf и поменял там совсем немножко параметров: тип процессора, видео адаптер и сетевую карту (естественно не так как в статье, а в соответствии со своим железом). Вышел из menuconf, сохранив изменения. Далее начал непосредственно сборку. На этом этапе и произошла ошибка.

Да, про sudo мне уже сказали, и в статье не из под root делают. Но у меня без sudo вообще ничего не запускается :((

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Ошибка при компиляции ядра

Непрочитанное сообщение Olej » 10 сен 2013, 16:50

just_a_student писал(а):Делаю по инструкции отсюда: http://zenux.ru/articles/44/
А вы делайте по инструкции откуда я вам показал ;-)
just_a_student писал(а): Далее запустил make menuconf и поменял там совсем немножко параметров: тип процессора, видео адаптер и сетевую карту (естественно не так как в статье, а в соответствии со своим железом).
Конкретное железо никак и никогда не проставляется в конфигурациях ядра - это делается настройками уже системы и модулями...
Или у вас такие экзотические образцы железа что "ниммагу"?
Что значит "поменял тип процессора"?
just_a_student писал(а): Скачал исходники по ссылке: http://www.kernel.org/pub/linux/kernel/ ... 38.tar.bz2.
Почему именно это ядро?
Для вас же даже в болтовне на LOR сказали что "это говно" ;-)
just_a_student писал(а): Как сказано в статье, перенес их в /usr/src/, распаковал там же. Зашел в папку с исходниками.
Да, про sudo мне уже сказали, и в статье не из под root делают. Но у меня без sudo вообще ничего не запускается :((
А это потому, что у вас прав записи (да и доступа в каталоги, может) в /usr/src/ нет и в подкаталог ... или вы их сами угрохали при "перенёс".
just_a_student писал(а): Вышел из menuconf, сохранив изменения. Далее начал непосредственно сборку. На этом этапе и произошла ошибка.
Потому что в конфигах намудрячил.

Скомпилируйте (никаких install не обязательно, только make) сначала при дефаултном конфиге, а только потом трогайте его руками.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Ошибка при компиляции ядра

Непрочитанное сообщение Olej » 10 сен 2013, 17:09

just_a_student писал(а):Делаю по инструкции отсюда: http://zenux.ru/articles/44/
Статья старая и довольно говённая :-o
Некоторые вещи там - откровенная лажа:
Я не использовал поддержку initrd в этой статье. И, скорее всего, вам она тоже не понадобится.
Да и в комментариях там автору подсказали:
используйте “make install” для установки нового ядра и
стартового RAM-диска (initial RAM disk) в каталог /boot и обновления конфигурации
загрузчика
– выдержка из материалов для подготовки к экзаменам LPIC
Потому что при его способах установки вы можете в один прекрасны момент остаться без работающей системы - ни старой, ни новой :-x

И не вздумайте по его статье конфигурировать GRUB - разнесёте систему вдребезги :twisted:

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей