Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Отладочные платы » SK-iMX233
Как переместить rootfs в nand?
switch
Добавлено 18.08.2010 22:13
0
Сообщение: 1
switch
0

Пункты: 153
Регистрация: 17.08.2010
Странное ограничение в 4.5 мб файловой системы не позволяет использовать все вкусности.
На сколько я понял, флеш память разбита на 2 куска: 30 мб и 200 мб. По умолчанию грузится с первого. Если образ больше какого-то размера, то при загрузке ядро валится в краш:
Код
swapper: page allocation failure. order:0, mode:0x21
Backtrace:
...

такие сообщения валятся постоянно.
Возникло желание перевести корневую ФС в NAND.
Скопировал файлы в /mnt/nand, однако как подсказать uboot, откуда грузить систему?
Где про это можно прочитать, применительно к SK-iMX233?
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 18.08.2010 22:35 Сообщение: 2
Pavel Ivanchenko
Admin
4.39

Пункты: 91534
Регистрация: 24.03.2009
Пол: Мужчина
U-boot здесь не причем, его вобще нет в штатной системе.
Копируйте корневуху в NAND да меняйте аргументы запуска ядра, примеры конфигов в корне ядра лежат.
Спуститься к концу Подняться к началу
Персональная информация
switch
Добавлено 18.08.2010 23:07 Сообщение: 3
switch
0

Пункты: 153
Регистрация: 17.08.2010
хм.
а откуда система узнает, с какого места запускаться?
и какие аргументы ядра должны быть в этом случае?
Спуститься к концу Подняться к началу
Персональная информация
switch
Добавлено 23.08.2010 13:25 Сообщение: 4
switch
0

Пункты: 153
Регистрация: 17.08.2010
по моим представлением загрузка происходит на x86 обычно так:
bios -> extlinux|grub|lilo -> initrd+vmlinuz -> rootfs
при этом биос знает где искать extlinux, который в свою очередь имеет параметры, по которым он знает куда лезть за initrd

в случае платы, вероятно, все обстоит аналогично:
CPU -> uboot -> linux.sb
как я полагаю, uboot должен получить параметры, с какого носителя загрузиться. Или я не прав?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 23.08.2010 13:38 Редактировалось 23.08.2010 13:39 Сообщение: 5
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
2switch вы пишите:
Цитата
как я полагаю, uboot должен получить параметры, с какого носителя загрузиться. Или я не прав?

перед этим вам пишут
Код
U-boot здесь не причем, его вобще нет в штатной системе

вам советуют
Код
примеры конфигов в корне ядра лежат.

после этого вы спрашиваете
Цитата
и какие аргументы ядра должны быть в этом случае?

настоятельно рекомендую - почитайте форум, покопайтесь в каталоге сорцов на прилагаемом диске..
и абстрагируйтесь от больших компов - в случае эмбеддед систем все немного специфичнее. нет понятия БИОС, нет ЛИЛО, нет ГРУБа
есть стартовые загрузчики, возможны промежуточные
в вашем случае видимо для загрузки рутфс с нанда, надо поднять поддержку нанда в ядре, поддержку ФС в нанде, прописать параметры запуска ядра, прошить в нанд свой образ ФС и пробовать грузиться
по мере возникновения проблем их анализировать, в случае затыка вполне можно выкладывать сюда куски лога и вопросы..
часть ваших вопросов уходит из области iMX233 в общие вопросы по работе эмбеддед линукс. можно подчерпнуть некие знания на этом форуме и транспонировать на свои задачи.
и тыпы..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 23.08.2010 13:39 Редактировалось 23.08.2010 13:41 Сообщение: 6
Pavel Ivanchenko
Admin
4.39

Пункты: 91534
Регистрация: 24.03.2009
Пол: Мужчина
Последовательность загрузки очень условная вещь и u-boot, как правило, уже вторичный загрузчик, наличие которого дело комфорта.
U-boot текущей версии не имеет поддержки NAND (да и сеть у меня глючила, у sasamy работала), поэтому он может только грузить по TFTP и поэтому отсутствует в системе.
Первичный загрузчик интегрируется в ядро на этапе сборки, от чего и название linux.sb
Источник носителя загрузки определяют джампера, а вот откуда для ядра корневую ФС монтировать , определяют аргументы запуска ядра.
Спуститься к концу Подняться к началу
Персональная информация
switch
Добавлено 23.08.2010 13:51 Сообщение: 7
switch
0

Пункты: 153
Регистрация: 17.08.2010
Спасибо за ответы!
на сколько я понимаю, nand разделена на два раздела, в одном из них по-умолчанию содержится прошивка, тот самый linux.sb. Процедура nand_tftp_update, собственно, и записывает ее туда.
но если положить во второй раздел, ведь все поменяется? или загрузчик смотрит в первый раздел, если не нашел - во второй?
Пока нет возможности проверить, потому и спрашиваю...
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 23.08.2010 14:06 Сообщение: 8
Pavel Ivanchenko
Admin
4.39

Пункты: 91534
Регистрация: 24.03.2009
Пол: Мужчина
Загрузчик, интегрированный в ядро, вобще никуда не смотрит, просто копирует из NAND (в механику адресообразования и пропуска бедблоков не вдавался) ядро и стартует его.
Ядро уже само должно знать-решать, где у него будет корневуха, и тут возможна туча вариантов, начиная с initramfs и до netfs ...
В вашем случае, как я уже говорил, нужно создать или скопировать корневую во втором разделе NAND (в загруженой системе фигурирует только один раздел UBIFS, потому как первый без ФС), а потом изменить аргументы ядра на монтирование UBIFS раздела как корневой ФС.
Аргументы ядра лучше не копировать (путем подмены всего конфига), а переписать в ручную через menuconfig и не забудьте отключить initramfs, иначе больше памяти от манипуляции переноса корневухи не станет .
Спуститься к концу Подняться к началу
Персональная информация
switch
Добавлено 23.08.2010 14:23 Сообщение: 9
switch
0

Пункты: 153
Регистрация: 17.08.2010
вот теперь до меня доперло.
буду пробовать, спасибо!
Жаль initramfs нельзя делать больше 5 мб, все-таки такой подход надежнее. Я в своих VoIP серверах подобного подхода придерживаюсь...
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-iMX233