vgovseychuk 0 16 декабря, 2015 Опубликовано 16 декабря, 2015 · Жалоба Добрый день! Я новичок во встраиваемых системах с Linux, до этого работал с безосьными контроллерами. Мне в руки попала плата EV-iMX287-NANО. Стоит задача создать новую плату со своей распиновкой на базе камня i.MX287. Помогите, пожалуйста, разобраться с процессом создания устройства. Как я понял, при уже готовой плате все начинается с написания своего загрузчика. Везде рекомендуют U-Boot. Производители платы также EV-iMX287-NANО используют его. Но у них весь проект с бутлоадером уже готов и для его сборки достаточно запустить bash скрипт. На выходе получаем файл .sb , который заливаем на плату. Все грузится. Можно, конечно, воспользоваться методом научного тыка, найти файлы, в которых прописана распиновка и источник загрузки, переправить их и рано или поздно это заработает. Однако, такой подход не очень устраивает. Во-первых, не до конца понятна структура проекта бутлоадера, нет навигации по библиотекам, header-файлам и т.д. Во-вторых, непонятно, какая функция что делает(это можно найти каким-нибуть грепом, но жутко неудобно). Сами фрискейлы пишут, что для сборки и навигации по проекту можно использовать настроенный специальным образом Eclipse. Но он с первого раза не заработал как надо, поэтому разбираюсь дальше. Плюс к тому в доках упоминается некий LTIB, ELF, консольная сборка перемежается с ide-шной. В общем, я порядком запутался. Как резюме меня интересуют следующие вопросы: - Есть ли у кого-нибудь опыт создания своих плат на линуксе? - Есть ли у вас пояснения к процессу разработки данных устройств? - Какой загрузчик вы использовали? - Пользовались ли вы при этом IDE? Буду рад любой информации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
akorud 0 16 декабря, 2015 Опубликовано 16 декабря, 2015 · Жалоба Как резюме меня интересуют следующие вопросы: - Есть ли у кого-нибудь опыт создания своих плат на линуксе? Да - Есть ли у вас пояснения к процессу разработки данных устройств? Ну например http://stackoverflow.com/questions/1796669...-embedded-linux И книга Embedded Linux Primer: A Practical Real-World Approach - Какой загрузчик вы использовали? U-Boot. Если можно его использовать - то нужно его использовать. - Пользовались ли вы при этом IDE? Нет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 5 16 декабря, 2015 Опубликовано 16 декабря, 2015 · Жалоба Сами фрискейлы пишут, что для сборки и навигации по проекту можно использовать настроенный специальным образом Eclipse. Но он с первого раза не заработал как надо, поэтому разбираюсь дальше. Плюс к тому в доках упоминается некий LTIB, ELF, консольная сборка перемежается с ide-шной. Сборка всегда осуществляется с помощью makefie. Из IDE только вызывается make, это нужно настроить. Чисто IDE-шные проекты для кросс-компиляции использовать не получится. LTIB устарел и давно не поддерживается фрискейлом. Теперь у них официальный Yocto. Но это аццкий монстр. Попробуйте buildroot, Как резюме меня интересуют следующие вопросы: - Есть ли у кого-нибудь опыт создания своих плат на линуксе? Есть - Есть ли у вас пояснения к процессу разработки данных устройств? Берем рефдизайн и перепиливаем под свои нужды. - Какой загрузчик вы использовали? При отладке U-Boot, в продакшн самописный. Для imx28 уже есть готовый linux-prep, компактный загрузчик писать не нужно. - Пользовались ли вы при этом IDE? Eclipse. В одном workspace U-boot, kernel и юзерспейс тесты железа. Все индексировано, хитеры и прототипы функций показываются. Сборка через makefile. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 59 17 декабря, 2015 Опубликовано 17 декабря, 2015 · Жалоба Можно, конечно, воспользоваться методом научного тыка, В случае с линуксом по собственному опыту рекомендую отказаться от этого метода. Есть куча приличной документации. - Есть ли у кого-нибудь опыт создания своих плат на линуксе? Да. - Есть ли у вас пояснения к процессу разработки данных устройств? Берётся рефересная плата на которой линукс работает. По ней делается своя. Измения сводим к минимуму. Но заранее готовимся выделить время на правку драйверов и написание софта. - Какой загрузчик вы использовали? U-Boot. - Пользовались ли вы при этом IDE? vim + плагины. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vgovseychuk 0 17 декабря, 2015 Опубликовано 17 декабря, 2015 · Жалоба Спасибо всем за ответы! При отладке 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. Это оно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sadmix 0 17 декабря, 2015 Опубликовано 17 декабря, 2015 · Жалоба В плане общей информации: А на сайте freescale (nxp) были? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vgovseychuk 0 17 декабря, 2015 Опубликовано 17 декабря, 2015 · Жалоба В плане общей информации: А на сайте freescale (nxp) были? Да, конечно. У меня уже закладок 20 оттуда =) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MIKS 0 17 декабря, 2015 Опубликовано 17 декабря, 2015 · Жалоба Можете сразу грузить Linux после linux-prep без загрузчиков (если у вас не планируется в процессе работы обновления системные накатывать) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vgovseychuk 0 17 декабря, 2015 Опубликовано 17 декабря, 2015 · Жалоба Можете сразу грузить Linux после linux-prep без загрузчиков (если у вас не планируется в процессе работы обновления системные накатывать) Можно попробовать, но хочется же все как у людей, с блэкджеком и обновлениями Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 5 17 декабря, 2015 Опубликовано 17 декабря, 2015 (изменено) · Жалоба Можно попробовать, но хочется же все как у людей, с блэкджеком и обновлениями Обновления можно накатывать и без u-boot причем несколькими способами. * самый дубовый - MfgTool. Поднимет плату даже с затертым загрузчиком. Но для тупого юзера может быть сложноват. * загрузка с sd карты. * перезаписать загрузочный раздел из под штатного линукса с помощью kobs-ng. rootfs переписать сложнее но тоже можно Так что скрипач u-boot не нужен. Только при разработке. P.S. Нашел некие сорсы imx-bootlets. Внутри есть директория Еще вопрос с bootlets. Что это и с чем его едят? Доки говорят, что они настраивают питание проца. ... linux-prep. Это оно? Оно bootlets это маленькие программки (или плагины) которые ROM загрузчик (HAB loader) считывает с загрузочного источника и запускает на исполнение. Таких программок может быть много они вызываются последовательно одна за другой. сначала запускается power prep и настраивает питание потом еще что-то, уже не помню, возможно настройка памяти последним вызывается linux prep или другой bootlet который загрузит в память линукс, у-бут или еще что-то и запустит это на выполнение. Изменено 17 декабря, 2015 пользователем _3m Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vgovseychuk 0 17 декабря, 2015 Опубликовано 17 декабря, 2015 · Жалоба В общем, история такая: Для навигации по файлам настроил Эклипс. Сборку в нем же настроить не получилось, но навигация есть, и то радует. Слил сорцы отсюда: 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 вообще выкинуть пока из конфига? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 5 17 декабря, 2015 Опубликовано 17 декабря, 2015 · Жалоба В чем тут дело? Нет сорцов для SSL? Может, SSL вообще выкинуть пока из конфига? SSL всегда и везде выеживается. Выкидывайте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quarter 1 17 декабря, 2015 Опубликовано 17 декабря, 2015 · Жалоба если не нравятся бесплатные средства разработки (которые вытекают в применение u-boot, linux, и прочего бесплатного зоопарка), то всегда есть CodeWarrior Development Suite. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vgovseychuk 0 17 декабря, 2015 Опубликовано 17 декабря, 2015 (изменено) · Жалоба UPD: Поставил пакеты apt-get install libssl-dev Скомпилился .sb файлик. Ок, распиновку поменяем, оперативку определим. Что дальше? На плате есть NAND флешка. Очевидно, лучше, чтоб Линукс лучше устанавливать на нее. А обновлять с сети или USB. Где это настраивается? И еще вопрос про переменные среды. Объясните, пожалуйста на пальцах нубу, что это и зачем они нужны? Изменено 17 декабря, 2015 пользователем vgovseychuk Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MIKS 0 18 декабря, 2015 Опубликовано 18 декабря, 2015 (изменено) · Жалоба UPD: Поставил пакеты apt-get install libssl-dev Скомпилился .sb файлик. Ок, распиновку поменяем, оперативку определим. Что дальше? На плате есть NAND флешка. Очевидно, лучше, чтоб Линукс лучше устанавливать на нее. А обновлять с сети или USB. Где это настраивается? И еще вопрос про переменные среды. Объясните, пожалуйста на пальцах нубу, что это и зачем они нужны? Вам придется научиться писать скрипты под Linux (переменные среды в т.ч. нужны для них). Эти скрипты будучи установлены на целевую систему будут вызываться по определенным событиям (типы событий выбираете на любой вкус исходя из возможностей ОС, установленных программ и задействованных интерфейсов) и выполнять определенные действия (в т.ч. и по вашим обновлениям). Например, один из типовых сценариев автоматического обновления по USB: - вставляется USB в устройство определенная флешка с определенного типа файлом; - работающий на устройстве демон udev или mdev или .. определяет устройство и ,например, по совпадению Vendor ID запускает самописный скрипт - скрипт монтирует USB и смотрит есть ли нужный файл - если файл есть распаковывает его / либо расшифровывает / либо сличает КС - запускает скрипт обновления Либо все это делается руками из консоли на целевой машине Изменено 18 декабря, 2015 пользователем MikleV Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться