частично разобрался с режимом "два экрана".
как я понял, драйвер поддерживает:
- single - работа одного выбранного канала
- dual - на два экрана гонится одно и тоже
- split - экраны логически объединяются
- separate - два независимых экрана
с первым режимом все нормально - работает
2 и 3 вешают ядро наглухо еще на этапе "starting kernel"
вот с separate более-менее удалось разобраться
в качестве экранов использованы:
1280x800-lvds
480x272-rgb
все упражнения делались (как и в случае с vga) с ядром с местного фтп..
правка свелась к добавлению видеорежимов, убирания программных заглушек и добавления дебаговых printk
ну и после загрузки со строкой
я получил нужную раскладку экранов, на которые можно выводить независимо информацию. два разных видеофайла легко!
вид на большой экран:
вид на маленький экран:
осталось разобраться - как включать fb1 на этапе загрузки.. сейчас делаю так:
чуть "не в тему" - уж поперло, так поперло - пристегнул usb вебкамеру, в ядре уже все было включено - ничего не трогал и давай выводить в разные фреймбуферы - хошь в отдельный экран (480х272), хошь в основной экран, хошь в оверлей прямо в Иксах! все фурычит и показывает..
из нерешенного:
- понять, как ловчее включить fb1 - из ядра или скрипта загрузки
- разборка с прозрачностью, пока непонятно как выключить..
на фотке вебкамера "смотрит" на плату и транслирует видео на /dev/fb2
еще посмотреть рефмане - в каких комбинациях могут работать интефейсы и можно ли тут второй не LVDS задать в этих режимах LDB (split, dual) и если можно то какой из них - TVE или параллельный.
fb2 - это оверлей для fb0 (активного интерфейса, который задается через d0(1)_primary в параметрах загрузки или потом переключается через echo)
для gstreamer прозрачность по-моему можно через переменные окружения задать или параметры плагина, но я не уверен - где-то в доках видел к BSP, еще вроде можно задать - какой из фреймбуферов будет на переднем а какой на заднем плане (fb0 или оверлей fb2)
возможно у фрискейловцев свое видение биэкранности, но в том же маздае(виндюках) размерность может быть любой в любой комбинации..
да и где я напасусь такое количество одинаковых матриц?!
где-то в недрах IPU я видел упоминания "если lvds не одинаковые, то мы это не умеем.."
ок, Саш, пасиб за инфу, буду неспеша разбираться..
ты наверно все же неправильно понял - здесь тоже может быть любая размерность в любой комбинации - режимы fb0 и fb1 независимы, НО ldb=... касается конкретно LVDS, single/dual/split/separate - это режимы работы для LVDS а не для fb0 и fb1(это два независимых канала IPU) и тут опять НО - если режим ldb separate то LVDS-ы окажутся один на fb0, второй на fb1. Я кстати не встречал вндюковых писюков с двумя LVDS ;) на ноутах - матрица экрана на LVDS и HDMI и/или VGA порт, тут тоже самое можешь легко организовать. В итоге: имеем два независимых канала IPU, кто из них будет первичным (fb0) задается в параметрах загрузки и это можно изменить "на лету" в процессе работы, они могут работать с различным разрешением и битностью, к ним можно подключить различные енкодеры в различных комбинациях - два LVDS, LVDS + TVE, || + TVE, || + LVDS. В режимах single, split, dual LVDS занимает один канал IPU. Вешаем внешний HDMI енкодер на || шину и подключаем моник по HDMI.
во! все грамотно расписал - я почти достиг просветления..
т.е., если я правильно понял, без двух lvds мне не получить логического объединения фреймбуферов.. одновременно fb0 и fb1 пожалуйста, но без сплит|дуал, да?
подскажи, плз, если видел - где почитать КАК задается режим вывода (parallel, lvds, vga/tv) - в файле платы формируется список видеорежимов, где прописаны некие флаги - не могу уловить зависимости..
да, при этом оба LVDS будут на одном fb. Вот цитата из рефмана.
я где-то в старых доках видел еще наглядную картинку - сейчас никак не могу найти ничего подобного в последнем BSP.
в последнем BSP - не знаю, но в предыдущих версиях я где-то натыкался на описание. Кстати - то что ядро встает колом при парсинге режимов LVDS - это я тоже ловил :) я как-то не особо увлекался с раборками всего этого. Возможно надо смотреть в доках к EVK, SABRE или ARD (они есть в комплекте документации BSP для QSB) а не для QSB и там есть подробное описание, все же их плата QSB это урезаный вариант.
ага, я как ее недавно увидел, так практически сразу расковырял видеоподсистему. хоть как-то стало понятно, что и куда смотрит :)
компонентный TVout проверять смысла нет - уверен, что будет работать. а мне в хозяйстве нафик не нужен..