Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:3
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Embedded Linux
Rootfs и /sbin/init
Evgeny
Добавлено 13.07.2010 10:54 Редактировалось 13.07.2010 10:55
0
Сообщение: 1
Evgeny
5

Пункты: 836
Регистрация: 12.07.2010
Из: Челябинск
Научился собирать свое ядро, пробовал его на инекоторых готовых файловых системах - работает. Попробовал собрать свою rootfs buildroot-ом, действовал в целом по вики , но собрал buildroot.2010.5 , а не снапшот, в отношении аппаратной платформы в конфиге вроде выставил все правильно. Собралось - не работает.
Код

Waiting for root device /dev/mmcblk0p1...

mmc0: host does not support reading read-only switch. assuming write-enable.

mmc0: new SD card at address 1234

mmcblk0: mmc0:1234 SA02G 1.83 GiB

mmcblk0:

p1

VFS: Mounted root (ext2 filesystem) on device 179:1.

Freeing init memory: 116K

Kernel panic - not syncing: Attempted to kill init!

Backtrace:

[<c0029490>] (dump_backtrace+0x0/0x10c) from [<c01de310>] (dump_stack+0x18/0x1c)

r7:c3815c40 r6:c3815c40 r5:00000033 r4:0000000b

[<c01de2f8>] (dump_stack+0x0/0x1c) from [<c01de350>] (panic+0x3c/0x130)

[<c01de314>] (panic+0x0/0x130) from [<c003fcfc>] (do_exit+0x6c/0x5c8)

r3:c0269494 r2:60000093 r1:c381bd20 r0:c023056c

[<c003fc90>] (do_exit+0x0/0x5c8) from [<c00402e8>] (do_group_exit+0x90/0xc4)

[<c0040258>] (do_group_exit+0x0/0xc4) from [<c004a9b8>] (get_signal_to_deliver+0x2e8/0x324)

r4:0000000b

[<c004a6d0>] (get_signal_to_deliver+0x0/0x324) from [<c0028114>] (do_notify_resume+0x60/0x5a8)

[<c00280b4>] (do_notify_resume+0x0/0x5a8) from [<c0025f08>] (work_pending+0x1c/0x20)

Описание кернел паника ничего особо не дает, так как по гуглу такое случается в огромном числе разных случаев, насколько я понял все сводится к правильной сборке buildroot)).
Да, кстати, фс я формировал как tar.gz и распаковывал на MMC.
Я заметил , что /sbin/init в результирующей ФС сделано символической ссылкой на busybox, не может ли это быть основной причиной?, просто в ФС от дебиана, которую я пробовал, он был сделан отдельным бинарником. Как это изменить в конфиге buildroot я не нашел.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 13.07.2010 11:33 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Kernel command line в студию..

и, на всякий случай, проверьте - что и как распаковалось на SD/MMC - возможно архив сформирован/распакован неправильно

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Evgeny
Добавлено 13.07.2010 11:46 Сообщение: 3
Evgeny
5

Пункты: 836
Регистрация: 12.07.2010
Из: Челябинск
Код

Kernel command line: mem=64M root=/dev/mmcblk0p1 rootwait rw

Вообще неожиданно проблема разрешилась, но буду рад если смогут пояснить причину. Так как я не очень разобрался в чем была ошибка.
Теперь я просто решил собрать ядро в рамках сборки всего Buildroot-а, поправив конфиги+стандартные изменения частоты и т.д. в output/build/linux ,до этого собирал его вообще отдельно. И оно загрузило rootfs. Странно..
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 13.07.2010 12:16 Редактировалось 13.07.2010 12:17 Сообщение: 4
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
хм.. тему билдрута тут неоднократно обсуждали, имеет смысл полистать/почитать..
могу предположить, что при повторной сборке "что-то где-то" обновилось/прописалось. на моей практике и такое случалось, да и просто отказывалось собираться - лечилось полным сносом и пересборкой. Систему Buildroot обновляют/дописывают/переписывают, т.ч. возможны любые закидоны :)
еще бывает ситуация, когда ядро собрано с опцией EABI, а корневая от билдрута с OABI (или наоборот)..
еще как вариант отказа в загрузке опция rootwait. в каких то случаях ядро считает что накопитель готов и пытается загрузить корневую а из накопителя идут неправильные данные -> kernel panic.
можно попробовать опцию rootdelay=XX (где XX число секунд ожидания готовности). у меня стоит 10 для CF over USB и ставлю 15 для HDD over USB..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Evgeny
Добавлено 13.07.2010 12:22 Сообщение: 5
Evgeny
5

Пункты: 836
Регистрация: 12.07.2010
Из: Челябинск
Спасибо за информацию, приму к сведенью, в следующих билдах думаю разберусь уже точно из-за чего был косяк. Вопрос довольно интересный.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux