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

 
 
> BUILDROOT, Портирование Linux на оригинальную архитектуру
Ananas
сообщение Oct 28 2016, 13:59
Сообщение #1





Группа: Участник
Сообщений: 6
Регистрация: 28-10-16
Пользователь №: 93 959



Дорогие друзья!
Есть ли люди, которые сведущи в buildroot и вообще портировании LInux.

Сейчас занимаюсь портированием Linux на необычный Mips и в принципе вопросов миллион.
есть ли здесь спецы, которые путь этот проходили и которые могут помочь?

twak.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Ananas
сообщение Oct 28 2016, 15:44
Сообщение #2





Группа: Участник
Сообщений: 6
Регистрация: 28-10-16
Пользователь №: 93 959



До того, как мне пришлось этим всем заниматься, я мало общалась с Линукс, поэтому представления о системе вообще имею мало.
Поэтому вся эта ситуация дается мне тяжело)))

Итак, я скачала buildroot и сконфигурировала искомпилировала его.
В результате у меня появилась директория output и все, что в ней полагается))

Теперь передо мной задача стоит - что делать дальше?
теоретически дальше идет конфигурация Линукс.
Но, конечно же процессор у меня не классический MIPS, хоть и сделанный на его базе, и платы нужной нет.

Один умный человек сказал мне, что надо нужно запустить таймер, инициализировать uart, и добавить обработку прерываний.

Вопрос такой: как это сделать????? wacko.gif

Может есть люди, которые простым языком могут мне объяснить - как Линукс зависит от таймеров, уартов и прерываний и как это все добавлять в билтрут?

Я надеюсь, если мои высказывания покажутся вам смешными, вы просто поржете, а потом поможете) biggrin.gif

Я что-то очень теряюсь в этом всем(
Go to the top of the page
 
+Quote Post
psL
сообщение Oct 28 2016, 17:16
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 5-08-05
Пользователь №: 7 390



Цитата(Ananas @ Oct 28 2016, 18:44) *
Итак, я скачала buildroot и сконфигурировала искомпилировала его.
В результате у меня появилась директория output и все, что в ней полагается))

в этой директории полагается быть toolchain у, загрузчику, ядру и корневой фс
В принципе это все, что вам нужно и именно в указанной последовательности оно портируется и запускается(кроме toolchain) на плате .
Buildroot это система сборки. В принципе это инструмент релиз-инженера, если у вас такой есть. Обычно нужна для финальной сборки прошивки. Для разработки ядра, загрузчика, своих приложений - вещь не очень удобная, если не сказать ненужная.



Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 28 2016, 17:46
Сообщение #4


Гуру
******

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



Цитата(psL @ Oct 28 2016, 20:16) *
Для разработки ядра, загрузчика, своих приложений - вещь не очень удобная, если не сказать ненужная.

Вот да, начинать нужно со сборки u-boot'а (без buildroot'а, он очень не скоро понадобится), взяв за основу максимально похожий MIPS. Это задача на порядок проще, чем портирование ядра.
Go to the top of the page
 
+Quote Post
gerber
сообщение Oct 30 2016, 21:39
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088



Цитата(aaarrr @ Oct 28 2016, 20:46) *
Вот да, начинать нужно со сборки u-boot'а (без buildroot'а, он очень не скоро понадобится), взяв за основу максимально похожий MIPS. Это задача на порядок проще, чем портирование ядра.

Я бы оспорил это утверждение. Если учесть, что именно в u-boot-e (или другом стартовом загрузчике) инициализируются ключевые вещи, такие как clock's, timers, DDR/DDR2 - то и скиллов для портирования u-boot'a нужно на порядок больше, понимания, как работает DDR-память и что за "магические" константы передаются ей при ините, ну и т. п.
А уже если "взлетел" u-boot - что там портировать ядро, наливай да пей конфигурируй да компилируй (make menuconfig -> make all) rolleyes.gif


--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
Go to the top of the page
 
+Quote Post
Ananas
сообщение Nov 2 2016, 12:17
Сообщение #6





Группа: Участник
Сообщений: 6
Регистрация: 28-10-16
Пользователь №: 93 959



Цитата(gerber @ Oct 31 2016, 00:39) *
Я бы оспорил это утверждение. Если учесть, что именно в u-boot-e (или другом стартовом загрузчике) инициализируются ключевые вещи, такие как clock's, timers, DDR/DDR2 - то и скиллов для портирования u-boot'a нужно на порядок больше, понимания, как работает DDR-память и что за "магические" константы передаются ей при ините, ну и т. п.
А уже если "взлетел" u-boot - что там портировать ядро, наливай да пей конфигурируй да компилируй (make menuconfig -> make all) rolleyes.gif


Спасибо большое за ваши комментарии. Они прямо свет истины на мое темное царство беспомощности проливают.
Согласна с вами насчет u-boot) сейчас как раз в u-boot'е и затык у меня получается, раз именно там все инициализируется..
Прочитала, что u-boot можно собрать прямо в билтруте.

Кто-нибудь делал это?

Цитата(jorikdima @ Oct 28 2016, 20:02) *
Сначала отрабатывает загрузчик, потом инитится ядро и драйвера и только потом подключается rootfs, которую билдрут и строит. Если у вас нету рабочих первых двух пунктов, то до рутфс вы и не доберетесь. В моем случае у меня был старый линукс на старом билдруте и сейчас я обновляю и то и то (чисто с целью рабобраться как работает). И я начал с конца, как с более простого. Но у меня были и бутлоадер и ядро старые.
Если вы говорите, что у вас особенный мипс, то насколько он совместим с неособенным? Это просто мипс + своя перефирия? Тогда проще, потому как есть шанс, что можно запустить линукс постоенный для какого-то камня близкого к вашему и подрехтовать. Если же что-то далекое, то повиснет все сразу sm.gif

Прерывания таймер и уарт действительно нужны, так как уарт - средство отладки. Но билдрут тут непричем.


Спасибо за ваш ответ!
Вот на линукс.орг вычитала, что загрузчик можно собрать также используя билдрут. Но просто как утверждение, подробностей пока нигде не нашла(( Вы не видели чего-нибудь по этой теме?

Мипс мой пока еще в стадии модели) чипа нет) насколько он совместим - я не вникала глубоко, наверняка можно было бы взять стандарт и рехтовать его, но у меня задача, не просто Линукс запустить, а освоить билдрут и с его помощью подготовить рабочий линукс rolleyes.gif

Цитата(Jury093 @ Oct 29 2016, 00:15) *
стесняюсь спросить - а у вас дока то на "необычный Mips" чип есть? не портянка на сотню листов, а нормальный "Reference Manual" с описанием всех регистров и битов, всех узлов и подсистем.. и отдельный талмуд "User Guide", где разжевывают основы работы узлов вашего Mips
без документации можете этот уникальный чип гвоздиком на стенку приколотить..

по билдруту - загляните в исходники ядра, это если смотреть в "у меня появилась директория output", то далее в output/build ищите каталог ядра (там должны лежать файлы типа vmlinux vmlinux.o)
нашли исходники - изучайте содержимое arch/mips

и как справедливо написали ранее - перед портированием ядра придется портировать u-boot или тот загрузчик, который будет обеспечивать после подачи питания начальную инициализацию Mips (pll, ram, peripherals.. etc) и сервис по загрузке ядра..


перед тем, как спрашивать свой миллион, напишите маркировку своего чипа - возможно те, кто сталкивался с архитектурой Mips, сразу наведут на путь истинный..


Вот мой умный коллега посоветовал мне созадать в arch/mips/my_board и добавить туда как раз инициализацию таймера и уарта. но в моей голове это к сожалению не укладывается в общую картину всего этого процесса. crying.gif
Может вы сможете мне пояснить, что выходит в итоге из arch/mips/?

Насчет маркировки мипса - нет ее - он еще на стадии прототипа.
по повду документации - программная модель есть. У меня больше вопросов вызывает сама система билдрута - что где лежит и что из чего получается.... Понимаю, что сейчас вы отправите меня к https://buildroot.org/downloads/manual/manual.pdf
и я, конечно, пойду его читать еще раз.

Но если у вас есть возможность прояснить простым языком мои вопросы, буду признательна.

Цитата(aaarrr @ Oct 31 2016, 02:26) *
Ключевое слово "инициализируются", о полноценной работе на этом этапе речи не идет:
- тактирование запустить, а не управлять им
- прерывания можно вообще не трогать
- DMA? не нужен DMA
- UART на уровне принять-передать байт
- Ethernet - принять/отправить пакет через поллинг


Спасибо большое за участие в дискуссии!
Можно ли это все проинициализировать через buildroot?

Цитата(psL @ Oct 28 2016, 20:16) *
в этой директории полагается быть toolchain у, загрузчику, ядру и корневой фс
В принципе это все, что вам нужно и именно в указанной последовательности оно портируется и запускается(кроме toolchain) на плате .
Buildroot это система сборки. В принципе это инструмент релиз-инженера, если у вас такой есть. Обычно нужна для финальной сборки прошивки. Для разработки ядра, загрузчика, своих приложений - вещь не очень удобная, если не сказать ненужная.

Спасибо огромное за ответ!
А что если требуется загрузчик сделать через билдрут? Может не очень удобно, но вот надо? Пробовали такое творить?

Цитата(Corvus @ Nov 1 2016, 19:34) *

Спасибо большое! Читаю rolleyes.gif
Go to the top of the page
 
+Quote Post
Jury093
сообщение Nov 2 2016, 20:23
Сообщение #7


Знающий
****

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



Цитата(Ananas @ Nov 2 2016, 15:17) *
Вот мой умный коллега посоветовал мне созадать в arch/mips/my_board и добавить туда как раз инициализацию таймера и уарта. но в моей голове это к сожалению не укладывается в общую картину всего этого процесса. crying.gif
Может вы сможете мне пояснить, что выходит в итоге из arch/mips/?

в этом каталоге размещены каталоги поддержки различных подсемейств для архитектуры mips - хидеры с описанием аппаратуры, начальные сишные файлы для инита базовых подсистем.. это малая часть того, что входит в ядро..

Цитата
Насчет маркировки мипса - нет ее - он еще на стадии прототипа.
по повду документации - программная модель есть. У меня больше вопросов вызывает сама система билдрута - что где лежит и что из чего получается.... Понимаю, что сейчас вы отправите меня к https://buildroot.org/downloads/manual/manual.pdf
и я, конечно, пойду его читать еще раз.

забудьте на время это слово - "билдрут" - он вам сейчас бесполезен, всё что оттуда пока пригодится - кросскомпилятор (если не найдете готовый) и шпаргалка в виде того же arch/mips..

Цитата
Но если у вас есть возможность прояснить простым языком мои вопросы, буду признательна.

не.. в трех словах это не рассказать, а разливаться по теме нет желания..
начните с простейшего (не факт, что там всё актуально, но лучше, чем ничего):
https://www.linux-mips.org/wiki/Main_Page
https://www.linux-mips.org/wiki/Linux/MIPS_Porting_Guide
строка для поиска "mips how to make new family kernel"
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ananas   BUILDROOT   Oct 28 2016, 13:59
|- - aaarrr   Цитата(gerber @ Oct 31 2016, 00:39) Если ...   Oct 30 2016, 23:26
||- - gerber   Цитата(aaarrr @ Oct 31 2016, 02:26) Ключе...   Oct 31 2016, 18:59
||- - aaarrr   Цитата(gerber @ Oct 31 2016, 21:59) ...   Oct 31 2016, 19:32
|- - aaarrr   Цитата(Ananas @ Nov 2 2016, 15:17) Можно ...   Nov 2 2016, 13:00
|- - mantech   Цитата(Ananas @ Nov 2 2016, 15:17) Вот мо...   Nov 2 2016, 19:37
|- - psL   Цитата(Ananas @ Nov 2 2016, 15:17) А что ...   Nov 8 2016, 17:26
- - jorikdima   Сначала отрабатывает загрузчик, потом инитится ядр...   Oct 28 2016, 17:02
- - Jury093   Цитата(Ananas @ Oct 28 2016, 16:59) Есть ...   Oct 28 2016, 21:15
- - Ananas   Дорогие друзья! Нереальное спасибо за коммента...   Nov 1 2016, 15:38
|- - Corvus   Попробуйте начать отсюда http://free-electrons.com...   Nov 1 2016, 16:34
- - jorikdima   билдрут как уже сказали, это просто система сборки...   Nov 2 2016, 19:59
- - Ananas   Добрый день друзья! Вынуждена вновь поднять т...   Jul 27 2017, 12:48
|- - Tarbal   Цитата(Ananas @ Jul 27 2017, 16:48) Но в ...   Jul 31 2017, 02:33
- - Olej   Цитата(Ananas @ Oct 28 2016, 16:59) Дорог...   Jul 30 2017, 09:49


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 22:33
Рейтинг@Mail.ru


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