Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/55: Рейтинг темы: голосов - 55, средняя оценка - 4.73
изян

Проблемы при загрузке ядра 2.6 u-boot-ом

29.05.2011, 17:45. Показов 10546. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть evaluation board на однокристаллке micrel KSZ9692PB. В его nomd уже прошит u-boot и рам-диск с ядром и файловой системой.

Сам по себе u-boot работает и по дефолту загружает уже прошитый туда линукс. С этим всё ок.

Однако, я решил сам взять предлагаемый micrel-ом линукс (можно скачать и линукс и весь инструментарий на сайте производителя) и научиться его компилить (никогда не делал этого) и загружать в память по tftp u-boot-ом и запускать.

Казалось бы всё просто: майкрел предоставляет ядро уже с патчами, мейкфайл с готовым конфигом под его eval-board.

Я компилю ядро, оно компилится успешно (в конце пишет Load Address 0x8000 - вот тут может беда), я беру получившийся zImage и с помощью mkimage делаю uImage, но уже указываю адреса 0x800000 в место 0x8000 (производитель рекомендует загружать с 0х800000, не знаю почему)

Аргументы mkimage выглядят у меня так:
- A arm - O linux -T kirmit -C none -a 0x800000 -e 0x800000 -n linux-2.6-atatat-edition -d zImage uImage

Файловая система у меня отдельно на USB флэшечке, но до неё дело не доходит )) всё умирает гораздо раньше =\.

После этого получившийся образ засасываю через tftp u-bootom, коммандой tftp 0x800000 uImage,
устанавливаю параметры консоли (setenv bootargs consoti=ttyAM0,115200 root=/div/sda1) ...

и радостно пытаюсь сделать bootm 0x800000

На что u-boot мне сообщает:

## Booting image at 00800000 ...
Image Name: linux-2.6-atatat-edition
Image Type: ARM Linux Kernel Image (unsompressed)
Data Size: 4610920 Bytes = 4.4 MB
Load Address: 00800000
Entry Point: 00800000
Verifying Checksum ... OK
XIP Kernel Image ... OK

Starting kirmit ...

data abort
pc : [<0080000c>] lr : [<00f1abf0>]sp : 00ecfaf4 ip : 00f5cc00 fp : 00000002
r10 : 00000000 r9 : 00f5cc00 r8 : 00ecffdc
r7 : 00000000 r6 : 00000000 r5 : 00000000 r4 : 00000000
r3 : 00800000 r2 : 00000100 r1 : 0000016b r0 : 00000160
Flags: nZCv IRQs off FIQs off Mode SVC_32
Risetting CPU...

и всё, ребут.

соответственно я в полном замешательстве т.к. знания линукса и АРМа у меня посредственные - ещё только начал изучать.

В чём может быть проблема?
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.05.2011, 17:45
Ответы с готовыми решениями:

При загрузке компьютера ошибка: Reboot and Select proper Boot device or Insert Boot Media in selected Boot device and press a key
в компьютере разбираюсь плохо,напишите пожалуйста попроще,что это за проблема и как ее исправить?

При загрузке компьютера ошибка: Reboot and Select proper Boot device or Insert Boot Media in selected Boot device and press a kay
Всем привет, возникла проблема, надеюсь подскажете как ее решить. Сам мало что понимаю в компьютерном железе, поэтому просьба писать...

При загрузке Windows 7 появляется ошибка - C:boot\boot.bin -поврежден или отсутствует
ПОМОГИТЕ ПОЖАЛУЙСТА:cry: Ситуация такая: при загрузке Windows 7 выдает что мол файл C:boot\boot.bin -поврежден или отсутствует. (я...

11
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 117
29.05.2011, 18:03
А что говорит uboot когда загружаешь родной линукс?

Покажи лог полностью, начиная с самого начала загрузки.
0
изян
29.05.2011, 18:46
Цитата Сообщение от sovomt
А что говорит uboot когда загружаешь родной линукс?

Покажи лог полностью, начиная с самого начала загрузки.
готово

http://pastebin.com/ia9ceW8s
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 117
30.05.2011, 14:29
Load Address: 00008000
Entry Point: 00008000

Как говорится, не верь, жене, тормозам и аппноутам. У тебя же родное ядро грузится с адреса 0x8000, для чего ты его пытаешься грузить из 0x00800000?

Да, уточняю, образ загруженный через tftpboot надо положить в ROM(!) и уже оттуда говорить bootm <адрес куда положил>. u-boot он умный, он сам скопирует при загрузке в указанную область памяти и сам его оттуда запустит. Где у тебя находится ROM в адресном пространстве ищи сам.
0
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 117
30.05.2011, 14:37
Производитель кстати может советовать подгружать через tftpboot по адресу 0x00800000, а загружаться он будет из 0x8000
0
изян
30.05.2011, 15:10
хм. вот по шагам второй вариант:

беру предлагаемое разработчиком ядро делаю
make clean
make ksz9692_defconfig (конфиг под мою плату)
make uImage

получается:
Image Name: Linux-2.6.23.17-Pegasus
Created: бла бла бла
Image Type: ARM Linux Kernel Image (unsompressed)
Data Size: бла бла 4.40MB
Load Address: 0x00008000
Entry Point: 0x00008000

загружаю этот образ на арм-машину:
setenv bootargs consoti=ttyAM0,115200 root=/div/sda1
tftp 0x800000 uImage

запускаю:
bootm 0x800000

вижу:
## Booting image at 00800000 ...
Image Name: Linux-2.6.23.17-Pegasus
Image Type: ARM Linux Kernel Image (unsompressed)
Data Size: 4610916 Bytes = 4.4 MB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
OK

Starting kirmit ...

Unsompressing Linux.......... И ТУТ МЁРТВЫЙ ВИСЯК.

(что характерно этот ункомпрессинг он делает достаточно долго.)

0х800000 - это всё же оперативка. я гружу в конец оперативки этот образ запакованный и потом bootm 0x800000 сам берёт от туда родной адрес загрузки и распаковывает ядро туда (в 0х8000). Распаковывает, распаковывает и потом то ли во время распаковки виснет, то ли он передал управление в ядро и оно виснет, то ли оно не виснет, а просто на консоль ничего не выводит, потому что параметр bootargs consoti задан неверно (в чём я сильно сомневаюсь, т.к. родной линукс который там прошит в nomd использует для консоли именно это устройство)
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 117
30.05.2011, 15:44
Ну во-первых: consoti=ttyS0,115200 - У меня так на железке.

Ну или же у тебя не ttyAM0 должно быть, а ttyACM0 - смотря как сконфигурено ядро.
0
изян
30.05.2011, 15:50
хм. ну вот линукс который там прошит - при запуске пишет, что у него параметры консоли ttyAM0,115200 root=/div/sda1 rootdelay=10

они же выставлены по умолчанию у прошитого там uboot

то есть, есть некая степень доверия этому параметру
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 117
30.05.2011, 15:56
Тогда ладно. Дальше проверь, правильным ли компилятором собрано ядро и важно(!) под правильную ли архитектуру. Потому что по умолчанию ядро собирается для x86.

сделай:

make ksz9692_defconfig
make menuconfig

и проверь.
0
изян
30.05.2011, 17:21
WIN!

я сменил компелятор с arm-linux-gcc-gnueabi-4.5 на arm-linux-gcc-4.2.1

И ВСЁ ЗАРАБОТАЛО

и, что характерно файл Image весит больше не 3 гига а 3 с лишним метра, ну и uImage соответствено не 4.4 а 1.5мб

нигия какая-то. пипец.
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 117
30.05.2011, 19:50
Это не нигия, а особенности GNUтого тулчейна. Там много странных и непонятных мест, но оно работает.
0
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 240
31.05.2011, 23:15
Цитата Сообщение от изян
я сменил компелятор с arm-linux-gcc-gnueabi-4.5 на arm-linux-gcc-4.2.1
....
нигия какая-то. пипец.
Посмотрите в конфиге ядра, определено ли CONFIG_AEABI. Если не определено, то попробуйте определить и скомпилить тулчейном с gnueabi. По идее, EABI дает гораздо более быстрый код, особенно если много и часто функции вызывается. EABI и OABI по разному аргументы в регистры кладут, наверняка поэтому и зависало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.05.2011, 23:15
Помогаю со студенческими работами здесь

Как бороться с ошибкой "Default Boot Device Missing or Boot Failed" при загрузке ноутбука?
как с этим бороться при загрузке ноутбука??? Выручайте! Default Boot Device Missing or Boot Failed. Insert Recovery Media and Hit any...

Баг при загрузке ядра linux 3.14.17
Собираю ОС на линуксе ядро 3.14.17 загрузчик SYSLINUX железо: мать GIGABYTE GA990A -DS3P оперативы 2ГБ проц AMD FX 4300 ...

Boot Manager при загрузке
Всем привет. Столкнулся с такой проблемой. Есть у меня старенький lenovo со свежей установленной виндой и офисом. отправил я его значит...

No boot device - ошибка при загрузке
Всем доброго времени суток. Дал знакомый ноутбук, попросил посмотреть. Ноутбук lenovo G503s. Какие симптомы были. 1. У него...

Зависание Windows 2000 Pro при загрузке ядра системы.
Привет всем !!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru