LINUX.ORG.RU
ФорумMobile

u-boot.bin не запускается на QEMU


0

1

Здравствуйте! Почему u-boot.bin напрочь отказывается запускаться в качестве ядра в эмуляторе QEMU ? Пишет, что типа фатальная ошибка: попытка выполнить код за пределами RAM или ROM. Почему? Это косяк самого QEMU или что-то не то с u-boot.bin?


Какбэ пишут

This means your kernel tries to execute code from an invalid memory location. Thus, it's a bug in your kernel and has nothing to do with QEMU.

alexnorton
()
Ответ на: комментарий от alexnorton

Это означает, что ядро пытается выполнить код с недействительной ячейки памяти. Таким образом, это ошибка в ядре и не имеет ничего общего с QEMU.

что за бред? Что значит с недействительной ячейки памяти? Это типа с несуществующей чтоли? Так на реальном то аппарате работает. И как это может быть не связано с QEMU? Это на прямую связано с QEMU - это в нём нет этой ячейки памяти, а это значит что QEMU нифига не умеет эмулировать архитектуру ARM.

Cyrix
() автор топика
Ответ на: комментарий от Cyrix

Если на реальной архитектуре это действительно работает, то значит действительно QEMU полноценно ARM не эмулирует. Я не углублялся именно в этот вопрос, но возможно, существует отдельная версия QEMU для эмуляции именно архитектуры ARM? Или стоит написать им об обнаруженном баге?

alexnorton
()
Ответ на: комментарий от vasily_pupkin

на сколько мне известно, конкретно для ARM версии QEMU не существует, есть какие-то адаптированные сборки ядер типа для ARM, которые заводятся на QEMU но не работают на реальном железе. Вывод один - QEMU всё таки не полноценный эмулятор по крайней мере для ARM архитектуры.

Cyrix
() автор топика
Ответ на: комментарий от Cyrix

У вас в голове каша. Эмулятор для арма в общем и целом есть и работает. Для режиме эмуляции специфических платформ, разумеется, он работать не будет. Там, впрочем, есть несколько вариантов

vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

я то думал, что существует действительно полный эмулятор ARM с bootstrap, полноценными регистрами и реальными адресами RAM и ROM, думал что это QEMU, а оказалось не тут то было. Можно конечно пересобрать тот же u-boot специально для QEMU но это уже будет не то, на настоящем железе не заведётся. А мне надо отладить именно u-boot.

Cyrix
() автор топика
Ответ на: комментарий от Cyrix

я то думал, что существует действительно полный эмулятор ARM

Различай ARM, конкретный SoC и платформу

vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Да все пучком, А5, А8, А9 умеет - что еще надо. А определить адресные пространтва можно и самому. А ТС не понимает что надо делать и как это работает. Хакирь наверное...

Jetty ★★★★★
()
Ответ на: комментарий от Jetty

За такие комментарии банить надо - настолько они бессмысленные. Может ты отойдёшь от «кококо» в сторону ОПа и всё-таки напишешь ему, что читать, куда глядеть и как надо делать?

anonymous
()
Ответ на: комментарий от anonymous

Ты ни чем не лучше, и твой коментарий точно такой же, а значит ты не вправе от меня требовать что-либо. Гоу ту би соу kokoko самвера элз.

P.S. АРМы детям не игрушки, нельзя просто взять, и захачить бутлоадер. Надо много знать. Так что любой ответ в объеме менее полноценной лекции абсолютно безсмысленен.

Jetty ★★★★★
()
Ответ на: комментарий от Jetty

адреса мне итак давно известны, толку то? QEMU не хочет их воспринимать, для него эти адреса запредельные, вот он и матюКается, что мол не бывает таких адресов. И причём здесь «Хакирь» ??? Я просто хочу собрать свой загрузчик, со своими сообщениями, со своими картинками и прогрессбаром загрузки того же самого WinCE.

Cyrix
() автор топика

Искал твою тему, а нашел похожую и ответил там:

Вот ссылка по теме, хотя довольно старая. Современные ядра для ARM инициализируют оборудование с помощью деревьев устройств (device tree), которые должны быть переданы загрузчиком.

tlx ★★★★★
()
Ответ на: комментарий от Cyrix

это в нём нет этой ячейки памяти, а это значит что QEMU нифига не умеет эмулировать архитектуру ARM

это значит, что ты, пионер, фигню несёшь.

anonymous
()
Ответ на: комментарий от Cyrix

Не все так просто чувак. Эт те не x86 с биосом :) Тут все ручками делать надо. В том числе инициализировать (бинго!) контроллер памяти.

Jetty ★★★★★
()
Ответ на: Верно, некоторые версии не работают... от banditos13

А еще можно в версии

ftp://ftp.denx.de/pub/u-boot/u-boot-2013.04.tar.bz2

поправить файл

u-boot-2013.04/include/configs/versatile.h

так, чтобы после

#ifndef __CONFIG_H

#define __CONFIG_H

была добавлена строка

#define CONFIG_ARCH_VERSATILE_QEMU

после чего собрать код, как показано выше

banditos13
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.