LINUX.ORG.RU

Не грузится ядро 2.6.


0

0

Железка AMD Geode.
Ядро 2.4 грузится. а все подряд 2.6 виснут причем как-то странно.
Пишут какой initrd имидж и все затык. В 2.4 после этого шло
Uncompressing linux kernel. Все ядра дефолтовые дебиановские.
Как бы узнать в чем засада?

★★★

скорее всего не найден initrd.

или отключи его, или укажи правильно путь к нему в загружчике ( initrd=/boot/initrd-2.6******* )

Muller
()

В 2.6 что то меняли с initrd, посмотри документацию к ядру и к опциям, касающимся initrd.

saper ★★★★★
()
Ответ на: комментарий от Muller

Как отключить? Путь вроде правильный. То же ядро на обычной
машине пашет. На Geode компакт флэш может в этом засада?

Svoloch ★★★
() автор топика

Рекомендую разобраться что такое initrd.

Ядро у нас модульное. Модули содержат функционал. Модули хранятся на диске, до восстребования. А теперь расскажи мне, как ядро может примонтировать файловую систему когда драйвер этой файловой системы лежит на диске с этой фаловой системой? Для таких целей существует initrd. Это виртуальный диск, который содержит модули, еобзодимые для начальной занрузки ядра.

Как порешать:

Или разберись с коммандой mkinitrd. Или включи все необходимые модули в ядро. Вчасности это касается файловой системы корневого раздела (какой он там у тебя - reiserfs, ext3), agpgart и что-то еще. Точно перечислить не могу. Но у меня в ядре все, что надо :)

А вообще я продвигаю теорию (и хочу как-то ее осуществить на практике), что после загрузки ядра надо сделать lsmod - оно покажет какие модули сейчас в памяти. А потом можно зайти в конфиг ядра и повключать эти модули статически. А смысл им быть отдельно? Но там есть много нюансов; например, (по крайней мере в старых ядрах) с стОит включать звуковую подсистему, некоторые модули вкомпилить статически довольносложно (например nvidia дрова, коотрые поставляются отдельно) и т. п. Но это отдельный разговор.

Вобщем основную идею я обрисовал.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Нееее родной, это я знаю. Но тогда он должен сдохнуть сказать что не
удалось замонтировать рут файл систем, а он дохнет ДО надписи
Decompressing linux kernel. Или я не прав?

Svoloch ★★★
() автор топика
Ответ на: комментарий от Svoloch

Вобщем ext2 вбилжен в ядро. initrd пересобрал.
Grub на lilo сменил - один черт - не доходит до рапаковки ядра.
Причем только с 2.6 ядрами. ХЭЭЭЛП!!!! Куда рыть?

Svoloch ★★★
() автор топика
Ответ на: комментарий от Svoloch

1. Попробовать на Geode ядра и initrd от Slackware 11.0, там есть и 2.6 варианты.
2. Попробовать добавить опцию ядра: root=/dev/ram0.
3. Все-таки показать, что выдает ядро при неудачном варианте на консоль (подключите через COM-порт, например).

saper ★★★★★
()
Ответ на: комментарий от saper

1. Почему именно их? А не федоры например?
2. Попробую.
3. Да в том то и дело что ядро ничего не выдает. Оно даже не распаковывается. Дело до его загрузки похоже не доходит.

Svoloch ★★★
() автор топика

забавно.
у вас sata?
тогда все понятно. в 2.4 устройства /dev/hdx, в 2.6 /dev/sdx
напишите что-то типа
linux root=/dev/sda1
и поправьте везде девайсы (fstab/lilo/...)

afunix
()
Ответ на: комментарий от theserg

Ядро 386 делал. 2.4 такое же грузится. И насколько я помню при несоответствии процессора крэшится после распаковки ядра.

Svoloch ★★★
() автор топика
Ответ на: комментарий от Svoloch

mkinitrd какой версии?

Что говорит ядро при загрузке? Случаем консоль не отключил?

С загрузчиком все в порядке?

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

1. Прямо сейчас не скажу. Железка не под рукой. Но позже отпишу.
С этим может быть связана проблема? Можешь какие нибудь ссылки кинуть?
2. Ничего не говорит. Оно не начинает грузиться. Я не отключал.
В дефолтном дебиановском ядре вроде не отключено. На обычном компе,
то ядро пашет без проблем.
3. Хз. Граб обновлял, лило ставил. Результат один 2.4 работает 2.6 нет.

Svoloch ★★★
() автор топика

Хочу обрисовать ситуацию еще раз. Подробно чтобы не было вопросов.
Процессор Amd Geode x86 совместимый. Система грузится с compact flash,
который в 2.4 виделся как hda. Ядро для определенности возьмем
i386 (хотя от смены на 686 ситуация не меняется).
Есть 2 ядра версии 2.4 одно собранное правильно, другое не правильно.
Одно грузится полностью, другое не может замонтировать root file
system и уходит в кернел паник. Все хорошо.
Есть ядра 2.6 одно самосборное, два стандартных из дебиана.
Все они на обычной машине грузятся без проблем.
Здесь же все зависают одинаково. ДО надписи Uncompressing linux....
Нет никаких ошибок на экране. Нет кернел паника. Нет мигания клавой.
По умолчанию горит NumLock но при нажатии на него он не выключается.
Из чего делаю вывод что система не перестала выводить инфу на экран
(видел такое в инете) а именно висит.

Поскольку надписи booting linux kernel нет, не понятно висит загрузчик
или само ядро. Пробовал обновить граб, или поставить вместо него лило.
Результат не изменился.

Пробовал перегенерировать initrd.img никакого результата. Возможно
проблема с версиями mkinitrd, но на обычной машине все работает раз,
два ядра ставились из deb пакетов - по идее все должно было
поставиться по зависимостям.

Хотелось бы хотя бы узнать как выхать из этого побольше информации.
Типа кто же таки зависает. Загрузчик или ядро. И почему оно может
виснуть на распаковке. И кто его распаковывает загрузчик или оно
само.

Svoloch ★★★
() автор топика
Ответ на: комментарий от Kroz

> Это виртуальный диск, который содержит модули, еобзодимые для начальной занрузки ядра.

Гыгы, который лежит на той же файловой системе :)))

initrd нужен для:

1) загрузки с криптованного раздела

2) загрузки с железки, для которой нет поддержки в ядре, а только сторонний драйвер.

Во всех остальных случаях - стоит забить на initrd.

Deleted
()

Я вижу две причины такого: 1) есть какая-то железка, например контроллер SATA, процессор или его ближайшее окружение (apic, acpi, pci etc) которое не может нормально проинициализироваться и 2) ядро считает геометрию винта не такой, какова она была при записи, и считывает всякую каку оттуда.

для 1) можно попробовать поотключать всякие подозрительные вещи в биосе, и шаманить с имеющими отношение к ядру опциями при сборке, для 2) проверить геометрию, убедиться что bootable флаг установлен, попробовать загрузку с разных (master boot record, root partition, etc).

Кстати, флешка, с которой грузится, усбовая? Возможно, чего-то не хватает для активации усб-шины, отчего в определённый момент времени ядро перестаёт видеть устройство, с которого грузится.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

1. SATA нету остальное может быть.
2. Врядли. Там несколько ядер. 2.4 все нормально считают.
Флэшка компактфлэш через ide переходник.

Svoloch ★★★
() автор топика
Ответ на: комментарий от Svoloch

Debian/Etch

$ grep GEODE /boot/config-2.6.18-3-686
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
CONFIG_HW_RANDOM_GEODE=m
CONFIG_FB_GEODE=y
CONFIG_FB_GEODE_GX=m
CONFIG_FB_GEODE_GX1=m

sdio ★★★★★
()
Ответ на: комментарий от sdio

Это помоему не то же что указанный выше патч.

Svoloch ★★★
() автор топика
Ответ на: комментарий от Svoloch

> 2. Врядли. Там несколько ядер. 2.4 все нормально считают.

Это не показатель. Они отличаются довольно сильно, и в ряде случаев ведут себя сильно по-разному.

bugmaker ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.