Может кто подскажет как при старте ядра сделать плавное включение экрана.
У меня подсветка подключена к PWM, т.е. из userspace я могу яркостью управлять через запись в /sys/class/backlight/backlight.21/brightness
Как вариант, но тогда будет большая пауза перед его включением....тогда надо как-то пользователю дать знать, что процесс загрузки идет...
Слышал, что можно настроить моргающий светодиод во время старта ядра, не в курсе что и где покрутить для этого дела?
триггер heartbeat двойное мигание
или
триггер timer мигание с заданными параметрами
мигать начнет после загрузки и запуска ядра и инита драйвера leds
update про плавную подсветку - штатный вариант в ядре мне неизвестен, за исключением хитрых утилит в старых ядрах типа splash..
у вас есть пара вариантов:
- дописать код в ядре в виде драйвера, например, в момент инита борды - запускаете таймер и по отсчетам крутите подсветку
- примитивный скрипт в рутовой - конечный цикл со sleep и echo в подсветку
да ну, чего там бояться? основная задача - не угробить ядро и получить результат..
в подходящем разделе драйверов, например staging пишете сишник в виде драйвера
внутри функция init/probe, которая регистрит ресурсы драйвера, функцию обработки таймера и регистрит/взводит таймер..
в ветке обработки таймера крутите яркость в нужном темпе с нужным степом. на последнем шаге разрегистрируете таймер, освобождаете ресурсы и собственно всё..
там писанины строк на 30-50..
дак это я посоветовал - как порулить плавно подсветкой..
если же рассмотривать исходную картину в целом, то непонятно назначение плавности при отсутствие изображения.. светить молочным или хаотичным растром, зачем?
ТС может пойти классическим путем - активизировать/допилить logo из юбута и добавить кастомное лого в ядро - это практически классика всех ембеддед девайсов..
если хочется выпендриться (в хорошем смысле), то на канал подсветки через ключ вешается подходящая однокристалка, типа восьминогой Тини/PIC/AVR/NXP, единственной функцией которой будет генерация нужного ШИМа с нужной градацией..
тогда все условия будут соблюдены - юбут отрисовывает лого , запускает однокристалку и стартует ядро.. однокристалка независимо от ядра развлекает переливами пользователя.. потом ядро рисует свое лого и втихомолку грузится.. профит..
...но тогда будет большая пауза перед его включением....
Пауза то никуда не денется.
дак это я посоветовал - как порулить плавно подсветкой..
если же рассмотривать исходную картину в целом, то непонятно назначение плавности при отсутствие изображения.. светить молочным или хаотичным растром, зачем?
ТС может пойти классическим путем - активизировать/допилить logo из юбута и добавить кастомное лого в ядро - это практически классика всех ембеддед девайсов..
если хочется выпендриться (в хорошем смысле), то на канал подсветки через ключ вешается подходящая однокристалка, типа восьминогой Тини/PIC/AVR/NXP, единственной функцией которой будет генерация нужного ШИМа с нужной градацией..
тогда все условия будут соблюдены - юбут отрисовывает лого , запускает однокристалку и стартует ядро.. однокристалка независимо от ядра развлекает переливами пользователя.. потом ядро рисует свое лого и втихомолку грузится.. профит..
У меня кастомное лого уже к ядру прикручено, вот его и хотел плавно поджигать.
А крутить юбут и тем более менять схему уже невозможно, т.к. девайсы уже на рынке. Да не и настолько это хочется, чтобы так заморачиваться.
Спасибо
Подскажите, пожалуйста, у меня плата 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
пробую число изменяется яркость подсветки остается прежней!