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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Правка файла борды, при каких условиях
TigerSHARC
сообщение Mar 28 2014, 16:21
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Пока попытки загрузить нормально ядро не увенчались успехом.

1)Включить "раннюю" отладку не получилось, так как с включённой опцией ранней отладки всё зависает на стадии Starting the kernel.... что говорит о том что неправильно назначен UART для вывода отладочных сообщений на раннем этапе. Где это настраивается я так и не нашёл(в конфиге таких опций нет)

2) из http://processors.wiki.ti.com/index.php/Ke...ng_Kernel....22
я понял что скорее всего у меня проблема несовпадения machine id ядра и u-boot
Вопросы:
- где в ядре задаётся machine id?

В файле борды есть строка

MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM")

стало быть machine id задаётся макросом DAVINCI_DA850_EVM . так ли это?

пробовал менять его на тот который был в рабочем варианте - безрезультатно....(((

P.S. чем больше углубляюсь в это , тем больше думаю: зачем выдуманы такие сложности?
Go to the top of the page
 
+Quote Post
gormih
сообщение Mar 30 2014, 18:03
Сообщение #17


nofb
***

Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218



Цитата(TigerSHARC @ Mar 28 2014, 20:21) *
- где в ядре задаётся machine id?

Вы не поверите - как правило в файле борды:-)
Цитата(TigerSHARC @ Mar 28 2014, 20:21) *
пробовал менять его на тот который был в рабочем варианте - безрезультатно....(((

Там все может быть сложнее завязано. Может, например вычислять по комбинации перемычек на выводах контроллера, и тому подобное...., Куча подводных камней.
Если задача не стоит сделать универсальный файл борды под целый ряд девайсов - я лично блокирую все функции идентификации борды, дабы не тратить на них время.
Единственное - нужно понимать, к каким последствиям это может привести например для подключаемых модулей ядра.
Цитата(TigerSHARC @ Mar 28 2014, 20:21) *
P.S. чем больше углубляюсь в это , тем больше думаю: зачем выдуманы такие сложности?

Это не сложности. Это стиль программирования sm.gif
Только по началу тяжело освоить, потом становится легче, когда знаешь минимум того, что должно быть описано... Со временем понимая всю "навороченность" ядра начинаешь наоборот восхищаться некоторым решениям.
Писать драйвера под linux гораздо проще по сравнению например с windows именно благодаря богатой инфраструктуре того что нужно на уровне ядра, и хорошо продуманным описательным моделям самих драйверов.
Я вот чистым временем около недели потратил на освоение того, как примерно работает ALSA на уровне ядра, и еще далек от завершения поставленной задачи. Из документации, на скорую руку слепленой жалким подобием doxygen мало что понятно. sm.gif Но из того, что всплыло становится ясно, что при хорошей документации у меня ушло бы максимум 1 день на решение задачи.


--------------------
Это не то что вы подумали ...

Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Mar 31 2014, 08:49
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Спасибо. Весьма познавательно.
я узнал что machine id задаётся в файле mach-types.h

а как вы блокируете функции борды?
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Mar 31 2014, 20:02
Сообщение #19


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(TigerSHARC @ Mar 31 2014, 12:49) *
Спасибо. Весьма познавательно.
я узнал что machine id задаётся в файле mach-types.h

а как вы блокируете функции борды?


Более подробно
http://electronix.ru/forum/index.php?showtopic=118559
Это релевантно для kernel 2.6 Оно вроде поменялось. Поскольку вам надо из версии 2.6 переделать на более позднюю, то с версией 2.6 разобраться будет полезно.
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Apr 1 2014, 02:59
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Цитата(Tarbal @ Apr 1 2014, 00:02) *
Более подробно
http://electronix.ru/forum/index.php?showtopic=118559
Это релевантно для kernel 2.6 Оно вроде поменялось. Поскольку вам надо из версии 2.6 переделать на более позднюю, то с версией 2.6 разобраться будет полезно.

Спасибо, познавательно. Честно говоря я так и знал что нигде кроме как в mach-type.h и при вызове MACHINE_START этот id не упоминается.
У меня ситуация такая: u-boot собран для одной машины (с конкретным id), а ядро новое не содержало такого machine id. Я просто взял и поменял руками номер для борды в файле mach-types.h
не помогло.

1 )Вопрос:

имеем MACHINE_START(MX53_LOCO, "Freescale MX53 LOCO Board"). Проверяется ли где то второй аргумент? или это только для вывода на экран?

2) в новых версиях ядер файл борды разделён на две части (board_xxx.c и board_xxx.dts). Вижу что не для всех aайлов board_xxx.c, которые в ядре по умолчанию, есть соответствующий board_xxx.dts что странно...
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Apr 1 2014, 09:08
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



буду пробовать свои задумки на старом ядре. Оставлю в покое 3ю версию, пока разберусь в этом тёмном ящике (ядро Linux), уже глядишь и 4 выйдет с новыми фичами... а задачи надо решать сегодня.
Go to the top of the page
 
+Quote Post
gormih
сообщение Apr 2 2014, 08:14
Сообщение #22


nofb
***

Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218



Цитата(TigerSHARC @ Apr 1 2014, 13:08) *
буду пробовать свои задумки на старом ядре. Оставлю в покое 3ю версию, пока разберусь в этом тёмном ящике (ядро Linux), уже глядишь и 4 выйдет с новыми фичами... а задачи надо решать сегодня.

По опыту: Пока сам не напишешь пару драйверов на имеющееся в наличии рабочее ядро - о портировании новой версии ядра на свою борду думать рановато :-)


--------------------
Это не то что вы подумали ...

Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Apr 3 2014, 14:54
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



дело начало продвигаться. Собрал ядро тем же компилятором что и u-boot, загрузка остановилась на


CODE
PHY 0:00 not found
ata1: STAT link down (SStatus 0 SControl 300)
net eth0: could not connect to phy 0:00
IP-Config: Failed to open eth0
IP-Config: device 'eth0' not found
VFS: cannot open root device "ubi0:rootfs" or unkown-block(0,0)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)


не находит PHY
ясно что не может найти рутовую, вопрос: где задаётся расположение рутовой (можно подумать что в строке загрузки ядра, но в старой версии ядра в строке указывалась только консоль, а рутовая грузилась с nand, значит где-то это прописывалось дополнительно)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 3 2014, 15:23
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(TigerSHARC @ Apr 3 2014, 18:54) *
ясно что не может найти рутовую, вопрос: где задаётся расположение рутовой (можно подумать что в строке загрузки ядра, но в старой версии ядра в строке указывалась только консоль, а рутовая грузилась с nand, значит где-то это прописывалось дополнительно)

Именно там (в bootargs) и задавалось: root=... В 3.x, как я понимаю, ничего не изменилось в этом плане.

Кстати вопрос: а что, собственно, побудило к переходу на новое ядро?
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Apr 4 2014, 07:58
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Пересев на новое ядро, хочу попробовать новый RT-патч и сравнить поведение.

Про строку загрузки ядра, ниже скриншот строки, которая присутствует в конфиге ядра рабочей системы, которая берёт рутовую из NAND, а значит этот параметр задаётся где-то ещё:

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Jury093
сообщение Apr 4 2014, 08:16
Сообщение #26


Знающий
****

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



Цитата(TigerSHARC @ Apr 4 2014, 11:58) *
а значит этот параметр задаётся где-то ещё:

судя по снятой галке - в переменных окружения u-boot
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Apr 4 2014, 17:03
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Верно. Скопировал строку из переменной окружения в bootargs ядра.
не помогло. в чём может быть дело?

рутовая на NAND, поддержка ubifs включена в ядре
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 4 2014, 17:05
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Полностью выхлоп при загрузке приведите.
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Apr 4 2014, 17:14
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



regulator_init_complete: VDCDC1: incomplete constraints, leaving on
davinci_emac davinci_emac.1: using random MAC addr: 3a:23:26:bb:75:7a
omap_rtc omap_rtc: setting system clock to 2000-01-01 01:13:21 UTC (946689201)
ata1: SATA link down (SStatus 0 SControl 300)
VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 4 2014, 17:38
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Это все, что приходит после "booting the kernel"?

И что сейчас стоит в bootargs?
Go to the top of the page
 
+Quote Post

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

 


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


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