|
Linux с голого железа, Hardware -> Bootlader -> Linux |
|
|
|
Dec 16 2015, 15:50
|
Участник

Группа: Участник
Сообщений: 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?
Буду рад любой информации.
|
|
|
|
|
 |
Ответов
|
Dec 16 2015, 17:07
|
Знающий
   
Группа: Участник
Сообщений: 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.
|
|
|
|
|
Dec 17 2015, 07:33
|
Участник

Группа: Участник
Сообщений: 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 тоже неясно, откуда брать, как работать. Вообще, было бы замечательно найти некий пример по полной настройке, начиная со скачивания сорцов и их модификацией с пояснениями до настройки источника загрузки(NAND/сеть/USB ...) и установки линукса. Я понимаю, это детский сад, но вдруг у кого-нибудь есть. P.S. Нашел некие сорсы imx-bootlets. Внутри есть директория linux-prep. Это оно?
|
|
|
|
|
Dec 17 2015, 12:22
|
Участник

Группа: Участник
Сообщений: 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 вообще выкинуть пока из конфига?
|
|
|
|
|
Dec 17 2015, 13:41
|
Участник

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

|
UPD:
Поставил пакеты apt-get install libssl-dev Скомпилился .sb файлик.
Ок, распиновку поменяем, оперативку определим. Что дальше? На плате есть NAND флешка. Очевидно, лучше, чтоб Линукс лучше устанавливать на нее. А обновлять с сети или USB. Где это настраивается? И еще вопрос про переменные среды. Объясните, пожалуйста на пальцах нубу, что это и зачем они нужны?
Сообщение отредактировал vgovseychuk - Dec 17 2015, 14:24
|
|
|
|
|
Dec 18 2015, 07:21
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Dec 18 2015, 12:47
|
Участник

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

|
Новая проблема. Как залить .sb файл из-под линукса?
|
|
|
|
|
Dec 18 2015, 13:43
|
Знающий
   
Группа: Свой
Сообщений: 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 много про ваш процессор, при чем на русском.
|
|
|
|
Сообщений в этой теме
vgovseychuk Linux с голого железа Dec 16 2015, 15:50 akorud Цитата(vgovseychuk @ Dec 16 2015, 16:50) ... Dec 16 2015, 16:28   _3m Цитата(vgovseychuk @ Dec 17 2015, 15:22) ... Dec 17 2015, 13:10      Tarbal Цитата(vgovseychuk @ Dec 18 2015, 15:47) ... Dec 18 2015, 13:53       vgovseychuk Цитата(Tarbal @ Dec 18 2015, 16:53) В кач... Dec 18 2015, 14:11        Tarbal Цитата(vgovseychuk @ Dec 18 2015, 17:11) ... Dec 19 2015, 05:04        _3m Цитата(vgovseychuk @ Dec 18 2015, 17:11) ... Dec 20 2015, 06:53         vgovseychuk Цитата(_3m @ Dec 20 2015, 09:53) наскольк... Dec 21 2015, 06:59          vgovseychuk Как теперь заставить u-boot сохраняться в NAND? Dec 21 2015, 10:35          vgovseychuk U-boot висит в оперативке. Видимо, где-то в коде е... Dec 21 2015, 10:35           psL Цитата(vgovseychuk @ Dec 21 2015, 13:35) ... Dec 21 2015, 12:35            vgovseychuk Цитата(psL @ Dec 21 2015, 15:35) u-boot н... Dec 21 2015, 13:05 haker_fox QUOTE (vgovseychuk @ Dec 16 2015, 23:50) ... Dec 17 2015, 01:57 samike В плане общей информации:
А на сайте freescale (nx... Dec 17 2015, 07:44 vgovseychuk Цитата(samike @ Dec 17 2015, 10:44) В пла... Dec 17 2015, 07:58 MikleV Можете сразу грузить Linux после linux-prep без за... Dec 17 2015, 08:49 vgovseychuk Цитата(MikleV @ Dec 17 2015, 11:49) Может... Dec 17 2015, 09:15  _3m Цитата(vgovseychuk @ Dec 17 2015, 12:15) ... Dec 17 2015, 10:25 quarter если не нравятся бесплатные средства разработки (к... Dec 17 2015, 13:26 Tarbal Вы с СД карточки можете загрузиться? Сделайте две.... Dec 21 2015, 14:10 vgovseychuk Цитата(Tarbal @ Dec 21 2015, 17:10) Вы с ... Dec 21 2015, 14:20  Tarbal Цитата(vgovseychuk @ Dec 21 2015, 17:20) ... Dec 21 2015, 14:43   vgovseychuk UPD:
Решил проблему компиляцией с сохранением пер... Dec 22 2015, 10:34    Tarbal Цитата(vgovseychuk @ Dec 22 2015, 13:34) ... Dec 22 2015, 14:23    _3m Цитата(vgovseychuk @ Dec 22 2015, 13:34) ... Dec 22 2015, 18:10     vgovseychuk Цитата(_3m @ Dec 22 2015, 21:10) Прежде ч... Dec 23 2015, 07:50 Tarbal Я тоже начинал как контроллерщик А еще раньше как... Dec 23 2015, 17:49 Флюктуация ваккума Цитата(Tarbal @ Dec 23 2015, 20:49) Я тож... Dec 23 2015, 17:53  Tarbal Цитата(Флюктуация ваккума @ Dec 23 2015, 21... Dec 23 2015, 18:00   vgovseychuk С бутлоадером более-менее разобрался, даже линукс ... Dec 24 2015, 10:07    vgovseychuk И в чем отличия u-boot.sb от u-boot.nand?
Если я ... Dec 24 2015, 11:48 MikleV По работе с NAND мне помогли доки во вложении. Dec 25 2015, 12:08 MikleV Получилось свежий uboot на 287 запустить? Сколько ... Dec 28 2015, 07:04
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|