реклама на сайте
подробности

 
 
> файловая система на SD карте, ARM9
TigerSHARC
сообщение Jan 13 2012, 08:48
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



в своё время ставил Линукс на ARM9 пользуясь этой ссылкой
http://dmilvdv.narod.ru/AT91SAM9260/index.html?linux.html

файловая система стояла на Nandflash

из файла аrch/arm/mach-at91/board-sam9260-ek.c:

static struct mtd_partition __initdata ek_nand_partition[] = {

{

.name = "Bootstrap",

.offset = 0,

.size = SZ_4M,

},

{

.name = "rootfs",

.offset = MTDPART_OFS_NXTBLK,

.size = MTDPART_SIZ_FULL,

},

};



теперь нет NandFlash и файловая система будет стоять на SDкарточке (бутсрап будет на DataFlash)
как задать расположение файловой системы на SDкарте?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
mdmitry
сообщение Jan 13 2012, 11:59
Сообщение #2


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Посмотрите, как сделано для платы siberia (http://www.siberia-ge.com/). Рецепт, вроде, универсален. Можно всю файловую систему сделать под QEMU, а далее перенести на карту. (Именно так и делал для Debian). На форуме были ветки с обсуждением. Поиск поможет.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Jan 15 2012, 16:22
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Цитата(mdmitry @ Jan 13 2012, 15:59) *
Посмотрите, как сделано для платы siberia (http://www.siberia-ge.com/). Рецепт, вроде, универсален. Можно всю файловую систему сделать под QEMU, а далее перенести на карту. (Именно так и делал для Debian). На форуме были ветки с обсуждением. Поиск поможет.


Если честно не нашёл на сайте проекта Siberia ничего подходящего, так как ьам говорится о том что нужно собрать Linux, скинуть архив рутовой на SD карту и всё само заработает (Linux "подцепит" рутовую с SD карты).
Я думаю как-то надо указать где "брать" rootfs при старте.


Сообщение отредактировал TigerSHARC - Jan 15 2012, 16:25
Go to the top of the page
 
+Quote Post
Alesha
сообщение Jan 16 2012, 07:12
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 28-05-08
Из: Минск
Пользователь №: 37 873



с какого раздела брать рутфс во время init ядру указывается в опциях загрузки через параметр root=/dev/X, где X зависит от того, на каком устройстве рутфс находится, например mmcblk0 для первого раздела на SDcard, или mtdblock0 для 1го раздела NAND. Примеры загрузки U-Boot
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jan 16 2012, 09:58
Сообщение #5


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(TigerSHARC @ Jan 15 2012, 19:22) *
Если честно не нашёл на сайте проекта Siberia ничего подходящего, так как ьам говорится о том что нужно собрать Linux, скинуть архив рутовой на SD карту и всё само заработает (Linux "подцепит" рутовую с SD карты).
Я думаю как-то надо указать где "брать" rootfs при старте.

Alesha Вам правильно указал.
На сайте Siberia после регистрации были доступны подробные материалы о конфигурации и загрузки.
Возможно, полезно посмотреть сайт starterkit'а


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Jan 16 2012, 12:56
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Стало быть, путь до rootfs указывается в Uboot?
Тогда к чему это(взято с сайта http://dmilvdv.narod.ru/AT91SAM9260/index.html?linux.html):

Задать расположение файловой системы и имена разделов.

laughing.gif/*

* NAND flash

*/

static struct mtd_partition __initdata ek_nand_partition[] = {

{

.name = "Bootstrap",

.offset = 0,

.size = SZ_4M,

},

{

.name = "rootfs",

.offset = MTDPART_OFS_NXTBLK,

.size = MTDPART_SIZ_FULL,

},

};

И вот ещё(из дискусии на starterkit.ru):
...находите, дописываете свой скрипт по автомаунту и автозапуску с флешки..
потом запускаете скрипт сборки системы, который состегнет старое ядро и новую рутовую, и этот бинарник прошиваете во флеш..
(ссылка http://starterkit.ru/html/index.php?name=f...w&id=14748)

а вы пишете что просто через U-boot всё решается... laughing.gif
или можно и так и так?

Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jan 16 2012, 13:55
Сообщение #7


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(TigerSHARC @ Jan 16 2012, 15:56) *
Стало быть, путь до rootfs указывается в Uboot?

Да, один из возможных вариантов. Вы в окружении запуска ядра в U-boot указываете параметры запуска. Из командной строки U-boot эти параметры легко редактируются.
На плате ATMEL sam9260-ek у меня ядро было во flash, а ФС на SD карте. Можете U-boot и linux kernel держать в dataflash (nandflash), а ФС на SD.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
Alesha
сообщение Jan 16 2012, 14:02
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 28-05-08
Из: Минск
Пользователь №: 37 873



По порядку.
static struct mtd_partition это список разделов nand, который необходимо знать ядру. При загрузке с nand u-boot передает ядру параметр загрузки root= который указывает где располагается rootfs. Ядро в свою очередь перед тем как замонтировать rootfs производит инициализацию всех вкомпилированных в него драйверов, в момент загрузки ядра происходит регистрирование mtd устройства в системе, с этого момента ядро знает таблицу разделов c nand, как только начинается стадия init0 происходит монтирование раздела с rootfs, какой раздел монтировать как раз и передается через параметр root=.
В случае загрузки с SDcard в ядро должна быть вкомпилирована поддержка sdcard, но в этом случае после инициализации драйвера sdcard система сама определить таблицу разделов на устройстве, и опять же на стадии init0 подцепит раздел, который передан через root=, а описание таблицы разделов nand уже необязательно.

То, что пишут на стартерките по-моему вообще отдельная песня, у меня сложилось впечатление что они через u-boot разворачивают рутфс в память а потом монтируют рутфс уже непосредственно из памяти (dev/ram0), и в их случае действительно надо после загрузки надо еще домонтировать sdcard (потому что предварительно смонтирован только раздел из памяти), и запускать уже из sdcard (хотя не понимаю что им мешало раздел подцепить в fstab)

Проще говоря, если надо рутфс с sdcard, то надо передать ядру параметр rootfs=/dev/mmcblockX (где X номер раздела, начиная с нуля)
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jan 16 2012, 14:30
Сообщение #9


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(Alesha @ Jan 16 2012, 17:02) *
Проще говоря, если надо рутфс с sdcard, то надо передать ядру параметр rootfs=/dev/mmcblockX (где X номер раздела, начиная с нуля)

Да и не забыть вставить команду ожидания монтирования rootfs. В ядре должна быть включена поддержка sdcard (mtd устройства).


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Jan 18 2012, 20:00
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Вот рабочий пример для загрузки с SD/MMC карты:

Код
console=ttyS0,115200 root=/dev/mmcblk0p1 rootfstype=ext2 rootdelay=5 mem=64M
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 17:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01422 секунд с 7
ELECTRONIX ©2004-2016