Ну вот, наконец пошел конструктив. Я пробовал make чтонадо 2>&1, как только буду снова собирать ядро - сделаю как советуете
rolano: [moved] Компилятор падает на сборке ядра
[blockquote] make чтонадо 2>&1 | tee make.log 1>&2 [/blockquote]
это одна комманда
Уважаемый Dumus!
Конечно, можно скролить экран вверх и вниз, но только тогда, когда на команды есть реакция. А у меня либо машина просто перегружается, либо виснет намертво, когда система не отрабатывает даже нажатия НумЛока (чего в Линухе не должно быть, как меня убеждают)
Уважаемый Sheridan!
Вы оказались неправы. При компиляции у меня машина просто повисла, я записал последние строки с экрана и сравнил с тем логом, который создался в результате исполнения предложенной Вами команды.
Последние строчки лога:
LD .tmp_vmlinux1
KSYM .tmp_kallsyms1.S
AS .tmp_kallsyms1.o
LD .tmp_vmlinux2
KSYM .tmp_kallsyms2.S
AS .tmp_kallsyms2.o
LD .tmp_vmlinux3
KSYM .tmp_kallsyms3.S
AS .tmp_kallsyms3.o
LD vmlinux
В то время как на экране:
GZIP arch/i386/boot/compressed/vmlinux.bin.gz
LD arch/i386/boot/compressed/piggy.o
LD arch/i386/boot/compressed/vmlinux
OBJCOPY arch/i386/boot/vmlinux.bin
HOSTCC arch/i386/boot/tools/build
BUILD arch/i386/boot/bzImage
Root device is (3, 65)
Boot sector 512 bytes
Setup is 4863 bytes
System is 1253 kB
Согласитесь, некоторые отличия имеются
Есть ещё последние сообщения, полученные в SafeMode:
AS arch/i386/boot/bootsect.o
LD arch/i386/boot/bootsect
AS arch/i386/boot/setup.o
LD arch/i386/boot/setup
AS arch/i386/boot/compressed/head.o
CC arch/i386/boot/compressed/misc.o
OBJCOPY arch/i386/boot/compressed/vmlinux.bin
objcopy: vmlinux: File format not recognized
make[2]: *** [arch/i386/boot/compressed/vmlinux.bin] Error 1
make[1]: *** [arch/i386/boot/compressed/vmlinux] Error 2
make: *** [bzImage] Error 2
objcopy: vmlinux: File format not recognized
ну вот оно. Это насколько я понимаю изза линкера. Либо изза компилятора.
Насчет лога - ты целиком комманду писал? с 1>&2 в конце?
Поясню - 2>&1 1>&2 это перенаправление потоков вывода stdout и stderr
Писал ровно то, что посоветовали. Сообщения из SafeMode получены после сборки неочищенного дерева (было просто интересно). После очистки и пересборки система перезагрузилась.
Н-да. А почему она виснет-то?
Попробуй поставить gcc 3.3.x, ld 2.15 и собрать ядро ими.
И, на всякий случай, прогони свой раздел, в котором идет сборка, fsck -fyv /dev/раздел; badblocks -sv /dev/раздел.
Еще случайные повисания бывают по причине неисправного swap раздела. Загляни в /var/log/messages - нет ли там упоминаний проблем со свопом. И проверь его тоже: swapoff -a; badblocks -sv /dev/своп; swapon -a
Вот почему она виснет или перезагружается я и хочу узнать у более опытных товарищей. gcc 3.3.6 мне один сильно занятой спец уже поставил, а что такое ld? Логи посмотрю и своп проверю. По поводу свопа - пробовал собирать и на второй консоли запускал top, за все время рвботы не было ни одного обращения к нему, даже память не вся использовалась. Но все равно я сделаю, как Вы советуете.
Прошу прошения за неверные сведения но спец поставил мне не 3.3.6, а 3.4.1. Нужно ли мне откатываться до 3.3.6?
ld - это линкер. Еще может иметь значение версия objcopy/objdump, но после экспериментов с ними у себя на готовом образе ядра 2.6.10 мне не удалось найти никаких рекомендаций, что следует проверить.
Я просто пытаюсь сначала отсечь возможные несвязанные со средствами разработки причины.
Очевидно, это все происходит еще при выполнении цели bzImage, до install не доходит.
Да, поставить gcc-3.3.6 мало, надо еще им компилить. Для этого нужно передать make'у имя компилятора, например, так:
CC=имя-gcc-3.3 HOSTCC=имя-gcc-3.3 make bzImage и т.д.
На всякий случай передаю 2 переменные (CC и HOSTCC), так как настолько внимательно, чтобы передать только одну, Makefile еще не читал, но первая - это конвенциональная переменная, указывающая на C-компилятор в системе, а вторая точно используется в Makefile. Вместо имя-gcc-3.3 следует подставить имя бинарника от gcc-3.3.6.
Насчет 3.4.1 не знаю. Думаю, должен компилить нормально.
Да должен нормально...
Я вобще 4кой собираю...
2Sheridan: Может у него проблемы с версиями различных сборочных тулзов, там изменений в форматах объектных файлов или форматов метаинформации не было при переходе на 4.х ? Хотя больше похоже, что проблема наведенная из-за каких-то сбоев в системе (железо, модули, файловые системы).
А проверить версию ld можно с помощью какой-нить команды типа ld -h или что-то в этом роде?
ld --version
В выходные пробовал собирать ядра с разными параметрами (ACPI, тайминги памяти, наборы модулей), но под Мандрейком 10.1 ничего не получалось (в т.ч. ядро 2.6.8.1-mdk, которое в собранном варианте ставится вместе м ним). Переставил систему на Слакварь 9.1 (ядро 2.4.22, gcc 3.2.3, ld 2.14) - и ядро из дистрибутивов собралось. С этим ядром я сейчас работаю.
Если это возможно, то объясните в чём может быть причина такого различного поведения этих сборок?
кстати в мандраке у меня ниразу неполучалось собирать ядро. Правда пробовал дааавно уже и раз 5 всего..
У меня тоже не с первого раза получилось собрать ядро. И даже не с пятого. Но получилось, тем не менее. Только до сих пор сам не понимаю, почему так - делал-то одно и то же.
Но ведь так быть не должно. Система либо должна постоянно выдавать ошибки, либо делать все нормально. Если есть косяк с настройками, то это должно влиять постоянно на все попытки сборки, а не выборочно.
Конечно, не должно. Но происходит с раздражающей регулярностью. Зависеть это может от чего угодно - включенных в данный момент сервисов, подключенных модулей, запущенных процессов, подключенного железа. И чтобы разобраться с этим надо или разбираться в архитектуре ядра на уровне его разработчиков (что мне не грозит), либо пробовать раз за разом, отслеживая изменения (что я и делаю обычно).
Я в Мандрейке пробовал ядра собрать не меньше десятка раз. Модули я конечно ручками не вставлял/удалял, но пару конфигураций попробовал. Почему в Мандрейке не собралось ни разу, а в Слакваре - легко? Ну если система не может собрать ядро, на котором сейчас работает, тогда это не система, а глюк
в шапке я не раз натыкался что надо ставиь пакет связанный со свтроенным в С ассемблером... заголовки какие то. после этого ядро начинало собираться.
очевидно не прописана зависимость в rpm пакете
Система всегда может собрать ядро, если до этого усиленно не ломали. Но у каждого дистрибутива свои особенности и свои преимущества. Ядра хорошо собираются и в Мандрейке, у меня во всяком случае, хотя тоже не всегда. И, как я заметил, часто это зависит от того, какие модули пытаешься включить в ядро.
У меня в федоре токо раз несобралось и то я выяснил что изза того что я мутил с libstdc++ и в include не нашлось какогото заголовка... Положил заголовог обратно - собралось.
Повисания исчезли? На Слаке не виснет?
[quote=Sheridan]У меня в федоре токо раз несобралось и то я выяснил что изза того что я мутил с libstdc++ и в include не нашлось какогото заголовка... Положил заголовог обратно - собралось.[/quote]
Слепой ведет глухого... Ребятки, вы хоть понимаете, что делаете, или просто как "Мартышка и очки" -- удалил файл -- о, не работает, кинул -- заработало... Чудо! какая нахрен libstdc++? Нахрена трогать include? Ты понимаешь, что там находится?
Я не понимаю. Я не программист, не админ. Я инженер-механик по летательным аппаратам, в силу должностных обязанностей еще немного экономист и юрист. У меня нет возможности профессионально разбираться, как и почему все работает, но у меня и лишних денег нет, чтобы ко мне выезжал спец и все настраивал. Тем более не факт, что понадобится только один такой выезд. Что мне в этом случае делать? Правильно, смотреть и запоминать - так работало, а вот так рухнуло, а вот так работает, но плохо и нестабильно.
[quote=dennica]Я не понимаю. Я не программист, не админ. [/quote]
Тогда не надо ничего компилировать. Современные дистрибутивы Linux хорошо работают без компиляции. Зачастую -- лучше, чем с компиляцией (см. данную тему).
[quote=Nick]Слепой ведет глухого... Ребятки, вы хоть понимаете, что делаете, или просто как "Мартышка и очки" -- удалил файл -- о, не работает, кинул -- заработало... Чудо! какая нахрен libstdc++? Нахрена трогать include? Ты понимаешь, что там находится?[/quote]
Уважаемый, я понимаю что там находится. А еще я понимаю что там есть лишнее и еще я понимаю зачем оно там находится. И самое страшное то, что я понимаю как без этого обойтись.
Господа! Ваш спор действительно интересен. Тме не менее в нем есть ряд неточностей/недоговоренностей:
1. У меня ядро не собралось на свежеустановленном Мандрейке. Я ничего не мутил с библиотеками, а все , что поставил - Wine. Мог ли он угробить библиоотеки?
2. Если система с открытым исходным кодом не может собрать собственное ядро согласно инструкциям, идущим вместе с ним, то возникает вопрос - а чем она лучше Винды? В данном случае я получаю систему, способную работать только с собранными производителем дистрибутива ядрами. С Виндой вообще не поставляется исходного кода и справка составляется так, что после выпуска сервис-пака обязательно выходит файл с исправлениями косячных советов
3. Почему на моем якобы косячном железе ядро 2.4.22 под Слакварем собралось, а 2.6.8.1 под Мандрейком - нет. (Оба эти ядра идут вместе с соттветствующими дистрибами). Нету в Слакваре глюков по этому поводу.
4. Систему я усиленно не ломал. Собственно за две недели знакомства и цивилизованного освоения едва ли здравомыслящий человек возьмет на себя смелость "заоптимизировать" систему. Такое могут делать только злые админы и доморощенные кулхацкеры
По порядку
1 см. 3
2 см. 3
3 Mandrake. Этим имхо все сказано. Дистрибутив довольно слабый. В линуховых кругах считается мягко говоря довольно плоим. Лично мне он не нравится тем что както довольно самостоятельный... Очень может быть что недоконца в нем разобраны зависимости, недособраны пакеты и прочие мелочи... Советую короче что-ть другое.
4 Да в принципе никто не говорил что ты ее ломал. Просто выясняем причины... Которые в принципе могут кстати быть довольно непредсказуемы. Я долго к примеру ломал голову почему у меня qt не собирается... Оказалось изза того что камень был разогнан...
[quote=rolano]Предложение поставить ядро из rpm очень не нравится. Оно собиралось ниезвестно кем неизвестно где и незнамо под какие системы.[/quote]
1. Неужели Вы думаете, что Вы умнее и опытнее тех, кто собирает ядра для "промышленных" дистрибутивов вроде RHEL, SuSE или Mandrake. Вполне оптимизированные и стабильные ядра. Каждое из них прекрасно работает на 99% железа. Доверять надо производителям, доверять надо.
2. Не собирайте ядра из-под root. Административные полномочия нужны только для make install.
[quote=Sheridan]
3 Mandrake. Этим имхо все сказано. Дистрибутив довольно слабый. В линуховых кругах считается мягко говоря довольно плоим..[/quote]
Не выдавай свое личное мнение за истину. Истина только в вине.
[quote=rolano]Господа! Ваш спор действительно интересен. Тме не менее в нем есть ряд неточностей/недоговоренностей:
1. У меня ядро не собралось на свежеустановленном Мандрейке. Я ничего не мутил с библиотеками, а все , что поставил - Wine. Мог ли он угробить библиоотеки?
2. Если система с открытым исходным кодом не может собрать собственное ядро согласно инструкциям, идущим вместе с ним, то возникает вопрос - а чем она лучше Винды? [/quote]
А Вы читали документацию по сборке ядра именно для своего дистримбутива? Например, если под RHEL собирать ядро " скандачка" по документации kernel.org, то у Вас ничего хорошего не выйдет. Но если взять исходники ядра, прочесть документацию по приготовлению пакета, составить грамотный spec-файл, в итоге вы получите прекрасный пакет, который легко и правильно будет адаптирован в систему и не будет вызывать нареканий у утилиты контроля за целостностью системы.
Совет: не лезьте в чужой монастырь со своим уставом.
[quote=Vitls][quote=Sheridan]
3 Mandrake. Этим имхо все сказано. Дистрибутив довольно слабый. В линуховых кругах считается мягко говоря довольно плоим..[/quote]
Не выдавай свое личное мнение за истину. Истина только в вине.
[/quote]
Ну фиг его знает но я еще не видел человека которому мандрак бы понрафился... Иначе бы не писал...
[quote=Vitls]
2. Не собирайте ядра из-под root. Административные полномочия нужны только для make install.
[/quote]
Поподробнее напиши плиз почему?
Уважаемые специалисты!
Если честно, то меня совершенно не волнуют особенности конкретного дистрибутива в отношении ядра (более того - мне на них начхать). Я хочу иметь возможность собирать стабильные ядра несмотря ни на что. Такая дистрибутивная специфичность очень сильно напоминает ситуацию с Виндой со всеми её "особенностями и странностями". Специфичность ядра должна касаться способов ешё организации (соотношение модульности/монолитности, использование initrd или неиспользование, оптимизация под конкретные архитектуры, состав и назначение некоторых каталогов и т.д.). Я ведь нигде не утверждал, что хочу с первого раза получить хорошее ядро, но черт возьми, я его в Мандрейке не получил совсем. Если Мандрейк не может собрать собственное ядро, тогда о чём вообще можно говорить? Ни один из советов мне не помог. Некоторые из Вас говорят, что типа это я криворукий (а скорее - начинающий пользователь), но ведь собрать ядро по инструкции сможет даже новичок. ТОЛЬКО ВОТ В МАНДРЕЙКЕ ИНСТРУКЦИЯ НИ ХРЕНА НЕ ЗНАЧИТ. Если Мандрейк позиционируется как система со своим ядром, тогда не надо нигде писать, что система основана на ядре Linux - пусть люди пишут свою Винду. О какой переносимости ПО можно говорить, если собрать общедоступное ядро - проблема?
Млин приди ко мне домой я те покажу как под 4й федорой 2.6.13 ядро 4м гцц собирается. Может мандрак кривоват, может у тебя камень разогнан или тайминги завышены. И я не вижу смысла пинания ядра после того как не получилось его собрать под какимто _одним_ дистрибутивом. Меня например факт того что под мандраком не собирается честно говоря удивил.
Да, позавчера поставил .13е ядро сразу. С первого же пинка.
Проц я не разгонял, а тайминги поставил на максимальные. Слакварь свое ядро собрал, а Мандрейк - нет. Пинать ядра я и не собирался, но и слушать советы типа "доверяй производителю" тоже не сильно нравятся. Майкрософт - тоже производитель, только вот его почему-то пинать можно, а коллектив Мандрейка - ни-ни. Если человеку нужна меганадежность и доверие к производителю, тогда мир Linux не для него - нужно пользовать коммерчекие вресии Unix-подобных систем. В Linux меня то и привлекло, что здесь я играю определяющую роль в системе: да, я могу чего-нить не включить и тогда ядро будет глючить, паниковать и т.д., но это мое право. Если меня такого права лишают, тогда это нужно явно оговаривать и не использовать ПО с общедоступной лицензией на бинарники и исходники. Если в Мандрейке такие мегаспецы, что обычные ядра к их системам не подходят, тогда пусть зарабатывают зеленых американских президентов на своих собственных разработках - пусть делают закрытую реализацию ядра или системы в целом.
Уважаемые модераторы!
А тему-то за что переместили из Ликбеза? Я поначалу подумал, что Вы её нафиг грохнули.
[quote=rolano]Слакварь свое ядро собрал, а Мандрейк - нет. Пинать ядра я и не собирался, но и слушать советы типа "доверяй производителю" тоже не сильно нравятся.
...
Если меня такого права лишают, тогда это нужно явно оговаривать и не использовать ПО с общедоступной лицензией на бинарники и исходники. Если в Мандрейке такие мегаспецы, что обычные ядра к их системам не подходят, тогда пусть зарабатывают зеленых американских президентов на своих собственных разработках - пусть делают закрытую реализацию ядра или системы в целом.[/quote]
1. В Слаке свои правила сборки ядер, в Мандраке - свои.
2. Linux - открытая система, поэтому производителю можно и нужно доверять. Возьмите исходные тексты ядра с сайта Мандраки илм с компак-диска, выключите ненужное, добавьте нужное, что хотите делайте, но ради Бога, играйте по правилам дистрибутивостроителя.
Не нравятся (не понимаете) правила - меняйте дистрибутив, кто ж мешает-то.
3. Не разбираясь вы не лезете чинить стиральную машину или двигатель авто, ядро Linux не чем не проще. Чтобы правильно и грамотно собирать ядра тоже нужно многое знать и уметь.
[quote=Sheridan][quote=Vitls]
2. Не собирайте ядра из-под root. Административные полномочия нужны только для make install.
[/quote]
Поподробнее напиши плиз почему?[/quote]
Это одно из первых правил безопасности системы. При сборке из-под root непроверенного исходного кода злоумышленник может получить доступ к данным с правами администратора. Даже если собирается само ядро :-). Парадоксально, но больше половины кода Linux выполняется в userspace.
Уважаемый VitIs!
Я пробовал собирать в Мандрейке 2.6.8.1-mdk (с диска). НЕТУ ТОЛКУ. По поводу правил сборки - а что в Мандрейке СВОЙ компилятор, СВОЙ линкер, или у них собственное мнение по поводу внутренней структуры бинарника ядра?
А если ядра с kernel.org не подходят к Мандраку, тогда пусть они тогда так и скажут. Я нигде про это не слышал.
скорее всего у тебя не стоит какая нить библиотека или пакет какой глючит... бывает...
не обращай вниманния - прелесть линукса именно в том что их много.
У меня уже ничего не глючит. У МЕНЯ ТЕПЕРЬ СТОИТ СЛАКВАРЬ 9.1. А с ядрами ветки 2.6.х я ещё разберусь (потом).
Ядра с kernel.org к Мандраке подходят прекрасно. И патчи накладываются без проблем. И работает все как часы. А если ты на Мандраке вынес какую-нибудь библиотеку или подключил модуль какой-нибудь экспериментальный, который с твоим железом не подружился, то это не проблемы Мандраки. Внимательнее смотри, какие модули для чего служат и поотключай те, которые тебе не нужны, а заодно и те, в которых ты не вполне уверен.
[quote=rolano]Уважаемый VitIs!
Я пробовал собирать в Мандрейке 2.6.8.1-mdk (с диска). НЕТУ ТОЛКУ. По поводу правил сборки - а что в Мандрейке СВОЙ компилятор, СВОЙ линкер, или у них собственное мнение по поводу внутренней структуры бинарника ядра?[/quote]
Вы, уважаемый, не понимаете фундаментального: ядро, генерируемое при помощи spec-файлов дистрибутивостроителей очень гармонично вписывается в систему. Например, сценарий в спеке сборки ядра в Fedora3 предполагает применение udev, а если собирать вручную, то получаем devfs (ибо по-умолчанию) и нихрена неработающую систему. И таких тонкостей масса.
Тот же Слакварь, в отличие от Мандраки или Редхата, предполагает самостоятельную сборку ядра, и соответственно архитектура всей системы как единиго целого несколько иная (конкретно для Слаки понятие целостность системы вообще отсутствует).
Вы, наверное, не сталкивались с промышленным применением Linux. На производстве ядра пересобирать некогда и незачем, там главное, чтобы работало и работало стабильно.
p.s. Мой ник-нейм пишется как VITLS
[ Редактирование 31.08.2005 - 19:37:59 ]
2rolano&Vitls: Флеймиться не надоело? :-)
![Комментарии к "rolano: [moved] Компилятор падает на сборке ядра" RSS-материал](/misc/feed.png)
Последние комментарии
10 лет 22 недели назад
10 лет 41 неделя назад
10 лет 51 неделя назад
10 лет 52 недели назад
11 лет 41 неделя назад
11 лет 41 неделя назад
11 лет 41 неделя назад
11 лет 42 недели назад
11 лет 42 недели назад
11 лет 43 недели назад