|
|
  |
Поселение на ARM ОС Linux, Плата AT91SAM9M10G45-EK |
|
|
|
Dec 10 2010, 15:04
|
Участник

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

|
Здравствуйте. У меня есть данная плата.Пытаюсь залить на нее свою ОС. С платы все было удалено. Залил на Dataflash bootstrap, u-boot и kernel. В гипертерминале при загрузку платы загружается u-boot и пишет, что ядро не найдено...Насколько я понимаю надо прописать u-boot адрес расположения ядра. Но как это сделать? Вопрос несложный, но я пока с ним не разобрался... Заранее благодарен.
|
|
|
|
|
Dec 11 2010, 15:31
|
Знающий
   
Группа: Участник
Сообщений: 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
|
|
|
|
|
Dec 15 2010, 06:39
|
Участник

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

|
спасибо большое! оказывается в команде загрузки bootm все правильно прописано...причина в другом: образ, собственноручно собранного ядра, в виде zImage, а должен быть uImage, потому что u-boot выводит следующее сообщение: Can't get kernel image. Так что мне нужно собрать ядро в формате uImage. А как это сделать я не знаю...вроде бы можно утилитой mkimage, но как я пока не разобрался..
|
|
|
|
|
Dec 15 2010, 06:55
|
Местный
  
Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699

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

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

|
Цитата(Dima_G @ Dec 15 2010, 12:55)  make uImage спасибо! все очень просто, а я не догадался)
|
|
|
|
|
Dec 16 2010, 11:21
|
Участник

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

|
но все равно предварительно надо было установить эту утилиту mkimage...
Сообщение отредактировал stas17 - Dec 16 2010, 11:27
|
|
|
|
|
Dec 17 2010, 07:15
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Dec 22 2010, 10:57
|
Участник

Группа: Участник
Сообщений: 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.
вот именно такое сообщение получаю в гипертерминале... Разве ни у кого нет мыслей по этому поводу?
|
|
|
|
|
Dec 22 2010, 14:30
|
Местный
  
Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699

|
Цитата(stas17 @ Dec 22 2010, 19:57)  Разве ни у кого нет мыслей по этому поводу? У вас есть возможность достать скомпилированное под эту платформу ядро? Попробуйте его записать вместо вашего и проверить загрузку. Убедиться, что вы используете правильный тулчейн. Ну и тд
|
|
|
|
|
Dec 23 2010, 08:53
|
Участник

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

|
Сначала залил скомпилированное под эту плату ядро (скачал с сайта производителя) и оно отлично работает. Команда printenv выводит у меня довольно мало информации...только информацию о переменно bootcmd и еще о чем-то..
Строку параметров ядра редактировал при конфигурации ядра и там: console=ttyS0, 115200. Вроде так и должно быть...
Сообщение отредактировал stas17 - Dec 23 2010, 09:23
|
|
|
|
|
Dec 23 2010, 11:25
|

Профессионал
    
Группа: Участник
Сообщений: 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 должна быть такой же
|
|
|
|
|
Dec 23 2010, 15:59
|

Профессионал
    
Группа: Свой
Сообщений: 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". Если код машины, переданный у-бутом и код в ядре не совпадают, вероятно, что сообщение об этом вывалится именно в этот порт.
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|