Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
buildroot-2014.08 на базе ядра 3.10.17 для i.mx6
sasamy
Добавлено 07.11.2014 17:54 Редактировалось 07.11.2014 20:26 Сообщение: 41
sasamy
4.70

Пункты: 77249
Регистрация: 14.08.2009
Цитата

В новом ядре потрты ввода-вывода можно сконфигурировать в соответсвующем *.dtsi файле. Но друго типа дефайнов теперь там нет.
Достатоно ли для переназначения ног менять определение вида "MX6Q_PAD_KEY_COL3__GPIO_4_12", либо ещё нужно что-то куда-то добавлять(пусть для случая с ногой детектирования SD карты)?


Напишите какая у вас плата и что хотите поменять - я объясню на примере, иначе пол-форума можно исписать, главное суть уловить, а она та же самая - переключить нужный пин на нужную ф-цию - gpio в данном случае, передать номер gpio драйверу.

Цитата

2. Впорос по поводу дисплеев.
Дисплей, который будет указан как главный работает корректно, на втором же изображение получить не удалось.

Настройка в U-boot: video=video=mxcfb0:dev=ldb,LDB-WSVGA,if=RGB24 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 dmfc=3 consoleblank=0


Попробуйте убрать dmfc=3, могу ошибаться но с этим параметром fifo по-моему только один дисплей будет работать.

Цитата

3. Вопрос по повоу Qt.
В новой версии buidroot(САБЖ) с библиотеками Qt версии 5.

Нужен ли для запуска флаг -qws(и без него работает)?


в Qt5 поностью ушли от QWS (Qt Window System)

Цитата

Каким образом теперь указывать диплей (так?: -platform linuxfb -display=linuxfb:/dev/fb2)?


Думаю сейчас уже нет смысла использовать linuxfb - на i.mx6 прекрасно работает eglfs - он прописан по умолчанию через переменную окружения

export QT_QPA_PLATFORM=eglfs

в /etc/profile, приложениям не надо указывать драйвер платформы если вас eglfs устоаивает. Есть для него ограничение правда - он только на одном дисплее будет работать.

Цитата

4. Вопрос по поводу opengl в Qt5.
В Qt4 для запуска opengl приложения нужно было указать флаг -eglfs.


и сейчас можно явно указать
-platform eglfs

можно в переменной окружения передавать, можно явно указать в конфиге Qt в буилдруте платформу по умолчанию

(eglfs) Default graphical platform

wayland пока плоховато работает, иксы и directfb я пока вообще не трогал - по-поздней займусь, инаверно как минимум иксы нужны будут. Меня больше интересуют мультимедийные возможности процессора а не таскание окошек по экранам :)

http://youtu.be/J3bF3ovRs_4

плохое качество - извиняйте - снимать и мышью крутить одновремнно не получилось :) под конец еще батарейка сдохла, но возможности процессора и Qt5 думаю хватит оценить
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 07.11.2014 22:36 Сообщение: 42
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Цитата
Цитата
Собрал свой минимальный образ:

make imx6sk_min_defconfig


в минимальном образе я забыл поставить галку для утилит mtd - добавьте через menuconfig

-> Target packages
-> Filesystem and flash utilities
[*] mtd, jffs2 and ubi/ubifs tools

то что по умолчанию там выделится - достаточно для работы с nand, потом просто make после этого и пакет добавится в новом образе, образ формируется заново после каждого make. Но все равно не понятно - хотя бы u-boot должен был загрузиться - перемычки не забываете переключать ? Конфиг потом добавлю как накопится побольше замечаний.


C перемычками тут трудно промахнуться, тут она всего одна :-)
Спуститься к концу Подняться к началу
Персональная информация
DeD
Добавлено 08.11.2014 14:04 Сообщение: 43
DeD
0

Пункты: 393
Регистрация: 27.02.2012
Цитата

Напишите какая у вас плата и что хотите поменять - я объясню на примере, иначе пол-форума можно исписать, главное суть уловить, а она та же самая - переключить нужный пин на нужную ф-цию - gpio в данном случае, передать номер gpio драйверу.


Плата SK-iMX6D-SODIMM, поменять хочу пин детектирования карты SD1, пин сброса mPCIE, добавить пин сброса usb hub, добавить карту памяти SD2, поменять звуковой кодек на sgtl5000(как на sabrelite), убрать из инициализации АЦП ADV7180 чтение и запись регистров по i2c(то есть работать с ним как с уже настоенным), добавить шину памяти pseudo sram.
Вот для примера заменить пин детектирования карты SD1 с GPIO_1_10(MX6Q_PAD_SD2_CLK__GPIO_1_10) на GPIO_4_12(MX6Q_PAD_KEY_COL3__GPIO_4_12).


Цитата

Попробуйте убрать dmfc=3, могу ошибаться но с этим параметром fifo по-моему только один дисплей будет работать.


После удаления параметра ничего не изменилось. Уже не помню точно с какими именно настройками сборки, но устройств иногда 2(/dev/fb0, /dev/fb1), а иногда 3(/dev/fb0, /dev/fb1, /dev/fb2).

Цитата

3. Вопрос по повоу Qt.
В новой версии buidroot(САБЖ) с библиотеками Qt версии 5.

Нужен ли для запуска флаг -qws(и без него работает)?


Цитата

Думаю сейчас уже нет смысла использовать linuxfb - на i.mx6 прекрасно работает eglfs - он прописан по умолчанию через переменную окружения

export QT_QPA_PLATFORM=eglfs

в /etc/profile, приложениям не надо указывать драйвер платформы если вас eglfs устоаивает. Есть для него ограничение правда - он только на одном дисплее будет работать.


Цитата

и сейчас можно явно указать
-platform eglfs

можно в переменной окружения передавать, можно явно указать в конфиге Qt в буилдруте платформу по умолчанию

(eglfs) Default graphical platform


Мне нужно понять как запустить приложение на втором дисплее. Допустим главный это HDMI(там мигает консоль), а приложение нужно вывести на LVDS. Приложение одно, полноэкранное, ни клавиатура, ни мышь(== тач) не используются.
Можно было бы даже оставить только один экран LVDS, но как убрать с него консоль(а она мигает даже сквозь активное приложение)?




Цитата

wayland пока плоховато работает, иксы и directfb я пока вообще не трогал - по-поздней займусь, инаверно как минимум иксы нужны будут. Меня больше интересуют мультимедийные возможности процессора а не таскание окошек по экранам :)


Хотелось бы найти оптимальный метод реализации такой задачи:
На экране отображать и активно(часто) перемещать несколько картинок(небольших, не большк 12 шт). Поверх этих картинок накладывать несколько небольших иконок, тестовых надписей и отрисовывать несколько линий.
Сейчас это решается средствами Qt4: картинки накладываются на QLabel, перемещения соответсвующими функциями этого класса, иконки и текст - так же, линии рисуются посредством QPainter на прозрачном слое над окном с картинками.
Всё, конечно, работает, но обрабатыавется ядром. Перемещение картинок сильно грузит процессор, и не такое уж плавное, если присмотреться. Наверное, как-то это можно реализовать посредсвом opengles2, чтобы нагрузка ложилась на gpu.
Вообще шик, если поверх всего этого можно было бы включать отображение с видео АЦП и проигрывать видеофайлы.

Цитата

http://youtu.be/J3bF3ovRs_4

плохое качество - извиняйте - снимать и мышью крутить одновремнно не получилось :) под конец еще батарейка сдохла, но возможности процессора и Qt5 думаю хватит оценить

[/quote]

Круто. Меню на QML? А как с камер и изображение выводится? И вот это 3D анимация в конце, это же не видео?
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 10.11.2014 09:13 Сообщение: 44
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Цитата
Цитата
Цитата
Собрал свой минимальный образ:

make imx6sk_min_defconfig


в минимальном образе я забыл поставить галку для утилит mtd - добавьте через menuconfig

-> Target packages
-> Filesystem and flash utilities
[*] mtd, jffs2 and ubi/ubifs tools

то что по умолчанию там выделится - достаточно для работы с nand, потом просто make после этого и пакет добавится в новом образе, образ формируется заново после каждого make. Но все равно не понятно - хотя бы u-boot должен был загрузиться - перемычки не забываете переключать ? Конфиг потом добавлю как накопится побольше замечаний.


C перемычками тут трудно промахнуться, тут она всего одна :-)


В конфиге imx6sk_qt5gst_defconfig этот пункт выбран, но всё равно не получается запустить плату с NAND.
У кого-нибудь получилось это сделать на OEM?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 10.11.2014 10:51 Сообщение: 45
sasamy
4.70

Пункты: 77249
Регистрация: 14.08.2009
Цитата

Можно было бы даже оставить только один экран LVDS, но как убрать с него консоль(а она мигает даже сквозь активное приложение)?


echo "0" > /sys/class/graphics/fbcon/cursor_blink
Спуститься к концу Подняться к началу
Персональная информация
DeD
Добавлено 11.11.2014 19:19 Сообщение: 46
DeD
0

Пункты: 393
Регистрация: 27.02.2012
По моей предыдущей записи:

- Устройства /dev/fbX стали отображаться корректно(то есть все 4), когда я убрал из конфигурации настойки LCD интерфейса.
- Консоль на главном экране можно убрать как в настройке ядра, так и убрав соотвествующуюнастройку в inittab.

и всё остальное тоже уже решено, но осталась некоторое непонимаение как оно заработало. Это касается настройки пинов. Всё же хотелось бы увидеть краткое описание действий с пояснениями на примере, допустим, пина сброса mPCIE интерфейса.


Но самый главный вопрос по интерфейсу UART.

Плата SK-iMX6D-SODIMM. Ядро и его настройки из билдрута данной темы.

Через интерфейс UART2 принимаются данные, пакетами по 20-40 байт, 3-5 пакетов в секудну(то есть траффик очень маленький).
В старой версии ядра приём данных осуществлялся корректно на скоростях вплоть до 4000000 bps.
В новой же версии ядра на скоростях больше 115200 периодически возникает следующая ошибка: "imx-uart 21e8000.serial: Rx FIFO overrun".
Ошибка возникает в произвольный момент времени и через произвольное число принятых байт(раз в несколько секунд). При этом наблюается поврежение принимаемых данных(каждый пакет содержит контрольную сумму).
Если данные принимать не через UART2 а через USB переходник(FT232), то передача данных происходит корректно вплоть до 2000000 bps(больше пере не поддерживает).
Так как во всех случаях использовался один и тот же передатчик и одно и то же приложение приёмник, то выходит, что проблема в драйвере или его настройке.
Я смотрел исходники драйвера и выяснил, что ошибка выводится при проверке соответсвующего флага. В старой версии драйвера этой проверки не было, но если и в новой версии убрать проверку, то данные всё равно продолжают портиться.
Очень хочется устранить проблему, помогите пожалуйста.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 11.11.2014 19:56 Редактировалось 11.11.2014 20:26 Сообщение: 47
sasamy
4.70

Пункты: 77249
Регистрация: 14.08.2009
Цитата

Очень хочется устранить проблему, помогите пожалуйста.


Предлагаю создать отдельную тему в ветке которая предназначена для вашего модуля - каждый вопрос с новой темой, здесь про buildroot. Вы уже написали два десятка вопросов в одной куче - как в такой каше будут разбираться другие люди с аналогичными вопросами ? И сразу предугадывая - если вы изменили DTS - выложите его куда нибуть (прикрепленные файлы на этом форуме куда-то пропадают) - например на pastebin.com
Про DTS я уже вынес в отдельную тему - продолжите там
http://starterkit.ru/html/index.php?name=forum&op=view&id=24064&last#0

уверен что кроме вас там будет еще куча вопросов по этой теме
Спуститься к концу Подняться к началу
Персональная информация
Spirit
Добавлено 14.11.2014 13:32 Редактировалось 14.11.2014 13:34 Сообщение: 48
Spirit
0

Пункты: 3257
Регистрация: 06.05.2010
Пол: Мужчина
Из: Энгельс-Саратов
Код

# export DISPLAY=:0.0
# ./project1

(process:309): Gdk-WARNING **: locale not supported by C library

(process:309): Gtk-WARNING **: Locale not supported by C library.
Using the fallback 'C' locale.

(project1:309): Gtk-WARNING **: cannot open display: :0.0


Вы разобрались с этой проблемой? Столкнулся с тем же.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 14.11.2014 13:41 Редактировалось 14.11.2014 13:42 Сообщение: 49
sasamy
4.70

Пункты: 77249
Регистрация: 14.08.2009
Цитата

# export DISPLAY=:0.0
# ./project1
....
(project1:309): Gtk-WARNING **: cannot open display: :0.0


X-сервер запущен перед стартом GTK-приложения ? учитывайте еще что пока поддержки GPU в buildroot для иксов нет.
Спуститься к концу Подняться к началу
Персональная информация
Spirit
Добавлено 14.11.2014 14:11 Редактировалось 14.11.2014 14:20 Сообщение: 50
Spirit
0

Пункты: 3257
Регистрация: 06.05.2010
Пол: Мужчина
Из: Энгельс-Саратов
Цитата

# export DISPLAY=:0.0
# ./project1
....
(project1:309): Gtk-WARNING **: cannot open display: :0.0


X-сервер запущен перед стартом GTK-приложения ? учитывайте еще что пока поддержки GPU в buildroot для иксов нет.


В том то и дело, что сервер не запущен. и как его запустить практически я никак не пойму. Выполнение

$Xfbdev

или

$X

или

$Xvfb

Приводят к одному результату - черному экрану.

expot DISPLAY.. я так понимаю еще рано делать.
Печально что нет поддержки GPU( Меня интересует возможность воспроизведения онлайн видео, думаю HolaDuo должна с этим справится... хотя GPU не помешало бы
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux