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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Поселение на ARM ОС Linux, Плата AT91SAM9M10G45-EK
stas17
сообщение Dec 10 2010, 15:04
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427



Здравствуйте. У меня есть данная плата.Пытаюсь залить на нее свою ОС. С платы все было удалено. Залил на Dataflash bootstrap, u-boot и kernel.
В гипертерминале при загрузку платы загружается u-boot и пишет, что ядро не найдено...Насколько я понимаю надо прописать u-boot адрес расположения ядра. Но как это сделать? Вопрос несложный, но я пока с ним не разобрался...
Заранее благодарен.
Go to the top of the page
 
+Quote Post
Jury093
сообщение Dec 11 2010, 15:31
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(stas17 @ Dec 10 2010, 18:04) *
Здравствуйте. У меня есть данная плата.Пытаюсь залить на нее свою ОС. С платы все было удалено. Залил на Dataflash bootstrap, u-boot и kernel.
В гипертерминале при загрузку платы загружается u-boot и пишет, что ядро не найдено...Насколько я понимаю надо прописать u-boot адрес расположения ядра. Но как это сделать?

все было бы проще, если перед "С платы все было удалено" в юбуте дали команду printenv
из ее вывода можно было бы подчерпнуть адрес расположения ядра во флеше
если остался бинарник юбута, то можно внутри поискать содержимое переменных окружения по словам cp.b или bootm (если бинарников не осталось, то снимаю шляпу..)
как вариант - написать производителю платы - пусть вышлет карту расположения бинарников во флеше

а если рассуждать здраво, то пользователь может сам разложить бинарники во флешах и внешних накопителях в любое место. за исключением bootstrap. и разумеется проследить, чтобы все адреса были взаимоувязаны и не пересекались. и оставить место под переменные окружения uboot
Go to the top of the page
 
+Quote Post
dch
сообщение Dec 12 2010, 01:21
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



Дайте команду printenv
а там есть переменная окружения bootcmd в которой записана команда загрузки ос, она как правило bootm <адрес откуда взять ядро> [адрес откуда взять initrd диск], flinfo команда u-bootа выдает адреса и разбивку flash как их видит u-boot
Go to the top of the page
 
+Quote Post
stas17
сообщение Dec 15 2010, 06:39
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427



спасибо большое! оказывается в команде загрузки bootm все правильно прописано...причина в другом: образ, собственноручно собранного ядра, в виде zImage, а должен быть uImage, потому что u-boot выводит следующее сообщение: Can't get kernel image.
Так что мне нужно собрать ядро в формате uImage. А как это сделать я не знаю...вроде бы можно утилитой mkimage, но как я пока не разобрался..
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Dec 15 2010, 06:55
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(stas17 @ Dec 15 2010, 15:39) *
Так что мне нужно собрать ядро в формате uImage. А как это сделать я не знаю...вроде бы можно утилитой mkimage, но как я пока не разобрался..

make uImage
Go to the top of the page
 
+Quote Post
stas17
сообщение Dec 15 2010, 07:10
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427



Цитата(Dima_G @ Dec 15 2010, 12:55) *
make uImage

спасибо! все очень просто, а я не догадался)
Go to the top of the page
 
+Quote Post
stas17
сообщение Dec 16 2010, 11:21
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427




но все равно предварительно надо было установить эту утилиту mkimage...

Сообщение отредактировал stas17 - Dec 16 2010, 11:27
Go to the top of the page
 
+Quote Post
stas17
сообщение Dec 17 2010, 07:15
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427



Собрал ядро (командой make uImage), записал на плату, но с него все равно не стартует...Пишет, что начинается загрузка с него (booting kernel from Legacy Image....), определяет версию, размер, пишет, что оно распаковано и т.д., а потом все равно выдает: Can't get kernel image.
Удалил и записал заново теперь грузится с него, но теперь другая проблема...пишет:
Starting Kernel
Uncompressing linux...done. Booting the kernel
и все...
после того, как я записал rootfs, опять вернулся к Can't get kernel image.

Сообщение отредактировал stas17 - Dec 17 2010, 10:18
Go to the top of the page
 
+Quote Post
stas17
сообщение Dec 22 2010, 10:57
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427



*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: macb0
macb0: Starting autonegotiation...
macb0: Autonegotiation timed out (status=0x7849)
macb0: link down (status: 0x7849)
Hit any key to stop autoboot: 0
## Booting kernel from Legacy Image at 22000000 ...
Image Name: Linux-2.6.36-my_by_RDM
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2020160 Bytes = 1.9 MB
Load Address: 70008000
Entry Point: 70008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

вот именно такое сообщение получаю в гипертерминале...
Разве ни у кого нет мыслей по этому поводу?
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Dec 22 2010, 14:30
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(stas17 @ Dec 22 2010, 19:57) *
Разве ни у кого нет мыслей по этому поводу?


У вас есть возможность достать скомпилированное под эту платформу ядро? Попробуйте его записать вместо вашего и проверить загрузку.
Убедиться, что вы используете правильный тулчейн. Ну и тд
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Dec 22 2010, 15:31
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Судя по "*** Warning - bad CRC, using default environment" у Вас может быть неверная строка параметров ядра. Войдите в коммандную строку u-boot и сделайте printenv. Найдите параметр bootargs, в нем console=... и проверьте, что стоит верный порт.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
stas17
сообщение Dec 23 2010, 08:53
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427



Сначала залил скомпилированное под эту плату ядро (скачал с сайта производителя) и оно отлично работает.
Команда printenv выводит у меня довольно мало информации...только информацию о переменно bootcmd и еще о чем-то..



Строку параметров ядра редактировал при конфигурации ядра и там: console=ttyS0, 115200. Вроде так и должно быть...

Сообщение отредактировал stas17 - Dec 23 2010, 09:23
Go to the top of the page
 
+Quote Post
JeDay
сообщение Dec 23 2010, 11:15
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818



Напишите полностью что выводит команда printenv.
1. У вас может в u-boot и ядре линуха разные MACHINE_ID указаны.
2. Второй вариант это неправильно отработала утилита mkimage. Ее надо использовать той же версии что и загрузчик u-boot.
3. В конфиге ядра у вас указан неправильный UART для вывода логов.
Попробуйте залить для начала чужое zImage ядро и добейтесь его загрузки..
Go to the top of the page
 
+Quote Post
dch
сообщение Dec 23 2010, 11:25
Сообщение #14


Профессионал
*****

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



Цитата(stas17 @ Dec 22 2010, 16:57) *
## Booting kernel from Legacy Image at 22000000 ...
Image Name: Linux-2.6.36-my_by_RDM
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2020160 Bytes = 1.9 MB
Load Address: 70008000
Entry Point: 70008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK

посмотрите в оригинальном ядре, они такиеже как у Вас
Load Address: 70008000
Entry Point: 70008000
после того что она Вам выдала далжна начаться выдача ядра, booargs должна быть такой же
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Dec 23 2010, 15:59
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Цитата(stas17 @ Dec 23 2010, 14:53) *
Строку параметров ядра редактировал при конфигурации ядра и там: console=ttyS0, 115200. Вроде так и должно быть...

А галку "Always use the default kernel command string" Вы поставили? Иначе используется то, что передает u-boot (это, кстати, правильней). Плюс у некоторых архитектур/машин есть параметр "UART to use for low-level messages". Если код машины, переданный у-бутом и код в ядре не совпадают, вероятно, что сообщение об этом вывалится именно в этот порт.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post

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

 


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


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