Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Процессорные модули » SK-iMX6S-OEM(-WiFi)
Изменена схема загрузки ядра
Pavel Ivanchenko
Добавлено 07.02.2014 16:13 Редактировалось 12.09.2017 18:59
0
Сообщение: 1
Pavel Ivanchenko
Admin
4.39

Пункты: 91348
Регистрация: 24.03.2009
Пол: Мужчина
Актуально для модулей отгруженных до 02.2014

После тестирования очередной партии SK-iMX6S-OEM модулей, выяснилось, что текущая схема загрузки ядра приводит к "угрожающему" проценту брака.
Чтобы этого избежать и сделать процесс загрузки более надежным (в случае возникновения дополнительных Bed блоков в партиции хранения ядра) изменили механизм загрузки ядра.

Ранее, ядра хранились в не форматированной области NAND flash и считывались u-boot в RAW режиме с указанием явных адресов и размеров.

Сейчас, партиции хранения ядра объеденены в одну и на ней создана дополнительная UBI ФС партиция (если хранить в основной ФС, процесс загрузки существенно замедлится, т.к. монтирование больших разделов UBI довольно долгое занятие, особенно в контексте загрузчика u-boot) с которой загрузчик u-boot читает ядро.

Пришлось внести изменения в NAND партиции ядра и перейти на новую версию u-boot, переписать скрипты обновления системы.
Так же теперь нельзя обновить ядро из u-boot, зато при запущенной системе это стало сделать гораздо проще (просто скопировать файлы в /boot папку).

Все исходные тексты и виртуальная машина обновлены на ФТП.

UPD 12.09.2017
Как ни печально, но метод с загрузочным UBI разделом себя плохо зарекомендовал, со временем u-boot не редко отказался читать ядро.
А т.к. за это время MLC NAND флешки пропали с нашего рынка (сейчас везде ставим SLC флешки), то исчезла и проблема породившая первоначальное изменение схемы загрузки (кривая поддержка MLC в u-boot).
Начиная со сборки "buildroot-2017.08 на базе ядра 4.1.15-2.1.0 для i.mx6" вернули обратно механизм загрузки непосредственно с секторов NAND флешки.
Спуститься к концу Подняться к началу
Персональная информация
Mikchel
Добавлено 11.09.2017 16:56 Сообщение: 2
Mikchel
0

Пункты: 170
Регистрация: 08.03.2016
Добрый день.
А не маленьким получается раздел в 16МБ?
Если я правильно понял лог, то ubifs не хватает места или у меня флешка сильно "плохая" стала?
Поможет увеличение размера раздела допустим до 32, 64 мегабайт?
Это конечно плохо, что придется отходить от родного разбиения.
И еще вопрос - подскажите, плиз, кто создает ноды для /dev/ubi0, ubi1....какое-то правило udev?
Посмотреть на родном дистрибутиве уже не могу - пока отлаживал "восстановление" системы, первая удачно выполненная команда была flash_erase :)

Jan 1 00:00:10 buildroot user.notice kernel: UBI: attaching mtd0 to ubi0
Jan 1 00:00:10 buildroot user.notice kernel: UBI: scanning is finished
Jan 1 00:00:10 buildroot user.warn kernel: UBI warning: print_rsvd_warning: cannot reserve enough PEBs for bad PEB handl
ing, reserved 123, need 159
Jan 1 00:00:10 buildroot user.notice kernel: UBI: attached mtd0 (name "boot", size 16 MiB) to ubi0
Jan 1 00:00:10 buildroot user.notice kernel: UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
Jan 1 00:00:10 buildroot user.notice kernel: UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
Jan 1 00:00:10 buildroot user.notice kernel: UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
Jan 1 00:00:10 buildroot user.notice kernel: UBI: good PEBs: 127, bad PEBs: 1, corrupted PEBs: 0
Jan 1 00:00:10 buildroot user.notice kernel: UBI: user volume: 0, internal volumes: 1, max. volumes count: 128
Jan 1 00:00:10 buildroot user.notice kernel: UBI: max/mean erase counter: 1/1, WL threshold: 256, image sequence number:
998430147
Jan 1 00:00:10 buildroot user.notice kernel: UBI: available PEBs: 0, total reserved PEBs: 127, PEBs reserved for bad PEB
handling: 123
Jan 1 00:00:10 buildroot user.notice kernel: UBI: background thread "ubi_bgt0d" started, PID 143
Jan 1 00:00:10 buildroot user.err kernel: UBIFS error (pid 144): ubifs_mount: cannot open "ubi0:boot", error -19
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 11.09.2017 17:15 Сообщение: 3
sasamy
4.70

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

А не маленьким получается раздел в 16МБ?


На разделе 16M лежит загрузчик без ФС

Цитата

И еще вопрос - подскажите, плиз, кто создает ноды для /dev/ubi0, ubi1....какое-то правило udev?


ядро на основании переданных параметров загрузки

ubi.mtd=1
Спуститься к концу Подняться к началу
Персональная информация
Mikchel
Добавлено 11.09.2017 20:48 Сообщение: 4
Mikchel
0

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

А не маленьким получается раздел в 16МБ?


На разделе 16M лежит загрузчик без ФС

Тут, видимо, произошло недопонимание. В конфиге убута есть следующее
mtdparts=gpmi-nand:16M(boot),512M(rootfs),-(userdata)
соответственно я решил, что boot это как раз то, что написано в шапке - раздел для хранения ядер, а cсоответственно rootfs это второй раздел.
Может тогда внести дополнение в шапку, более подробно расписав пораздельно что-куда?


Цитата


И еще вопрос - подскажите, плиз, кто создает ноды для /dev/ubi0, ubi1....какое-то правило udev?


ядро на основании переданных параметров загрузки

ubi.mtd=1


Да, действительно, помогло. Спасибо.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-iMX6S-OEM(-WiFi)