Ник:
Пароль:

Контакты

Cтатус Skype: starterkit.ru
тел.: (+7 3412) 478-448
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
E-mail: info@starterkit.ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
Плавное включение экрана
simark1979
Добавлено 30.04.2017 12:53 Редактировалось 01.05.2017 12:53
0
Сообщение: 1
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Может кто подскажет как при старте ядра сделать плавное включение экрана.
У меня подсветка подключена к PWM, т.е. из userspace я могу яркостью управлять через запись в /sys/class/backlight/backlight.21/brightness

в DTS у меня это дело сконфигурировано так:
backlight {
compatible = "pwm-backlight";
pwms = <&pwm1 0 50000 0 0>;
brightness-levels = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100>;
default-brightness-level = <100>;
};


Хочется чтобы было красиво и при старте тоже
То, что надо ковырять ядро итак понятно.
Нужна конкретика....
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 01.05.2017 09:25 Сообщение: 2
Pavel Ivanchenko
Admin
4.45

Пункты: 86480
Регистрация: 24.03.2009
Пол: Мужчина
Выключаете подсветку в u-boot, а после загрузки системы плавно включаете ее через юзерспейс.
Спуститься к концу Подняться к началу
Персональная информация
simark1979
Добавлено 01.05.2017 11:19 Редактировалось 01.05.2017 11:21 Сообщение: 3
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Цитата
Выключаете подсветку в u-boot, а после загрузки системы плавно включаете ее через юзерспейс.


Как вариант, но тогда будет большая пауза перед его включением....тогда надо как-то пользователю дать знать, что процесс загрузки идет...
Слышал, что можно настроить моргающий светодиод во время старта ядра, не в курсе что и где покрутить для этого дела?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 01.05.2017 20:46 Редактировалось 01.05.2017 22:51 Сообщение: 4
Jury093
4.58

Пункты: 54126
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Слышал, что можно настроить моргающий светодиод во время старта ядра, не в курсе что и где покрутить для этого дела?

раздел leds
подраздел leds-gpio

триггер heartbeat двойное мигание
или
триггер timer мигание с заданными параметрами

мигать начнет после загрузки и запуска ядра и инита драйвера leds

update про плавную подсветку - штатный вариант в ядре мне неизвестен, за исключением хитрых утилит в старых ядрах типа splash..
у вас есть пара вариантов:
- дописать код в ядре в виде драйвера, например, в момент инита борды - запускаете таймер и по отсчетам крутите подсветку
- примитивный скрипт в рутовой - конечный цикл со sleep и echo в подсветку

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
simark1979
Добавлено 03.05.2017 17:30 Сообщение: 5
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Цитата
дописать код в ядре в виде драйвера, например, в момент инита борды - запускаете таймер и по отсчетам крутите подсветку


Это и хочу, но вот боюсь не осилю, никогда не писал драйверы...
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 04.05.2017 00:11 Сообщение: 6
Jury093
4.58

Пункты: 54126
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Это и хочу, но вот боюсь не осилю, никогда не писал драйверы...

да ну, чего там бояться? основная задача - не угробить ядро и получить результат..
в подходящем разделе драйверов, например staging пишете сишник в виде драйвера
внутри функция init/probe, которая регистрит ресурсы драйвера, функцию обработки таймера и регистрит/взводит таймер..
в ветке обработки таймера крутите яркость в нужном темпе с нужным степом. на последнем шаге разрегистрируете таймер, освобождаете ресурсы и собственно всё..
там писанины строк на 30-50..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 04.05.2017 07:32 Сообщение: 7
Pavel Ivanchenko
Admin
4.45

Пункты: 86480
Регистрация: 24.03.2009
Пол: Мужчина
Вот только чего он добъется ;) ...
Цитата
...но тогда будет большая пауза перед его включением....
Пауза то никуда не денется.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 04.05.2017 14:43 Редактировалось 04.05.2017 14:44 Сообщение: 8
Jury093
4.58

Пункты: 54126
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Вот только чего он добъется ;) ...
Цитата
...но тогда будет большая пауза перед его включением....
Пауза то никуда не денется.

дак это я посоветовал - как порулить плавно подсветкой..
если же рассмотривать исходную картину в целом, то непонятно назначение плавности при отсутствие изображения.. светить молочным или хаотичным растром, зачем?

ТС может пойти классическим путем - активизировать/допилить logo из юбута и добавить кастомное лого в ядро - это практически классика всех ембеддед девайсов..
если хочется выпендриться (в хорошем смысле), то на канал подсветки через ключ вешается подходящая однокристалка, типа восьминогой Тини/PIC/AVR/NXP, единственной функцией которой будет генерация нужного ШИМа с нужной градацией..
тогда все условия будут соблюдены - юбут отрисовывает лого , запускает однокристалку и стартует ядро.. однокристалка независимо от ядра развлекает переливами пользователя.. потом ядро рисует свое лого и втихомолку грузится.. профит..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
simark1979
Добавлено 18.05.2017 18:08 Сообщение: 9
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Цитата
Цитата
Вот только чего он добъется ;) ...
Цитата
...но тогда будет большая пауза перед его включением....
Пауза то никуда не денется.

дак это я посоветовал - как порулить плавно подсветкой..
если же рассмотривать исходную картину в целом, то непонятно назначение плавности при отсутствие изображения.. светить молочным или хаотичным растром, зачем?

ТС может пойти классическим путем - активизировать/допилить logo из юбута и добавить кастомное лого в ядро - это практически классика всех ембеддед девайсов..
если хочется выпендриться (в хорошем смысле), то на канал подсветки через ключ вешается подходящая однокристалка, типа восьминогой Тини/PIC/AVR/NXP, единственной функцией которой будет генерация нужного ШИМа с нужной градацией..
тогда все условия будут соблюдены - юбут отрисовывает лого , запускает однокристалку и стартует ядро.. однокристалка независимо от ядра развлекает переливами пользователя.. потом ядро рисует свое лого и втихомолку грузится.. профит..



У меня кастомное лого уже к ядру прикручено, вот его и хотел плавно поджигать.
А крутить юбут и тем более менять схему уже невозможно, т.к. девайсы уже на рынке. Да не и настолько это хочется, чтобы так заморачиваться.
Спасибо
Спуститься к концу Подняться к началу
Персональная информация
Yura_K
Добавлено 08.09.2017 08:59 Сообщение: 10
Yura_K
5

Пункты: 284
Регистрация: 08.09.2017
Пол: Мужчина
Подскажите, пожалуйста, у меня плата SK-LCD800x480-MB v1.A на ней модуль SK-iMX6S-SODIMM хочется управлять подсветкой.

В файле buildroot-2016.11-sk/output/build/linux-custom/arch/arm/boot/dts/imx6qdl-sodimm.dtsi имеется следующее:
backlight {
compatible = "pwm-backlight";
pwms = <&pwm1 0 5000000>;
brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <7>;
};
насколько я правильно понял здесь заданы 8 уровней яркости и чтобы её изменять я должен писать соотв. число в файл:
/sys/class/backlight/backlight/brightness
пробую число изменяется яркость подсветки остается прежней!
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux