stas17 0 10 декабря, 2010 Опубликовано 10 декабря, 2010 · Жалоба Здравствуйте. У меня есть данная плата.Пытаюсь залить на нее свою ОС. С платы все было удалено. Залил на Dataflash bootstrap, u-boot и kernel. В гипертерминале при загрузку платы загружается u-boot и пишет, что ядро не найдено...Насколько я понимаю надо прописать u-boot адрес расположения ядра. Но как это сделать? Вопрос несложный, но я пока с ним не разобрался... Заранее благодарен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 11 декабря, 2010 Опубликовано 11 декабря, 2010 · Жалоба Здравствуйте. У меня есть данная плата.Пытаюсь залить на нее свою ОС. С платы все было удалено. Залил на Dataflash bootstrap, u-boot и kernel. В гипертерминале при загрузку платы загружается u-boot и пишет, что ядро не найдено...Насколько я понимаю надо прописать u-boot адрес расположения ядра. Но как это сделать? все было бы проще, если перед "С платы все было удалено" в юбуте дали команду printenv из ее вывода можно было бы подчерпнуть адрес расположения ядра во флеше если остался бинарник юбута, то можно внутри поискать содержимое переменных окружения по словам cp.b или bootm (если бинарников не осталось, то снимаю шляпу..) как вариант - написать производителю платы - пусть вышлет карту расположения бинарников во флеше а если рассуждать здраво, то пользователь может сам разложить бинарники во флешах и внешних накопителях в любое место. за исключением bootstrap. и разумеется проследить, чтобы все адреса были взаимоувязаны и не пересекались. и оставить место под переменные окружения uboot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dch 0 12 декабря, 2010 Опубликовано 12 декабря, 2010 · Жалоба Дайте команду printenv а там есть переменная окружения bootcmd в которой записана команда загрузки ос, она как правило bootm <адрес откуда взять ядро> [адрес откуда взять initrd диск], flinfo команда u-bootа выдает адреса и разбивку flash как их видит u-boot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stas17 0 15 декабря, 2010 Опубликовано 15 декабря, 2010 · Жалоба спасибо большое! оказывается в команде загрузки bootm все правильно прописано...причина в другом: образ, собственноручно собранного ядра, в виде zImage, а должен быть uImage, потому что u-boot выводит следующее сообщение: Can't get kernel image. Так что мне нужно собрать ядро в формате uImage. А как это сделать я не знаю...вроде бы можно утилитой mkimage, но как я пока не разобрался.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DimaG 0 15 декабря, 2010 Опубликовано 15 декабря, 2010 · Жалоба Так что мне нужно собрать ядро в формате uImage. А как это сделать я не знаю...вроде бы можно утилитой mkimage, но как я пока не разобрался.. make uImage Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stas17 0 15 декабря, 2010 Опубликовано 15 декабря, 2010 · Жалоба make uImage спасибо! все очень просто, а я не догадался) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stas17 0 16 декабря, 2010 Опубликовано 16 декабря, 2010 (изменено) · Жалоба но все равно предварительно надо было установить эту утилиту mkimage... Изменено 16 декабря, 2010 пользователем stas17 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stas17 0 17 декабря, 2010 Опубликовано 17 декабря, 2010 (изменено) · Жалоба Собрал ядро (командой 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. Изменено 17 декабря, 2010 пользователем stas17 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stas17 0 22 декабря, 2010 Опубликовано 22 декабря, 2010 · Жалоба *** 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. вот именно такое сообщение получаю в гипертерминале... Разве ни у кого нет мыслей по этому поводу? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DimaG 0 22 декабря, 2010 Опубликовано 22 декабря, 2010 · Жалоба Разве ни у кого нет мыслей по этому поводу? У вас есть возможность достать скомпилированное под эту платформу ядро? Попробуйте его записать вместо вашего и проверить загрузку. Убедиться, что вы используете правильный тулчейн. Ну и тд Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dron_Gus 2 22 декабря, 2010 Опубликовано 22 декабря, 2010 · Жалоба Судя по "*** Warning - bad CRC, using default environment" у Вас может быть неверная строка параметров ядра. Войдите в коммандную строку u-boot и сделайте printenv. Найдите параметр bootargs, в нем console=... и проверьте, что стоит верный порт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stas17 0 23 декабря, 2010 Опубликовано 23 декабря, 2010 (изменено) · Жалоба Сначала залил скомпилированное под эту плату ядро (скачал с сайта производителя) и оно отлично работает. Команда printenv выводит у меня довольно мало информации...только информацию о переменно bootcmd и еще о чем-то.. Строку параметров ядра редактировал при конфигурации ядра и там: console=ttyS0, 115200. Вроде так и должно быть... Изменено 23 декабря, 2010 пользователем stas17 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 23 декабря, 2010 Опубликовано 23 декабря, 2010 · Жалоба Напишите полностью что выводит команда printenv. 1. У вас может в u-boot и ядре линуха разные MACHINE_ID указаны. 2. Второй вариант это неправильно отработала утилита mkimage. Ее надо использовать той же версии что и загрузчик u-boot. 3. В конфиге ядра у вас указан неправильный UART для вывода логов. Попробуйте залить для начала чужое zImage ядро и добейтесь его загрузки.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dch 0 23 декабря, 2010 Опубликовано 23 декабря, 2010 · Жалоба ## 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 должна быть такой же Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dron_Gus 2 23 декабря, 2010 Опубликовано 23 декабря, 2010 · Жалоба Строку параметров ядра редактировал при конфигурации ядра и там: console=ttyS0, 115200. Вроде так и должно быть... А галку "Always use the default kernel command string" Вы поставили? Иначе используется то, что передает u-boot (это, кстати, правильней). Плюс у некоторых архитектур/машин есть параметр "UART to use for low-level messages". Если код машины, переданный у-бутом и код в ядре не совпадают, вероятно, что сообщение об этом вывалится именно в этот порт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться