Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Buildroot: создание образа Orange Pi
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Olej
Здесь есть рядом похожая тема Buildroot: создание образа и перепрошивка i.MX6ULL, но ... не хочется сорить - там немного о другом.

Вопрос: в BuildRoot (последних) есть дефаултные конфигурации:
Код
[olej@xenix buildroot-master]$ make list-defconfigs | grep orangepi
  orangepi_lite_defconfig             - Build for orangepi_lite
  orangepi_one_defconfig              - Build for orangepi_one
  orangepi_pc2_defconfig              - Build for orangepi_pc2
  orangepi_pc_defconfig               - Build for orangepi_pc
  orangepi_pc_plus_defconfig          - Build for orangepi_pc_plus
  orangepi_plus_defconfig             - Build for orangepi_plus
  orangepi_prime_defconfig            - Build for orangepi_prime
  orangepi_win_defconfig              - Build for orangepi_win
  orangepi_zero_defconfig             - Build for orangepi_zero
  orangepi_zero_plus2_defconfig       - Build for orangepi_zero_plus2

Заказываем дефаултный конфиг:
Код
[olej@xenix buildroot-master]$ make orangepi_one_defconfig
mkdir -p /home/olej/buildroot-master/output/build/buildroot-config/lxdialog
PKG_CONFIG_PATH="" make CC="/usr/bin/gcc" HOSTCC="/usr/bin/gcc" \
    obj=/home/olej/buildroot-master/output/build/buildroot-config -C support/kconfig -f Makefile.br conf
/usr/bin/gcc -D_GNU_SOURCE -D_DEFAULT_SOURCE  -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/olej/buildroot-master/output/build/buildroot-config -DCONFIG_=\"\"   /home/olej/buildroot-master/output/build/buildroot-config/conf.o /home/olej/buildroot-master/output/build/buildroot-config/zconf.tab.o  -o /home/olej/buildroot-master/output/build/buildroot-config/conf
#
# configuration written to /home/olej/buildroot-master/.config
#

А дальше правим конфигурации под свои потребности...
Образ .img собран, накатан на SD-карточку, загружен...
Вся загрузка через UART идёт на отладочную консоль ... до login и далее ...

Но локальный монитор при этом глухо не инициализируется, только UART-консоль.
В обсуждениях (на вопрос "куда копать") пишут:
Цитата
В сторону драйвера дисплея, в mainline ядре поддержки Н3 до сих пор нет.
Сейчас пока всё делается через U-Boot, он сам настраивает HDMI, создает под это фреймбуфер и передает его ядру в готовом виде, не помню как эта технология называется.
Ядро работает только с /dev/fb*. посмотри есть они у тебя?

Может кто прояснить происходящее?
Как называется эта технология?
laughing.gif ... Куда копать?

Tarbal
Цитата(Olej @ Jul 1 2018, 14:59) *
Здесь есть рядом похожая тема Buildroot: создание образа и перепрошивка i.MX6ULL, но ... не хочется сорить - там немного о другом.

Вопрос: в BuildRoot (последних) есть дефаултные конфигурации:
Код
[olej@xenix buildroot-master]$ make list-defconfigs | grep orangepi
  orangepi_lite_defconfig             - Build for orangepi_lite
  orangepi_one_defconfig              - Build for orangepi_one
  orangepi_pc2_defconfig              - Build for orangepi_pc2
  orangepi_pc_defconfig               - Build for orangepi_pc
  orangepi_pc_plus_defconfig          - Build for orangepi_pc_plus
  orangepi_plus_defconfig             - Build for orangepi_plus
  orangepi_prime_defconfig            - Build for orangepi_prime
  orangepi_win_defconfig              - Build for orangepi_win
  orangepi_zero_defconfig             - Build for orangepi_zero
  orangepi_zero_plus2_defconfig       - Build for orangepi_zero_plus2

Заказываем дефаултный конфиг:
Код
[olej@xenix buildroot-master]$ make orangepi_one_defconfig
mkdir -p /home/olej/buildroot-master/output/build/buildroot-config/lxdialog
PKG_CONFIG_PATH="" make CC="/usr/bin/gcc" HOSTCC="/usr/bin/gcc" \
    obj=/home/olej/buildroot-master/output/build/buildroot-config -C support/kconfig -f Makefile.br conf
/usr/bin/gcc -D_GNU_SOURCE -D_DEFAULT_SOURCE  -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/olej/buildroot-master/output/build/buildroot-config -DCONFIG_=\"\"   /home/olej/buildroot-master/output/build/buildroot-config/conf.o /home/olej/buildroot-master/output/build/buildroot-config/zconf.tab.o  -o /home/olej/buildroot-master/output/build/buildroot-config/conf
#
# configuration written to /home/olej/buildroot-master/.config
#

А дальше правим конфигурации под свои потребности...
Образ .img собран, накатан на SD-карточку, загружен...
Вся загрузка через UART идёт на отладочную консоль ... до login и далее ...

Но локальный монитор при этом глухо не инициализируется, только UART-консоль.
В обсуждениях (на вопрос "куда копать") пишут:

Может кто прояснить происходящее?
Как называется эта технология?
laughing.gif ... Куда копать?


Я самый простой orangepi попробовал. Не строил ничего. Скачал их образ с интернета. Не работает команда shutdown -h now. Она ребут делает. Попробовал смонтировать RAM диск. После рестарта все, что писал сохраняется в директории. То есть он сделал вид, что монтирует, а сам тупо в директорию пишет. Забил. Оно сырое.
Nano pi NEO немного дороже, но гораздо стабильнее. Я решил не тратить время на сырой софт.
Olej
Цитата(Tarbal @ Jul 4 2018, 06:21) *
Я самый простой orangepi попробовал. Не строил ничего. Скачал их образ с интернета. Не работает команда shutdown -h now. Она ребут делает. Попробовал смонтировать RAM диск. После рестарта все, что писал сохраняется в директории. То есть он сделал вид, что монтирует, а сам тупо в директорию пишет. Забил. Оно сырое.
Nano pi NEO немного дороже, но гораздо стабильнее. Я решил не тратить время на сырой софт.

Это всё (Orange Pi vs Nano Pi ... или vs Rapsberry Pi) к самому типу SBC/SoC не имеет никакого отношения:
- для того же Orange Pi есть ... ну не меньше 2-х десятков авторов-технологий сборки OS, и каждая ведёт себя по-разному
- есть постоянно обновляемые сборки от независимого проекта Armbian - очень приличные сборки и очень умный проект ... не в пример "оригинальной" сборке от производителя Orange Pi
- я сам с помощью BuildRoot, простейшими усилиями, собирал 3-4 вариантов минимальных конфигураций CLI Linux ... всё очень адекватно.
Tarbal
Цитата(Olej @ Jul 4 2018, 20:39) *
Это всё (Orange Pi vs Nano Pi ... или vs Rapsberry Pi) к самому типу SBC/SoC не имеет никакого отношения:
- для того же Orange Pi есть ... ну не меньше 2-х десятков авторов-технологий сборки OS, и каждая ведёт себя по-разному
- есть постоянно обновляемые сборки от независимого проекта Armbian - очень приличные сборки и очень умный проект ... не в пример "оригинальной" сборке от производителя Orange Pi
- я сам с помощью BuildRoot, простейшими усилиями, собирал 3-4 вариантов минимальных конфигураций CLI Linux ... всё очень адекватно.


Я самодельные сборки не хочу делать. Мой проект требует установки несокльких пакетов для работы с сетью и т.д.. Каждый компилировать времени нет. А на дебиан или убунту, федору можно простой командой ставить.
Я не знал, что много есть альтернатив. Спасибо. Посмотрю внимательнее. Rapsberry Pi конечно крутой. Я на нем ставил Астериск и писал драйвер для USB FXO/FXS. Работает как часы. Там для телефона каждую миллисекунду передается 8 точек голоса. Никаких проблем не было.
Olej
Цитата(Tarbal @ Jul 5 2018, 04:37) *
Я самодельные сборки не хочу делать. Мой проект требует установки несокльких пакетов для работы с сетью и т.д..

Это никакие не самодельные сборки. А самые что ни на есть стандартные сборки Linux, когда системе сборки только указываются требуемые ядро, пакеты... а система сборки сама ownload с домашних страниц всех проектов их скачивает (исходники) и собирает. Большой плюс, что может собирать кросс-компиляцией (на x86 станет собирать образ для PPC).
Цитата(Tarbal @ Jul 5 2018, 04:37) *
Каждый компилировать времени нет. А на дебиан или убунту, федору можно простой командой ставить.

На "дебиан или убунту, федору" всё ставится пакетными системами , пакеты, которые компилируются ровно из тех же исходников (других в природе просто нет).
Только пакетные дистрибутивы имеют размер раз в 10 больше, чем собранные под целевые требования (1Gb, к примеру, вместо 75Mb laughing.gif ).
На сегодня размер - это вовсе уже мало для кого ограничивающий фактор, но в этих пакетных дистрибутивах (даже если это на ARM, типа Armbian) по умолчанию сконфигурированы 2-3 десятка демонов-сервисов, которые могут тупо без нужды нагружать систему ... или нужно щепетильно разбираться кого там из них нужно останавливать.
P.S. как пример, ... смешно biggrin.gif : практически во всех пакетных дистрибутивах устанавливаются и запускаются ... сервисы SMB ... "услужливо" wacko.gif
Jury093
Цитата(Olej @ Jul 12 2018, 18:58) *
P.S. как пример, ... смешно biggrin.gif : практически во всех пакетных дистрибутивах устанавливаются и запускаются ... сервисы SMB ... "услужливо" wacko.gif

потому что не надо черпать всякую каку из чужих источников - архив голого дистрибутива нативного дебьяна (для архитектуры armel или armelhf) весит ~60-70MB, о каких гигабайтах идет речь? туда напихивают медийных файлов или кучу ненужных на момент старта пакетов (самбу, гцц и прочее)..
зайдите на сайт debian, там есть инструкция как самому сплодить дистрибутив, аскетичнее некуда. более того даже оттуда можно еще повыкидывать доки, локали и еще уменьшить размер
Tarbal
Сегодня размер не так критичен. У меня есть масса вещей сделать, что я не хочу тратить время на сборки или вылизывание. Если встанет вопрос о конечном продукте -- тогда и буду вылизывать. Производительности тоже хватает, а если нет, то знаю как найти кто жрет время процессора.
Jury093
Цитата(Tarbal @ Jul 13 2018, 02:39) *
Сегодня размер не так критичен.

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

Цитата(Olej @ Jul 1 2018, 13:59) *
Вся загрузка через UART идёт на отладочную консоль ... до login и далее ...
Но локальный монитор при этом глухо не инициализируется, только UART-консоль.
В обсуждениях (на вопрос "куда копать") пишут:
Может кто прояснить происходящее?
Как называется эта технология?
laughing.gif ... Куда копать?

видимо для начала посмотреть "а не выводит ли изображение u-boot?" раз уж он инитит hdmi, то и выводить наверно что-то может - логотип или картинку или просто строчки
далее после загрузки системы посмотреть командой
Код
ls /dev

существование устройств fb0/fb1 и подобных
если их нет, то смотреть в конфиге ядра раздел поддержки графики на предмет фреймбуфера для этого АРМа
если есть, то либо утилитой fbset смотреть текущие параметры либо копаться в каталоге /sys/class/graphics/fb0 возможно какого-то enable или blank не хватает..
в клиническом случае подебажить драйвер фреймбуфера, хотя бы момент старта, параметров и успешного выхода в конце инита..

ЗЫ да, и проверить - может надо через строку для ядра передать параметры для разрешения hdmi
Olej
Цитата(Jury093 @ Jul 13 2018, 09:54) *
видимо для начала посмотреть "а не выводит ли изображение u-boot?" раз уж он инитит hdmi, то и выводить наверно что-то может - логотип или картинку или просто строчки

U-boot выводит текстовый протокол своей загрузки, до момента загрузки ядра.
Цитата(Jury093 @ Jul 13 2018, 09:54) *
далее после загрузки системы посмотреть командой
Код
ls /dev

существование устройств fb0/fb1 и подобных

Нет их, /dev/fb* - с самого начала проверено.
Цитата(Jury093 @ Jul 13 2018, 09:54) *
ЗЫ да, и проверить - может надо через строку для ядра передать параметры для разрешения hdmi

Каким образом "проверить"?

Но всё это не самое главное в этой теме.
А то, как средствами BuildRoot собрать hard realtime систему Xenomai Cobalt?
Когда для патченья ядра под проект Adeos, патч ipipe, Xenomai в своих инструкциях используют не команду patch, а свой собственный скрипт патченья ... почти в 500 строк кода shell.
Как это объяснить BuildRoot?

Tarbal
Цитата(Jury093 @ Jul 13 2018, 10:54) *
производители телевизоров, медиаприставок, роутеров, видеорегистраторов и подобной нечисти дружно улыбаются при этой фразе..
не смешивайте продакшн и отладку..


Вы разрабатывали для массового производства? Откуда дровишки? Самый главный вопрос поскорее выйти на рынок, а не размер памяти. Сегодня память стоит совсем недорого.
Olej
Цитата(Tarbal @ Jul 14 2018, 07:08) *
Сегодня память стоит совсем недорого.

Это точно.
Тем более, что чипов памяти меньше какого-то лимита просто не становится на рынке. И этот лимит, минимум постоянно увеличивается.

P.S. Не про RAM, но близкая аналогия: а вы попробуйте купить на рынке SD-карточку 4Gb ... не говоря уже про 2Gb. Я недавно пробовал wacko.gif . Не говоря уж о том, что 2Gb и 8Gb стоят примерно одинаковую цифру денег.


Tarbal
Цитата(Olej @ Jul 14 2018, 14:59) *
Это точно.
Тем более, что чипов памяти меньше какого-то лимита просто не становится на рынке. И этот лимит, минимум постоянно увеличивается.

P.S. Не про RAM, но близкая аналогия: а вы попробуйте купить на рынке SD-карточку 4Gb ... не говоря уже про 2Gb. Я недавно пробовал wacko.gif . Не говоря уж о том, что 2Gb и 8Gb стоят примерно одинаковую цифру денег.


Верно. А что касается эффективного использования памяти и других рессурсов, то я это тоже умею.

Про массовое производство:
В 1997 году я сделал иммобилайзер для автомобиля на 68HC05J1, который впоследствии продавался.
Програмно исполнены RFID, I2C ну и вся логика. У него пол килобайта програмной памяти всего.

На этой картинке справа внизу program transfer module.


он сделан на PIC16C71 с 23 байтами памяти.

Я, кстати, на этом же чипе сделал приемник модема FSK 1200/2200. Это при 1 мегагерце системном. Такое делают на DSP с 25-30 мегагерцами.

Но сегодня развитие технологии разработки идет по пути как сделать дешевле, где работа и задержка по времени тоже имеют цену.
Это я к тому, что я не от поиска легких путей выбираю такие решения. Делать устройство на минимуме ресурсов я тоже умею.
_3m
Цитата(Olej @ Jul 13 2018, 11:07) *
А то, как средствами BuildRoot собрать hard realtime систему Xenomai Cobalt?
Когда для патченья ядра под проект Adeos, патч ipipe, Xenomai в своих инструкциях используют не команду patch, а свой собственный скрипт патченья ... почти в 500 строк кода shell.
Как это объяснить BuildRoot?

Собрать пропатченное ядро отдельно и указать BuildRoot путь к нему.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.