Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Отладочные платы » SK-MAT91SAM9XXXXX
прошивка Линукса на плату SK-MAT91SAM9260
Novichok
Добавлено 08.07.2010 21:59 Редактировалось 09.07.2010 22:34
0
Сообщение: 1
Novichok
5

Пункты: 36
Регистрация: 08.07.2010
Установили BootStrap и U-Boot, попробовали прошить простенькую программу, получилось. А задача состоит в прошивке Линукса. на диске в комплекте был zLinux, залили его, но он не запускается, пробовали другую верчсию Линукса, тоже не хочет. Напишите пож-та подробно что и как делать, чтобы все заработало. может нужно какие то дополнительные команды для U-boot ?
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 09.07.2010 09:50 Сообщение: 2
Pavel Ivanchenko
Admin
4.39

Пункты: 92805
Регистрация: 24.03.2009
Пол: Мужчина
Спуститься к концу Подняться к началу
Персональная информация
Novichok
Добавлено 09.07.2010 22:34 Редактировалось 09.07.2010 22:39 Сообщение: 3
Novichok
5

Пункты: 36
Регистрация: 08.07.2010
сделали все так как написано в вышеуказанном топике.
а именно
1) запустите виртуальную машину VMware
2) подключите сетевой (Etnernet) кабель к плате и включите питание
3) в командной строке u-boot введите команду run tftp_update, далее все должно автоматически скопироваться и сохраниться во флешке
во первых плата не пингуется, но сама пингует комп и виртуалку (это просто замечание)
во вторых после команды run tftp_update пришлось воспользоваться командой run tftp_boot (как написано в мануале) чтобы запустить таки наконец Линукс на плате.
но вот в че загвоздка, в автоматическом режиме U-Boot не может самостоятельно это сделать, процесс зависает после шага
Starting application at 0x20000000... (вроде так), т.е. не может запустить Линукс уже с SDRAM. вопрос почему? много инфы уже перерыл, но так пока ответа и не нашел.
помогите пож-та, очень надо
PS звонили в службу поддержки но ничего путного по этому поводу не услышали
ах да, уточню, в наличии на плате только DataFlash и SDRAM 32 Mb (т.е. Линукс заливается на Dataflash)
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 10.07.2010 01:02 Редактировалось 10.07.2010 01:08 Сообщение: 4
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Не мешало бы вам все же поискать на форуме.

Цитата

Starting application at 0x20000000... (вроде так)


Вроде или так ? С адреса 0x20000000 linux и не должен запуститься.

Цитата

во первых плата не пингуется, но сама пингует комп и виртуалку (это просто замечание)


Это замечание лучше сделайте создателям u-boot - он и не должен пинговаться потому что сеть работает на полинге (циклическом опросе) и только когда это нужно - например когда вы запустили ping в u-boot, к платам отношения не имеет

Цитата

PS звонили в службу поддержки но ничего путного по этому поводу не услышали


Интересно - как можно догадаться почему человек не может сделать простейшие движения :)
Спуститься к концу Подняться к началу
Персональная информация
Novichok
Добавлено 12.07.2010 16:30 Сообщение: 5
Novichok
5

Пункты: 36
Регистрация: 08.07.2010
тогда расписываю все действия по порядку:
1) в программе SAM-BA используя кнопку Send boot File зашиваем на DataFlash приложение Bootstrap-v1.11, вместе с которой автоматически ставится и U-Boot-v1.1.5
2) далее заливаем ядро
• запускаем скрипт linux-2.6.XX/make_kernel
• включаем/перезагружаем плату с подключенным Ethernet и RS232 кабелями
• прерываем в u-boot процесс загрузки нажатием любой клавишы
• выполняем “run nand_update” а затем “run tftp_boot”

после run tftp_boot Линукс загружается без проблем и спокойно работает, но при перезагрузке платы U-Boot самостоятельно не может запустить Линукс, вопрос что сделано не так?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 12.07.2010 16:38 Сообщение: 6
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
пардон что влезаю :)
по первому пункту - вроде никто автоматически не ставиться
Bootstrap прошивается через скрипт Send Boot File, а Uboot через кнопку Write file - все делается ручками..
по второму - выложите лог команды Uboot - printenv, тогда что-нить станет понятнее из процесса записи и запуска..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Novichok
Добавлено 13.07.2010 12:24 Редактировалось 13.07.2010 12:25 Сообщение: 7
Novichok
5

Пункты: 36
Регистрация: 08.07.2010
Выкладываю более детальные данные.

1) На плату перепрошили BootStrap (v1.6) и U-Boot (1.1.5) - образы эти были взяты с поставленного с платой диска из архива Bootstrap-v1.6.

2) Установили Linux командой "run tftp_update" из под U-Boot. Образ линукса с ПК скопировался в DataFlash (Nand на плате нет).

При выполнении команды "run tftp_boot" под U-Boot выполняется загрузка Linux.

Однако при загрузке платы автоматической загрузки Linux не происходит - плата повисает. Привожу лог загрузки:

RomBOOT
>Start AT91Bootstrap...
Copy application ...
Run ...


U-Boot 1.1.5 (Apr 9 2008 - 23:02:52)

DRAM: 32 MB
DataFlash:AT45DB321
Nb pages: 8192
Page Size: 528
Size= 4325376 bytes
Logical address: 0xC0000000
Area 0: C0000000 to C0003FFF (RO)
Area 1: C0004000 to C0007FFF
Area 2: C0008000 to C0037FFF (RO)
Area 3: C0038000 to C041FFFF
In: serial
Out: serial
Err: serial
KS8721 PHY Detected
No link
MAC: error during RMII initialization
Hit any key to stop autoboot: 0
## Starting application at 0x20400000 ...

На этом месте плата повисает.
Привожу содержимое переменных окружения U-Boot:

U-Boot> printenv
bootdelay=3
baudrate=115200
tftp_update=tftpboot 20400000 zlinux; cp.b 20400000 c0038000 170000; tftpboot 20400000 rootfs; cp.b 20400000 c01a8000 277fff
tftp_boot=tftpboot 20400000 zlinux; tftpboot 21100000 rootfs; bootm 20400000
boot_df=cp.b c0038000 20400000 170000; cp.b c01a8000 21100000 277fff; bootm 20400000
ipaddr=192.168.0.136
netmask=255.255.255.0
ethaddr=00:1f:f2:00:00:00
serverip=192.168.0.2
bootcmd=cp.b 0xC0038000 0x20400000 170000;go 0x20400000;
stdin=serial
stdout=serial
stderr=serial

Environment size: 507/16380 bytes
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 13.07.2010 13:04 Сообщение: 8
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Код
bootcmd=cp.b 0xC0038000 0x20400000 170000;go 0x20400000;

как минимум вот тут ошибка в конце команды, должно быть bootm а не go
и пропущена загрузка rootfs - возможно она не нужна..

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

Пункты: 92805
Регистрация: 24.03.2009
Пол: Мужчина
Согласитесь, глупая ситуация, была работоспособная плата, что то там "накрутили" (судя по всему, что то с ядром) и спрашиваете - "почему оно не работает".

Залейте самбой бинарник из вложения по 0 адресу (это "скриншот" флешки), это то что я заливаю перед отправкой плат.
Attachment file: uploads/forum/forum-DRuwuxSPCM-7.rar
Спуститься к концу Подняться к началу
Персональная информация
Novichok
Добавлено 13.07.2010 13:30 Редактировалось 13.07.2010 13:42 Сообщение: 10
Novichok
5

Пункты: 36
Регистрация: 08.07.2010
Цитата
bootcmd=cp.b 0xC0038000 0x20400000 170000;go 0x20400000;
как минимум вот тут ошибка в конце команды, должно быть bootm а не go
и пропущена загрузка rootfs - возможно она не нужна..


Спасибо за замечание. По всей видимости для загрузки Linux был необходим запуск команды boot_df:

Код
boot_df=cp.b c0038000 20400000 170000; cp.b c01a8000 21100000 277fff; bootm 20400000


Поэтому прописав в U-Boot команды
Код
U-Boot> setenv bootcmd 'run boot_df';
U-Boot> saveenv

при перезагрузке платы проблема разрешилась. Linux запускается!

P.S. Не встречал упоминания этой команды ни в одном из мануалов.

P.P.S.
Цитата
Согласитесь, глупая ситуация, была работоспособная плата, что то там "накрутили" (судя по всему, что то с ядром) и спрашиваете - "почему оно не работает".
Ситуация не совсем глупая. Сначала пытались понять, насколько сложно программировать плату пользовательскими программами. Далее поняли, что проще делать под Linux. После пары ошибок в Сам-бе перепрошили DataFlash и вопрос, который у нас возник лишь - как установить Linux на плату, а точнее, как сконфигурировать U-Boot для автоматического запуска Linux. При этом мы выполняли пошагово все так, как описано в мануалах. Повторяю, что про команду boot_df нигде упоминаний не видели, а проблема, видимо была в том.

В любом случае, благодарю за помощь.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-MAT91SAM9XXXXX