Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Процессорные модули » SK-A40i-SODIMM
Настройка системы, вопросы
incredi
Добавлено 17.01.2023 20:34
0
Сообщение: 1
incredi
0

Пункты: 3192
Регистрация: 11.12.2014
Собрал сборку sk_qt5_defconfig

При запуске примера Affine Transformations имеем ошибки:
Цитата

# ./affine
QStandardPaths: wrong permissions on runtime directory /tmp, 0777 instead of 0700
qt.qpa.wayland: Wayland does not support QWindow::requestActivate()

Кроме того, при нажатии кнопки "Use OpenGL" картинка в окне отображения пропадает.
Подскажите насчёт этих ошибок, может, что не так настроено?
И ещё, где теперь искать и править настройки разрешения и битности для экрана LVDS?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 18.01.2023 09:35 Редактировалось 18.01.2023 10:01 Сообщение: 2
sasamy
4.71

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

При запуске примера Affine Transformations имеем ошибки:

# ./affine
QStandardPaths: wrong permissions on runtime directory /tmp, 0777 instead of 0700
qt.qpa.wayland: Wayland does not support QWindow::requestActivate()


это предупреждения а не ошибки, про неверные права доступа на директорию - элементпрно перед запуском affine

chmod 0700 /tmp

про то что wayland не поддерживает что-то - так его можно не использовать а сделать как на imx6 полноэкранный режим

killall weston
export QT_QPA_PLATFORM=eglfs

/usr/lib/qt/examples/widgets/painting/affine/affine

Цитата

Кроме того, при нажатии кнопки "Use OpenGL" картинка в окне отображения пропадает.


мы не занимались отладкой примеров Qt, не знаю насколько совместимы приложения для десктопа на виджетах c встраиваемым вариантом opengl es2, в примере

/usr/lib/qt/examples/charts/qmloscilloscope/qmloscilloscope

opengl включен и работает по умолчанию

Цитата

И ещё, где теперь искать и править настройки разрешения и битности для экрана LVDS?


в ядре. Например dts для варианта с одним экраном LVDS 800x480

buildroot-2022.08.2-sk-a40i/output/build/linux-custom/arch/arm/boot/dts/sun8i-a40i-sodimm-lvds-800-480-sk.dts

секция с настройками панели

panel0 {
compatible = "tbs,a711-panel", "panel-lvds";
/* backlight = <&backlight>; */
/* power-supply = <&reg_sw>; */

width-mm = <153>;
height-mm = <90>;
data-mapping = "vesa-24";

panel-timing {
/* 800x480 @60Hz */
clock-frequency = <33000000>;
hactive = <800>;
vactive = <480>;
hsync-len = <60>;
hfront-porch = <40>;
hback-porch = <220>;
vfront-porch = <7>;
vback-porch = <21>;
vsync-len = <10>;
};

port {
panel0_input: endpoint {
remote-endpoint = <&tcon_lcd0_out_panel0_in>;
};
};
};
Спуститься к концу Подняться к началу
Персональная информация
incredi
Добавлено 18.01.2023 16:06 Редактировалось 18.01.2023 16:12 Сообщение: 3
incredi
0

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

killall weston
export QT_QPA_PLATFORM=eglfs

Спасибо, проверено.

Имеем следующее при нажатии на кнопку "Use OpenGL":
Цитата

# /usr/lib/qt/examples/widgets/painting/affine/affine
Invalid mode "default" for output HDMI1
EGLFS: OpenGL windows cannot be mixed with others.
Aborted

А вот следующий пример работает исправно с такими сообщениями:
Цитата

# /usr/lib/qt/examples/charts/qmloscilloscope/qmloscilloscope
Invalid mode "default" for output HDMI1
Cannot find EGLConfig, returning null config

Вероятно, надо где-то дополнить настройки.

Цитата
buildroot-2022.08.2-sk-a40i/output/build/linux-custom/arch/arm/boot/dts/sun8i-a40i-sodimm-lvds-800-480-sk.dts

Спасибо.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 18.01.2023 16:34 Редактировалось 18.01.2023 16:51 Сообщение: 4
sasamy
4.71

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

Вероятно, надо где-то дополнить настройки.


пример с настройками HDMI прописан в /etc/eglfs.conf

дока тут

https://doc.qt.io/qt-5/embedded-linux.html#eglfs-with-the-eglfs-kms-backend

в корневую конфиг копируется скриптом после сборки отсюда

buildroot-2022.08.2-sk-a40i/board/starterkit/sk-a40i-sodimm/eglfs.conf

конфигурацию DRM можно посмотреть утилитой modetest, например

modetest -c
Спуститься к концу Подняться к началу
Персональная информация
incredi
Добавлено 19.01.2023 19:18 Редактировалось 19.01.2023 19:23 Сообщение: 5
incredi
0

Пункты: 3192
Регистрация: 11.12.2014
Цитата
/* backlight = <&backlight>; */

Подскажите, пожалуйста, а как настроить регулировку яркости подсветки по аналогии с imx6? Было так:
Цитата
backlight {
compatible = "pwm-backlight";
pwms = <&pwm4 0 5000000>;
brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <4>;
};

pwm4 {
pinctrl_pwm4_sodimm: pwm4-sodimm {
fsl,pins = <
MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x1b0b1
>;
};
};

&pwm4 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm4_sodimm>;
status = "okay";
};
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 19.01.2023 22:04 Редактировалось 19.01.2023 22:05 Сообщение: 6
sasamy
4.71

Пункты: 83777
Регистрация: 14.08.2009
Цитата
как настроить регулировку яркости подсветки по аналогии с imx6?


теоретически так


backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm 1 5000000 0>;
brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <7>;
};


panel0 {
compatible = "tbs,a711-panel", "panel-lvds";
backlight = <&backlight>;
/* power-supply = <&reg_sw>; */

но надо разбираться с PWM - у меня нормально работают только крайние точки

полная яркость (по умолчанию)
echo 7 > /sys/devices/platform/backlight/backlight/backlight/brightness

отключение посветки
echo 0 > /sys/devices/platform/backlight/backlight/backlight/brightness

промежуточные значения 1-6 вместо регулирования яркости вызывают полное искажение изображения горизонтальными мелькающими полосами. У меня правда плата MB от imx6 но в части PWM схема у них аналогичная - на подсветку заведен первый канал (pb3) pwm
Спуститься к концу Подняться к началу
Персональная информация
incredi
Добавлено 20.01.2023 15:33 Сообщение: 7
incredi
0

Пункты: 3192
Регистрация: 11.12.2014
Цитата
промежуточные значения 1-6 вместо регулирования яркости вызывают полное искажение изображения

У меня промежуточные значения работают нормально, без искажений, спасибо.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.01.2023 16:07 Редактировалось 31.01.2023 11:15 Сообщение: 8
sasamy
4.71

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

У меня промежуточные значения работают нормально, без искажений, спасибо.


спасибо что проверили на подходящей плате. Дополню про настройку PWM

pwms = <&pwm 1 5000000 0>;

здесь

&pwm - ссылка на описание контроллера pwm

1 - номер канала, в частности на a40i-sodimm у описанного контроллера 0 канал выходит на PB2, 1 канал на PB3

5000000 - это период в наносекундах

0 - указывает что шкала
brightness-levels = <0 4 8 16 32 64 128 255>;
описывает длительность импульса, т.е. 0 минимальное заполнение, 255 максимальное. Если тут указать 1 то станет наоборот - бОльшее значение будет соответствовать меньшему заполнению
Спуститься к концу Подняться к началу
Персональная информация
incredi
Добавлено 09.02.2023 16:10 Сообщение: 9
incredi
0

Пункты: 3192
Регистрация: 11.12.2014
Подскажите ещё про порты UART.
В imx6 они имели обозначения /dev/ttymxc1 /dev/ttymxc2...
Как их настроить здесь, какие у них обозначения?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 09.02.2023 17:00 Сообщение: 10
sasamy
4.71

Пункты: 83777
Регистрация: 14.08.2009
Цитата
Подскажите ещё про порты UART.
В imx6 они имели обозначения /dev/ttymxc1 /dev/ttymxc2...
Как их настроить здесь, какие у них обозначения?


здесь порты UART /dev/ttyS0 ... /dev/ttyS7

какие из них выведены прописано в DT

&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pb_pins>;
status = "okay";
};

&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&uart3_pg_pins>;
status = "okay";
};

&uart4 {
pinctrl-names = "default";
pinctrl-0 = <&uart4_ph_pins>;
status = "okay";
};

&uart5 {
pinctrl-names = "default";
pinctrl-0 = <&uart5_pi_pins>;
status = "okay";
};

&uart7 {
pinctrl-names = "default";
pinctrl-0 = <&uart7_pi_pins>;
rts-gpios = <PIN_PB 18 GPIO_ACTIVE_HIGH>;
linux,rs485-enabled-at-boot-time;
status = "okay";
};

uart7 в качестве демонмтрации описан в режиме rs485, PB18 используется для управления передача/прием трансмиттера
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-A40i-SODIMM