Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Embedded Linux
Дружба ядра 2.6.32 и rootfs(busybox) на просторах AT91SAM9260
Geban
Добавлено 25.01.2010 00:51 Редактировалось 25.01.2010 14:40
0
Сообщение: 1
Geban
5

Пункты: 2060
Регистрация: 03.01.2010
Проблема заключается в том что после пересборки образа rootfs (пересобирал Busybox что бы добавить необходимые компоненты) ядро ругается на файловую систему и говорит вот что:

VFS: Mounted root (ext2 filesystem) on device 8:1.
devtmpfs: mounted
Freeing init memory: 116K
Kernel panic - not syncing: No init found. Try passing init= option to kernel.

Грузится образ файловой системы(rootfs) из USB Flash. Строка из ядра:

Kernel command line: mem=32M console=ttyS0,115200 root=/dev/sda1 rw rootwait

При этом если брать ядро и рутфс с диска который был с платой, то все грузится. Но ядро стам старенькое и опять же в busybox`е нет нужных мне функций.

А,да.. busyBox собрался без ошибок и на выходе отдал мне одноименный файл. Далее в папке взятой с того же диска(с платой был) папка rootfs сделал там mount_ramdisk в папке mnt получил распакованную ФС, в папке bin заменил файл busybox на только что собранный и все это, всю ФС, скопировал на отформатированную в ext2 флэшку.

Где тут засада подскажите плз. Куда копать, я только начинаю осваивать эту область,так что сильно не пинайте :)
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 25.01.2010 02:29 Редактировалось 25.01.2010 02:38 Сообщение: 2
sasamy
4.70

Пункты: 78606
Регистрация: 14.08.2009
Цитата
No init found.


Либо нет файла или симлинка /sbin/init, либо он есть но неработоспособный, что может быть по нескольким причинам, вероятные:
1 Не совпадает abi ядра и бинарников в юзерспейсе
2 Не хватает динамических библиотек (busybox собран не статически а библиотеки uc/libc не скопированы)
3 В корневой фс лежат библиотеки libc а busybox собран с uclibc
4 или вообще busybox собран хостовым gcc для i386 а не кросскомпилятором (префикс задается в конфигураторе busybox)
Спуститься к концу Подняться к началу
Персональная информация
Geban
Добавлено 25.01.2010 11:22 Сообщение: 3
Geban
5

Пункты: 2060
Регистрация: 03.01.2010
Насчет abi не уверен как и насчет бибилиотек
Собирался кросс-компилятором arm-2007q1.
-----------------------------------------------------
Собрал busybox снова, сделал его статическим.
После загрузки платы получилась вот такая петрушка:
EXT3 FS on uba1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) on device 180:1.
devtmpfs: mounted
Freeing init memory: 124K
request_module: runaway loop modprobe binfmt-464c

после того как постоит пару минут говорит:
INFO: task swapper:1 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
swapper D c02c757c 0 1 0 0x00000000
[<c02c757c>] (schedule+0x290/0x2d4) from [<c02c798c>] (schedule_timeout+0x18/0x160)
[<c02c798c>] (schedule_timeout+0x18/0x160) from [<c02c772c>] (wait_for_common+0xd8/0x174)
[<c02c772c>] (wait_for_common+0xd8/0x174) from [<c0046f9c>] (call_usermodehelper_exec+0x90/0xac)
[<c0046f9c>] (call_usermodehelper_exec+0x90/0xac) from [<c004719c>] (__request_module+0x110/0x158)
[<c004719c>] (__request_module+0x110/0x158) from [<c0088d58>] (search_binary_handler+0x220/0x23c)
[<c0088d58>] (search_binary_handler+0x220/0x23c) from [<c0089720>] (do_execve+0x15c/0x264)
[<c0089720>] (do_execve+0x15c/0x264) from [<c002a940>] (kernel_execve+0x34/0x80)
[<c002a940>] (kernel_execve+0x34/0x80) from [<c0027598>] (init_post+0xa4/0xec)
[<c0027598>] (init_post+0xa4/0xec) from [<c00088b8>] (kernel_init+0xd0/0x100)
[<c00088b8>] (kernel_init+0xd0/0x100) from [<c00287d0>] (kernel_thread_exit+0x0/0x8)

что оно от меня хочет совершенно не понятно. понял что разговор про какой-то модуль идет
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 25.01.2010 18:51 Редактировалось 25.01.2010 18:59 Сообщение: 4
sasamy
4.70

Пункты: 78606
Регистрация: 14.08.2009
Цитата
runaway loop modprobe binfmt-464


Там в rootfs от староого ядра никакие модули не остались случайно ? Возможно что-то собралось модулем и ядро не может подгрузить его. как проверить я уже писал - нужно все собирать статически.
Спуститься к концу Подняться к началу
Персональная информация
Geban
Добавлено 25.01.2010 18:59 Редактировалось 25.01.2010 21:44 Сообщение: 5
Geban
5

Пункты: 2060
Регистрация: 03.01.2010
В самом бизибоксе модулей вроде нет.. я так понимаю надо смотреть в ядре что бы модулей не было. Только что пересмотрел весь конфиг ядра, нигде нету ни одного модуля, везде статика. собрал ядро, результат тот же
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 25.01.2010 22:30 Редактировалось 25.01.2010 22:32 Сообщение: 6
sasamy
4.70

Пункты: 78606
Регистрация: 14.08.2009
Попробуй с моим скелетом rootfs собрать.
http://sasamy.narod.ru/dataflash.sceleton.tar.gz
чтобы симлинки создались в busybox после cборки make сделай примерно так
#make CONFIG_PREFIX=/home/sasa/rootfs install
/home/sasa/rootfs - замени тем где у тебя будет скелет моей рутфс. Потом скопируй это на флэшку. Вообще это ругается ядро, и тем более он про ext3 сообщает - странно это, ты же говорил что в ext2 форматировал.
Спуститься к концу Подняться к началу
Персональная информация
Geban
Добавлено 25.01.2010 23:38 Редактировалось 25.01.2010 23:39 Сообщение: 7
Geban
5

Пункты: 2060
Регистрация: 03.01.2010
Ага, это я протупил. Флэшка 4 гига просто я с дуру взял и сказал убунте сделать ext2 на все 4 гига :) а она видать подумала что для такого размера будет лучше ext3 сделать :) Щас сделал раздел на 3 гига и попробовал свой вариант rootfs. на разметку диска больше не ругается,но основная картина та же. Щас попробую с Вашим скелетом
Спуститься к концу Подняться к началу
Персональная информация
Geban
Добавлено 26.01.2010 03:57 Сообщение: 8
Geban
5

Пункты: 2060
Регистрация: 03.01.2010
Вобщем, попробовал по вашему, Результат тот же... ругается на какой то модуль..
request_module: runaway loop modprobe binfmt-464c
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 26.01.2010 04:35 Редактировалось 26.01.2010 04:44 Сообщение: 9
sasamy
4.70

Пункты: 78606
Регистрация: 14.08.2009
В ядре ничего не менял ? только busybox пересобирал ? Скинь куда-нибуть свой конфиг busybox. А еще лучше по шагам расскажи что сделал - а то ты говоришь что у тебя одно а на самом деле другое - то раздеов нет, то фс совсем другая.
Спуститься к концу Подняться к началу
Персональная информация
Geban
Добавлено 27.01.2010 11:01 Сообщение: 10
Geban
5

Пункты: 2060
Регистрация: 03.01.2010
Все получилось. Взял новое ядро 2.6.30.10 (всмысле свеже скачаное) распаковал, воткнул конфиг(make ARCH=arm at91sam9260ek_defconfig), сделал паре скриптов.. один зампускает make другой make menuconfig через крос-компилятор. Запустил make_menuconfig добавил нужную файловую систему, написал конфигурационную строку типа mem=32M console=/dev/ttyS0,115200 root=/dev/sda1 rw rootwait
выключил мне ненужные драйверы, сохранил и собрал. С бизивоксом поступил как сказал sasamy используя его "скелет", залил на флэшку и с тем что получилось загрузил плату. и все заработало. Пришлось только подправить немного /etc/init/rc.d/rc.s
Спасибо всем кто помогал впихнуть в мою голову понимание процесса :)
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux