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

 
 
> Linux с голого железа, Hardware -> Bootlader -> Linux
vgovseychuk
сообщение Dec 16 2015, 15:50
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



Добрый день!

Я новичок во встраиваемых системах с Linux, до этого работал с безосьными контроллерами. Мне в руки попала плата EV-iMX287-NANО. Стоит задача создать новую плату со своей распиновкой на базе камня i.MX287. Помогите, пожалуйста, разобраться с процессом создания устройства.
Как я понял, при уже готовой плате все начинается с написания своего загрузчика. Везде рекомендуют U-Boot. Производители платы также EV-iMX287-NANО используют его. Но у них весь проект с бутлоадером уже готов и для его сборки достаточно запустить bash скрипт. На выходе получаем файл .sb , который заливаем на плату. Все грузится.
Можно, конечно, воспользоваться методом научного тыка, найти файлы, в которых прописана распиновка и источник загрузки, переправить их и рано или поздно это заработает.
Однако, такой подход не очень устраивает.
Во-первых, не до конца понятна структура проекта бутлоадера, нет навигации по библиотекам, header-файлам и т.д.
Во-вторых, непонятно, какая функция что делает(это можно найти каким-нибуть грепом, но жутко неудобно).

Сами фрискейлы пишут, что для сборки и навигации по проекту можно использовать настроенный специальным образом Eclipse. Но он с первого раза не заработал как надо, поэтому разбираюсь дальше. Плюс к тому в доках упоминается некий LTIB, ELF, консольная сборка перемежается с ide-шной. В общем, я порядком запутался.

Как резюме меня интересуют следующие вопросы:
- Есть ли у кого-нибудь опыт создания своих плат на линуксе?
- Есть ли у вас пояснения к процессу разработки данных устройств?
- Какой загрузчик вы использовали?
- Пользовались ли вы при этом IDE?

Буду рад любой информации.
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 39)
akorud
сообщение Dec 16 2015, 16:28
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(vgovseychuk @ Dec 16 2015, 16:50) *
Как резюме меня интересуют следующие вопросы:
- Есть ли у кого-нибудь опыт создания своих плат на линуксе?

Да

Цитата(vgovseychuk @ Dec 16 2015, 16:50) *
- Есть ли у вас пояснения к процессу разработки данных устройств?

Ну например http://stackoverflow.com/questions/1796669...-embedded-linux
И книга Embedded Linux Primer: A Practical Real-World Approach

Цитата(vgovseychuk @ Dec 16 2015, 16:50) *
- Какой загрузчик вы использовали?

U-Boot. Если можно его использовать - то нужно его использовать.

Цитата(vgovseychuk @ Dec 16 2015, 16:50) *
- Пользовались ли вы при этом IDE?

Нет
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 16 2015, 17:07
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(vgovseychuk @ Dec 16 2015, 18:50) *
Сами фрискейлы пишут, что для сборки и навигации по проекту можно использовать настроенный специальным образом Eclipse. Но он с первого раза не заработал как надо, поэтому разбираюсь дальше. Плюс к тому в доках упоминается некий LTIB, ELF, консольная сборка перемежается с ide-шной.

Сборка всегда осуществляется с помощью makefie. Из IDE только вызывается make, это нужно настроить. Чисто IDE-шные проекты для кросс-компиляции использовать не получится.
LTIB устарел и давно не поддерживается фрискейлом. Теперь у них официальный Yocto. Но это аццкий монстр. Попробуйте buildroot,

Цитата
Как резюме меня интересуют следующие вопросы:
- Есть ли у кого-нибудь опыт создания своих плат на линуксе?

Есть
Цитата
- Есть ли у вас пояснения к процессу разработки данных устройств?

Берем рефдизайн и перепиливаем под свои нужды.
Цитата
- Какой загрузчик вы использовали?

При отладке U-Boot, в продакшн самописный. Для imx28 уже есть готовый linux-prep, компактный загрузчик писать не нужно.
Цитата
- Пользовались ли вы при этом IDE?

Eclipse. В одном workspace U-boot, kernel и юзерспейс тесты железа. Все индексировано, хитеры и прототипы функций показываются. Сборка через makefile.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Dec 17 2015, 01:57
Сообщение #4


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (vgovseychuk @ Dec 16 2015, 23:50) *
Можно, конечно, воспользоваться методом научного тыка,

В случае с линуксом по собственному опыту рекомендую отказаться от этого метода. Есть куча приличной документации.

QUOTE (vgovseychuk @ Dec 16 2015, 23:50) *
- Есть ли у кого-нибудь опыт создания своих плат на линуксе?

Да.
QUOTE (vgovseychuk @ Dec 16 2015, 23:50) *
- Есть ли у вас пояснения к процессу разработки данных устройств?

Берётся рефересная плата на которой линукс работает. По ней делается своя. Измения сводим к минимуму. Но заранее готовимся выделить время на правку драйверов и написание софта.
QUOTE (vgovseychuk @ Dec 16 2015, 23:50) *
- Какой загрузчик вы использовали?

U-Boot.
QUOTE (vgovseychuk @ Dec 16 2015, 23:50) *
- Пользовались ли вы при этом IDE?

vim + плагины.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 17 2015, 07:33
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



Спасибо всем за ответы!

Цитата(_3m @ Dec 16 2015, 20:07) *
При отладке U-Boot, в продакшн самописный. Для imx28 уже есть готовый linux-prep, компактный загрузчик писать не нужно.

Eclipse. В одном workspace U-boot, kernel и юзерспейс тесты железа. Все индексировано, хитеры и прототипы функций показываются. Сборка через makefile.


А не могли бы Вы поделиться некой пошаговой инструкцией по настройке Eclipse? Я понимаю, она одинаковая для всех поддерживаемых плат.
Еще вопрос с bootlets. Что это и с чем его едят? Доки говорят, что они настраивают питание проца. Но неясно, как они соотносятся с u-boot. С linux-prep тоже неясно, откуда брать, как работать. wacko.gif

Вообще, было бы замечательно найти некий пример по полной настройке, начиная со скачивания сорцов и их модификацией с пояснениями до настройки источника загрузки(NAND/сеть/USB ...) и установки линукса. Я понимаю, это детский сад, но вдруг у кого-нибудь есть.

P.S. Нашел некие сорсы imx-bootlets. Внутри есть директория linux-prep. Это оно?
Go to the top of the page
 
+Quote Post
samike
сообщение Dec 17 2015, 07:44
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 12-04-06
Из: Москва
Пользователь №: 16 039



В плане общей информации:
А на сайте freescale (nxp) были?
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 17 2015, 07:58
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



Цитата(samike @ Dec 17 2015, 10:44) *
В плане общей информации:
А на сайте freescale (nxp) были?


Да, конечно. У меня уже закладок 20 оттуда =)
Go to the top of the page
 
+Quote Post
MikleV
сообщение Dec 17 2015, 08:49
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 15-05-15
Пользователь №: 86 697



Можете сразу грузить Linux после linux-prep без загрузчиков (если у вас не планируется в процессе работы обновления системные накатывать)
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 17 2015, 09:15
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



Цитата(MikleV @ Dec 17 2015, 11:49) *
Можете сразу грузить Linux после linux-prep без загрузчиков (если у вас не планируется в процессе работы обновления системные накатывать)


Можно попробовать, но хочется же все как у людей, с блэкджеком и обновлениями
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 17 2015, 10:25
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(vgovseychuk @ Dec 17 2015, 12:15) *
Можно попробовать, но хочется же все как у людей, с блэкджеком и обновлениями

Обновления можно накатывать и без u-boot причем несколькими способами.
* самый дубовый - MfgTool. Поднимет плату даже с затертым загрузчиком. Но для тупого юзера может быть сложноват.
* загрузка с sd карты.
* перезаписать загрузочный раздел из под штатного линукса с помощью kobs-ng. rootfs переписать сложнее но тоже можно

Так что скрипач u-boot не нужен. Только при разработке.

Цитата(vgovseychuk @ Dec 17 2015, 10:33) *
P.S. Нашел некие сорсы imx-bootlets. Внутри есть директория
Еще вопрос с bootlets. Что это и с чем его едят? Доки говорят, что они настраивают питание проца.
...
linux-prep. Это оно?

Оно
bootlets это маленькие программки (или плагины) которые ROM загрузчик (HAB loader) считывает с загрузочного источника и запускает на исполнение. Таких программок может быть много они вызываются последовательно одна за другой.
сначала запускается power prep и настраивает питание
потом еще что-то, уже не помню, возможно настройка памяти
последним вызывается linux prep или другой bootlet который загрузит в память линукс, у-бут или еще что-то и запустит это на выполнение.

Сообщение отредактировал _3m - Dec 17 2015, 10:39
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 17 2015, 12:22
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



В общем, история такая:
Для навигации по файлам настроил Эклипс. Сборку в нем же настроить не получилось, но навигация есть, и то радует.
Слил сорцы отсюда: ftp://ftp.denx.de/pub/u-boot/
Скопипастил исходники самой похожей платы ( boards/denx/m28evk )
Добавил ее везде, где можно (где grep -rl m28evk нашел упоминание платы-донора)
Сделал конфиг make CROSS_COMPILE=arm-none-eabi- TESTimx287_defconfig
Запустил сборку. Убут 2016.01 выдал ошибку (нашел ее на форуме разрабов - вроде как баг, но черт с ним)
В Убут 2015.10 получилось чуть лучше, но тоже ошибка:

tools/mxsimage.c:18:25: fatal error: openssl/evp.h: No such file or directory
#include <openssl/evp.h>
^
compilation terminated.
make[1]: *** [tools/mxsimage.o] Error 1
make: *** [tools] Error 2


В чем тут дело? Нет сорцов для SSL? Может, SSL вообще выкинуть пока из конфига?
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 17 2015, 13:10
Сообщение #12


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(vgovseychuk @ Dec 17 2015, 15:22) *
В чем тут дело? Нет сорцов для SSL? Может, SSL вообще выкинуть пока из конфига?

SSL всегда и везде выеживается. Выкидывайте.
Go to the top of the page
 
+Quote Post
quarter
сообщение Dec 17 2015, 13:26
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 17-12-15
Пользователь №: 89 731



если не нравятся бесплатные средства разработки (которые вытекают в применение u-boot, linux, и прочего бесплатного зоопарка), то всегда есть CodeWarrior Development Suite.
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 17 2015, 13:41
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



UPD:

Поставил пакеты
apt-get install libssl-dev
Скомпилился .sb файлик.

Ок, распиновку поменяем, оперативку определим. Что дальше?
На плате есть NAND флешка. Очевидно, лучше, чтоб Линукс лучше устанавливать на нее. А обновлять с сети или USB. Где это настраивается? И еще вопрос про переменные среды. Объясните, пожалуйста на пальцах нубу, что это и зачем они нужны?

Сообщение отредактировал vgovseychuk - Dec 17 2015, 14:24
Go to the top of the page
 
+Quote Post
MikleV
сообщение Dec 18 2015, 07:21
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 15-05-15
Пользователь №: 86 697



Цитата(vgovseychuk @ Dec 17 2015, 16:41) *
UPD:

Поставил пакеты
apt-get install libssl-dev
Скомпилился .sb файлик.

Ок, распиновку поменяем, оперативку определим. Что дальше?
На плате есть NAND флешка. Очевидно, лучше, чтоб Линукс лучше устанавливать на нее. А обновлять с сети или USB. Где это настраивается? И еще вопрос про переменные среды. Объясните, пожалуйста на пальцах нубу, что это и зачем они нужны?


Вам придется научиться писать скрипты под Linux (переменные среды в т.ч. нужны для них). Эти скрипты будучи установлены на целевую систему будут вызываться по определенным событиям (типы событий выбираете на любой вкус исходя из возможностей ОС, установленных программ и задействованных интерфейсов) и выполнять определенные действия (в т.ч. и по вашим обновлениям).
Например, один из типовых сценариев автоматического обновления по USB:
- вставляется USB в устройство определенная флешка с определенного типа файлом;
- работающий на устройстве демон udev или mdev или .. определяет устройство и ,например, по совпадению Vendor ID запускает самописный скрипт
- скрипт монтирует USB и смотрит есть ли нужный файл
- если файл есть распаковывает его / либо расшифровывает / либо сличает КС
- запускает скрипт обновления
Либо все это делается руками из консоли на целевой машине

Сообщение отредактировал MikleV - Dec 18 2015, 07:22
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 18 2015, 12:47
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



Новая проблема. Как залить .sb файл из-под линукса?
Go to the top of the page
 
+Quote Post
psL
сообщение Dec 18 2015, 13:43
Сообщение #17


Знающий
****

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



Цитата(vgovseychuk @ Dec 18 2015, 15:47) *
Новая проблема. Как залить .sb файл из-под линукса?

использовать kobs-ng?

вообще, здесь http://otladka.com.ua/wiki/doku.php?id=ev-imx287-micro много про ваш процессор, при чем на русском.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Dec 18 2015, 13:53
Сообщение #18


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

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



Цитата(vgovseychuk @ Dec 18 2015, 15:47) *
Новая проблема. Как залить .sb файл из-под линукса?

А где он должен находиться? В директории /boot как файл или на диске в бинарном виде?

В качестве системного диска у вас карточка или флеш на плате?
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 18 2015, 14:11
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



Цитата(Tarbal @ Dec 18 2015, 16:53) *
В качестве системного диска у вас карточка или флеш на плате?


NAND флешка на плате, соответственно записать образ на SD - не выход


Цитата(psL @ Dec 18 2015, 16:43) *
вообще, здесь http://otladka.com.ua/wiki/doku.php?id=ev-imx287-micro много про ваш процессор, при чем на русском.


Эти ребята собирают Ю-бут на виртуалке, а потом заливают с помощью MFG Tools с винды.

Сообщение отредактировал vgovseychuk - Dec 18 2015, 14:33
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Dec 19 2015, 05:04
Сообщение #20


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

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



Цитата(vgovseychuk @ Dec 18 2015, 17:11) *
NAND флешка на плате, соответственно записать образ на SD - не выход

Эти ребята собирают Ю-бут на виртуалке, а потом заливают с помощью MFG Tools с винды.


Если с СД вы можете загрузиться, то можно из этой системы записать. Вы можете увидеть вашу флешку как диск если загрузитесь с СД?
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 20 2015, 06:53
Сообщение #21


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(vgovseychuk @ Dec 18 2015, 17:11) *
Эти ребята собирают Ю-бут на виртуалке, а потом заливают с помощью MFG Tools с винды.

насколько мне известно MFG Tools под линукс не существует. Ищите винду.
Или делайте загрузочную сд карту, запускайте линукс с сд и из него переливайте в нанд.
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 21 2015, 06:59
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



Цитата(_3m @ Dec 20 2015, 09:53) *
насколько мне известно MFG Tools под линукс не существует. Ищите винду.
Или делайте загрузочную сд карту, запускайте линукс с сд и из него переливайте в нанд.


Нашел программу. http://git.denx.de/?p=mxsldr.git;a=summary
Заработало.
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 21 2015, 10:35
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



Как теперь заставить u-boot сохраняться в NAND?
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 21 2015, 10:35
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



U-boot висит в оперативке. Видимо, где-то в коде есть настройка для сохранения в NAND. Это так или я не туда копаю?

Сообщение отредактировал vgovseychuk - Dec 21 2015, 10:48
Go to the top of the page
 
+Quote Post
psL
сообщение Dec 21 2015, 12:35
Сообщение #25


Знающий
****

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



Цитата(vgovseychuk @ Dec 21 2015, 13:35) *
U-boot висит в оперативке. Видимо, где-то в коде есть настройка для сохранения в NAND. Это так или я не туда копаю?

u-boot нужно собрать с поддержкой nand, справка по командам u-boot для nand: help nand
запись командой: nand write [addr_from] [addr_to] [length]
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 21 2015, 13:05
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



Цитата(psL @ Dec 21 2015, 15:35) *
u-boot нужно собрать с поддержкой nand, справка по командам u-boot для nand: help nand
запись командой: nand write [addr_from] [addr_to] [length]


А как узнать эти адреса и размер?
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Dec 21 2015, 14:10
Сообщение #27


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

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



Вы с СД карточки можете загрузиться? Сделайте две. Одну через USB подключите после загрузки и с нее образ перепишите в NAND.
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 21 2015, 14:20
Сообщение #28


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



Цитата(Tarbal @ Dec 21 2015, 17:10) *
Вы с СД карточки можете загрузиться? Сделайте две. Одну через USB подключите после загрузки и с нее образ перепишите в NAND.


К сожалению, не могу. только usb и ethernet
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Dec 21 2015, 14:43
Сообщение #29


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

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



Цитата(vgovseychuk @ Dec 21 2015, 17:20) *
К сожалению, не могу. только usb и ethernet


Пощите на форумах по подобной системе адреса. Где-то в природе есть evaluation board на которой бежит Линукс?
Желательно иметь под рукой для обкатки гипотез. Найдите как грузить систему через usb. Если не найдете то только через специальные средства вроде той апликации, что вы упоминали или JTAG.
Способ, который а знаю через ethernet требует наличие бутлоадера.

Кстати в некоторых системах бутлоадер не пишется на диск как бинарник, а как файл в директорию.

В частности Beagle Board TI точно не помню название процессора, но очень близок к АМ3715
Диск разбивается на две партишн. Первая в несколько десятков мегабайт форматируется под FAT32, а вторая -- оставшееся пространство EXT3, EXT4.
В первой находятся файлы начального загрузчика, бутлоадера, командной строки ядра и ядра. Имена изменять нельзя. Процессор при старте находит начальный загрузчик, а дальше по цепочке.

В системе imx53 бутлоадер находится на диске со смещением 2 блока (512 байт), ядро 2048 блоков, а конфигурация бутлоадера со смещением 0х640 блоков
смещение для ядра и конфигурации где-то в бутлоадере прописано.
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 22 2015, 10:34
Сообщение #30


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



UPD:

Решил проблему компиляцией с сохранением переменных в NAND. Поднял tftp, закинул на сервер юбут. Затем run update_nand_full.

Куда двигаться дальше? Device Tree? собирать линукс?

Сообщение отредактировал vgovseychuk - Dec 22 2015, 11:55
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Dec 22 2015, 14:23
Сообщение #31


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

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



Цитата(vgovseychuk @ Dec 22 2015, 13:34) *
UPD:

Решил проблему компиляцией с сохранением переменных в NAND. Поднял tftp, закинул на сервер юбут. Затем run update_nand_full.

Куда двигаться дальше? Device Tree? собирать линукс?


Device Tree это составная часть сборки ядра. Надо поместить адро туда, откуда юбут берет ядро и загружает его, а еще надо создать партишн в оставшейся части диска, отформатировать ее и разместить там "корневую файлофую систему", которую ядро смонтирыет в корневую директорию.

Можно собрать ядро и корневую файловую систему, а можно и взать где-нибудь готовые. Неужели никто еще не собирал подобную систему?
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 22 2015, 18:10
Сообщение #32


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(vgovseychuk @ Dec 22 2015, 13:34) *
Куда двигаться дальше? Device Tree? собирать линукс?

Ваша версия uboot поддерживает device tree ?
Прежде чем собирать ядро выясните:
* наличие скомпилированного ядра линукс от производителя
* конфиг под вашу плату от производителя
* исходники ядра под вашу плату
* зачем вам пересобирать ядро

с неправильным конфигом ядро с 90% вероятностью не заработает
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 23 2015, 07:50
Сообщение #33


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



Цитата(_3m @ Dec 22 2015, 21:10) *
Прежде чем собирать ядро выясните:
* наличие скомпилированного ядра линукс от производителя
* конфиг под вашу плату от производителя
* исходники ядра под вашу плату
* зачем вам пересобирать ядро


Хочу сделать свою плату + Образовательные цели. Я как контроллерщик привык разбираться в работе систем почти до "бегающих в полупроводниках электронов". Конечно, писать все с нуля глупо, но подробно разобраться в механизмах встраиваемых систем на линуксе считаю для себя нужным. Адресация по шинам, мультиплексирование и подтяжка выводов, драйвера устройств, вот это всё.

Цитата(Tarbal @ Dec 22 2015, 17:23) *
Device Tree это составная часть сборки ядра. Надо поместить адро туда, откуда юбут берет ядро и загружает его, а еще надо создать партишн в оставшейся части диска, отформатировать ее и разместить там "корневую файлофую систему", которую ядро смонтирыет в корневую директорию.


В юбуте есть переменная окружения mtdparts=gpmi-nand:1664k(bootloader)ro,256k(environment),128k(fdt),5m(kernel),-(rootfs) Это оно?
Как я понимаю, скомпилированный dtb надо аналогичным юбуту способом залить в nand на свое место?

Сообщение отредактировал vgovseychuk - Dec 23 2015, 07:16
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Dec 23 2015, 17:49
Сообщение #34


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

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



Я тоже начинал как контроллерщик sm.gif А еще раньше как электронщик.

Если и не оно то отношение имеет. Не понятно еще откуда берутся адреса.

Если у вас юбут бежит, то остальное вы можете залить через него. Это как альтернатива.
Go to the top of the page
 
+Quote Post
Флюктуация вакку...
сообщение Dec 23 2015, 17:53
Сообщение #35


Местный
***

Группа: Участник
Сообщений: 346
Регистрация: 15-12-13
Из: Планета Земля
Пользователь №: 79 630



Цитата(Tarbal @ Dec 23 2015, 20:49) *
Я тоже начинал как контроллерщик sm.gif А еще раньше как электронщик.

А кто Вы сейчас?
Риелтор?
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Dec 23 2015, 18:00
Сообщение #36


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

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



Цитата(Флюктуация ваккума @ Dec 23 2015, 21:53) *
А кто Вы сейчас?
Риелтор?


Счетчик контроллеров на плате. Больше 99 поставить не могу. Фантазии не хватает.

Кстати перечитал первый постинг топика. Я использовал LTIB. С него Фрискейл уже соскочил, но процессор не новый и может стоит попробовать? Он построит вам бутлоадер, ядро пропатчит и построит. Построит файловую систему.
Он сам скачает правильные исходники и оставит на вашей рабочей машине, сконфигурирует кросскомпилятор.
Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 24 2015, 10:07
Сообщение #37


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



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

В коде бутлоадера есть такая команда:

"update_nand_full=" /* Update FCB, DBBT and FW */ \
"if tftp ${update_nand_full_filename} ; then " \
"run update_nand_get_fcb_size ; " \
"nand scrub -y 0x0 ${filesize} ; " \
"nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \
"setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \
"setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \
"nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \
"fi\0"


Она сохраняет бутлоадер, но походу затирает партишн. И наоборот, когда записываю в nand по партишону rootfs, kernel и fdt, отказывается запускаться бутлоадер.
Партишн такой:

"mtdparts=mtdparts=gpmi-nand:" \
"3m(bootloader)ro," \
"256k(environment)," \
"128k(fdt)," \
"5m(kernel)," \
"-(rootfs)\0" \


Попытался переписать команду обновления и сохранения в память:

"update_nand_bootandenv=" /* Update bootloader and environment VOVS*/ \
"if tftp ${update_nand_firmware_filename} ; then " \
"nand erase.part ${bootloader}; " \
"nand erase.part ${environment}; " \
"nand write ${loadaddr} ${bootloader} ${filesize} ; " \
"saveenv\0" \


Но она не заработала. Кто-нибудь сталкивался с этим? Кстати, странно, что нет команды write.part, хотя erase.part и scrub.part есть laughing.gif

Go to the top of the page
 
+Quote Post
vgovseychuk
сообщение Dec 24 2015, 11:48
Сообщение #38


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 16-03-14
Пользователь №: 80 955



И в чем отличия u-boot.sb от u-boot.nand?

Если я делаю run update_nand_full, то заливается u-boot.nand, который делает утилита mxsboot из u-boot.sb. Однако, его размер 3Мб, и при записи в NAND он затирает нужные разделы.
Если я делаю run update_nand_firmware, то заливается u-boot.sb размером 532кб, но убут не стартует.

UPD:
Переразметил флешку с запасом. Все работает. Всем Спасибо.

Сообщение отредактировал vgovseychuk - Dec 25 2015, 07:04
Go to the top of the page
 
+Quote Post
MikleV
сообщение Dec 25 2015, 12:08
Сообщение #39


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 15-05-15
Пользователь №: 86 697



По работе с NAND мне помогли доки во вложении.
Прикрепленные файлы
Прикрепленный файл  MTD_dev.tar ( 1.94 мегабайт ) Кол-во скачиваний: 14
 
Go to the top of the page
 
+Quote Post
MikleV
сообщение Dec 28 2015, 07:04
Сообщение #40


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 15-05-15
Пользователь №: 86 697



Получилось свежий uboot на 287 запустить? Сколько размер итогового файла? Если не сложно конфигом поделитесь?
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 Текстовая версия Сейчас: 28th July 2025 - 20:40
Рейтинг@Mail.ru


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