Ник:
Пароль:

Контакты

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
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:8
Форум » starterkit.ru » Процессорные модули » SK-iMX53-OEM
обновить ядро и загрузчик u-boot из-под рутовой в NAND
buletz
Добавлено 11.12.2013 13:02
0
Сообщение: 1
buletz
3

Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
Столкнулся с ситуацией, что если обновлять загрузчик u-boot утилитой kobs-ng, работая при этом из-под рутовой файловой системы в NAND, то разрушается эта файловая система.

Я так понимаю, что причина в том, что нельзя шить в NAND если работаешь из NAND.

В частности после запуска
Код
kobs-ng init -v u-boot.bin

начинают сыпаться ошибки

Код
UBIFS error (pid 724): ubifs_check_node: bad CRC: calculated 0xbb689dc5, read 0x6fcaaf27
UBIFS error (pid 724): ubifs_check_node: bad node at LEB 458:108424
UBIFS error (pid 724): ubifs_read_node: expected node type 9
UBIFS error (pid 724): ubifs_iget: failed to read inode 5915, error -117
UBIFS error (pid 724): ubifs_lookup: dead directory entry 'killall', error -117
UBIFS warning (pid 724): ubifs_ro_mode: switched to read-only mode, error -117
UBIFS error (pid 725): ubifs_check_node: bad CRC: calculated 0xbb689dc5, read 0x6fcaaf27
UBIFS error (pid 725): ubifs_check_node: bad node at LEB 458:108424
UBIFS error (pid 725): ubifs_read_node: expected node type 9
UBIFS error (pid 725): ubifs_iget: failed to read inode 5915, error -117
UBIFS error (pid 725): ubifs_lookup: dead directory entry 'killall', error -117


и файловая система после перезагрузки уже не работает, имеем kernel panic.

Вопрос:
можно ли в принципе осуществить обновление u-boot (а потом и ядра), если загрузился с рутовой в NAND ?

Что я пробовал:
попробовал менять корневой каталог командой chroot на SD карточку, где лежит дубликат файловой системы.
Однако при этом не пойму как отмонтировать NAND, на мои попытки выдается ошибка device busy.

Зачем мне это нужно:
Нужно обновлять прошивку девайса без вскрытия корпуса, т.е. без всяких механических манипуляций с подключением Ethernet кабеля или вставлением другой SD карты.
Все что у меня есть в доступе - это USB коннектор, через который я могу заливать на устройство файлы посредством USB Gadget (девайс определяется как USB drive и доступен для записи).
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 11.12.2013 13:50 Сообщение: 2
sasamy
4.70

Пункты: 76984
Регистрация: 14.08.2009
Цитата

Столкнулся с ситуацией, что если обновлять загрузчик u-boot утилитой kobs-ng, работая при этом из-под рутовой файловой системы в NAND, то разрушается эта файловая система.


Покажите полный лог загрузки начиная от включения питания до приглашения входа вашей работающей системы до прошивки u-boot, лучше наверно на внешний ресурс типа http://pastebin.com
Спуститься к концу Подняться к началу
Персональная информация
buletz
Добавлено 11.12.2013 14:01 Сообщение: 3
buletz
3

Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
1. Вот лог:
http://pastebin.com/vwQdx9Ku

2. Нашел гуглом аналогичную тему
http://4embedded.wordpress.com/2012/02/27/kexec-using-kexec-system-to-update-live-ubifs-root-filesystem/
и там автор пробовал тот же вариант что и я (команду chroot) и у него тоже не вышло, правда он не стал вдаваться в подробности:
Код
Use pivot_root/chroot pair to switch to different rootfs and then umount main root filesystem (unfortunately, it did not worked for me),


Там же по ссылке предложено решение (kexec), которое сейчас буду пробовать. Но очень уж непростой алгоритм выходит (запускать временное ядро с временной рутовой системой, чтобы перешить NAND, а затем снова рестартовать уже из NANDа).
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 11.12.2013 14:05 Сообщение: 4
sasamy
4.70

Пункты: 76984
Регистрация: 14.08.2009
Цитата

1. Вот лог:


А сообщения u-boot есть или они у вас отключены ?
Спуститься к концу Подняться к началу
Персональная информация
buletz
Добавлено 11.12.2013 14:06 Сообщение: 5
buletz
3

Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
прошу прощения, лог u-boot здесь:
http://pastebin.com/YvDiWNPS
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 11.12.2013 14:34 Редактировалось 11.12.2013 14:36 Сообщение: 6
sasamy
4.70

Пункты: 76984
Регистрация: 14.08.2009
Судя по логам - все штатное. Я потом попробую зашить с рутовой в nand но на другой плате - у меня нет oem, есть старая ревизия с ddr2 256MB, но мне не понятен смыл ваших страданий :) Зачем обновлять загрузчик ? Если загрузчик цел - вообще никакого смысла нет, если его нет то кроме как с MFG вы уже не загрузитесь

Цитата

Все что у меня есть в доступе - это USB коннектор


Этого для MFG достаточно - штатно ему больше ничего не надо - в этом и есть его ценность (жаль под Linux не работает), SD и прочие прибамбасы это уже выдумки Павла :)
Спуститься к концу Подняться к началу
Персональная информация
buletz
Добавлено 11.12.2013 14:44 Сообщение: 7
buletz
3

Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
Смысл страданий:
Загрузчик цел, но его нужно поменять, т.к. стоит задача выполнить ряд операций как можно раньше с момента включения устройства. А это "раньше" и есть загрузчик u-boot, т.к. ядро и прикладной софт стартуют слишком поздно (особенно учитывая что заводской u-boot имеет 3 секундную паузу для входа в консоль).

MFG не подходит, т.к. для него нужно размыкать\замыкать перемычку CS, а следовательно вскрывать прибор.
Смысл в том, чтобы обновить прошивку без вскрытия.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 11.12.2013 15:06 Редактировалось 11.12.2013 15:26 Сообщение: 8
sasamy
4.70

Пункты: 76984
Регистрация: 14.08.2009
Цитата

Загрузчик цел, но его нужно поменять, т.к. стоит задача выполнить ряд операций как можно раньше с момента включения устройства.


Так у вас свой загрузчик или или тот же u-boot но с отключенной паузой ? Если второе:

setenv bootdelay 0
saveenv

только потом вы его его уже не остановите :) штатно не включена опция CONFIG_ZERO_BOOTDELAY_CHECK.

Цитата

Смысл в том, чтобы обновить прошивку без вскрытия.


Вот именно поэтому я рекомендую вообще не трогать загрузчик, а то потом некоторые даже без всяких корпусов не могут его восстановить. Кстати я не понял - почему на oem нет перемычек выбора загрузки, на обычных платах раньше они были, потом только площадки хотя бы остались - при их наличии элементарно вывести на корпус кнопку и при необходимости включать режим serial download для принудительной загрузки с USB независимо от CS NAND

UPD попробуйте если все приспичило менять так

echo 1 > /sys/devices/platform/mxc_nandv2_flash.0/ignorebad
kobs-ng init --chip_0_device_path=/dev/mtd0 u-boot.bin
echo 0 > /sys/devices/platform/mxc_nandv2_flash.0/ignorebad
Спуститься к концу Подняться к началу
Персональная информация
buletz
Добавлено 11.12.2013 15:58 Сообщение: 9
buletz
3

Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
1. Попробовал предложенные три команды с ignorebad - тот же результат, лог тут:
http://pastebin.com/m8cH5NAA

После перезагрузки - kernel panic:
http://pastebin.com/rJ1y0G4N

2. Изменение паузы в u-boot это только пол дела.
Еще выставляем свои GPIO (нужно подать питание на подсветку дисплея) + в будущем планируется splash screen прямо из u-boot.

3. Перемычка NAND CS на плате OEM есть.
Однако в нашем проекте выводить соотв. кнопку/переключатель на корпус нельзя, т.к. прибор в общем случае не для продвинутого пользователя, а для чайника. Нельзя ему лишних кнопочек/переключателей давать.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 11.12.2013 16:21 Сообщение: 10
Pavel Ivanchenko
Admin
4.39

Пункты: 91364
Регистрация: 24.03.2009
Пол: Мужчина
Смотрю на все это и что то слабо понимаю ...
У вас со штатными прошивками, при обновлении u-boot (через kobs-ng) корневая ФС рушится?
Само собой просится эксперимент - изменить партиции - увеличить раздел для загрузчика (что он не затирал ФС).
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-iMX53-OEM