Здравствуйте Уважаемые !!!
Хочу задать вопрос.
После загрузки системы мне необходимо
переключить драйвер терминала (/dev/tty) в
графический режим (vesa) для дальнейшей работы.
Для этого я должен предварительно узнать
какие режимы поддерживаются вообще.
Как это сделать или где почитать.
С уважением.
плата SK-iMX233.
Мы переносим программное обеспечение,
разработанное под FreeBSD.
Предназначено для обработки данных бортовых регистраторов,
установленных на воздушных судах.
Все, что касается работы в тескстовых режимах
уже перенесено и хорошо работает.
Перенос подсистем, работающих в графических
режимах ("плоские" графики, 3D-визуализация и др.)
уперся в управление переключением, установку
требуемых видеорежимов, управление палитрами и т.д.
Если вы переносите с PC совместимого компьютера на imx233 с Linux, то тут свои особенности - разрешение и видеорежим вы не поменяете просто так потому что все зависит от возможности используемой с платой панели. Здесь же нет VGA совместимого видеоконтроллера - вывод графики - через фреймбуфер, в юзерспейс для этого создается файл /dev/fb, в xorg есть драйвер для него если у вас иксовые приложения, графическая коноль эмулируется через модуль ядра fbcon
Это я понимаю. Но то, что контроллер другой не меняет сути дела.
В состав linux входит несколько множество драйверов для
различных адаптеров и все они подчиняются законам VGA или VESA.
Я пробовал загружать их. Входная точка /dev/fb0 создается и
возможно один из них будет работать, но проблема в другом.
Все UNIX-системы одинаковы. Я много лет работаю с ними и
много занимаюсь переносом. Нигде, кроме LINUX нет проблем.
Все основные системные вызовы стандартизированы.
В целом LINUX не исключение. Но в данном случае
проблема в том, что последние годы я с ним не работал т.к.
он мне не нравится (по вышеизложенным причинам: плохая документация или ее отсутствие, отвратительный стиль написания, отсутствие сопровождения и т.д.). Подскажите, если
можно - с помощью какой утилиты можно получить список
поддерживаемых видеорежимов ?
это формальный ответ на ваш вопрос.
но, как упомянул Саша, у мелких своя специфика.. и когда идет борьба за размер финального кода особенно в мелкосерийных девайсах можно (да и нужно) отступать от стандарта (примеров достаточно)
мне лень искать назначение файла modes
может он хранит текущий режим, а может это список..
Как уже было сказано, на подобных системах нет адаптеров "подчиняющихся законам VGA или VESA" (драйвер в системе любой можно включить, но с кем он будет работать, если нет железа).
Есть некий аппаратный модуль, которому явно прописывается режим развертки видеопамяти, разрешение и облась видеопамяти (упрощенно), все это и называется драйвером fb.
Из этого следует, что так просто режим не переключить.
Посмотрим по другому, допустим, озадачившись, Вы переписали драйвер fb, так что он (например через IOCTL) может на лету менять параметры модуля развертки, вот только подключена вполне конкретная TFT панель которой требуются однозначные параметры развертки, т.е. на панель 480x272 нельзя подавать развертку 640х480 или 230х240, т.е. в таком переключении нет смысла.
Юра - не у всех дебианы на hdd установлены :) чтобы посмотреть текущий режим или установить другой есть
#fbset
на imx233 подобное я делал - не забывайте про PXP, при помощи него можно входной буфер налету масштабировать/менять параметры/цветое пространство и подгонять под конкретную панель, но это не кросскплатформенно и делал я это с другой целью - для ускорения видео вывода. Вот я человека и спрашиваю - что ему нужно конкретно, вдруг он вообще не это имеет ввиду, так он написал бы команды котоые использовал - сразу все встало бы на место...
Прошу прощения за паузу. Надо было доехпть до дома.
Во FreeBSD есть простая утилита:
vidcontrol -i mode
которая все рассказывает об имеющихся видеорежимах, памяти,
палитрах и т.д.
Есть ли что-нибудь аналогичное в LINUX.
На счет использования.
Я задаюсь каким-либо режимом (обычно VESA 1024х768х8),
переключаюсь в него, задаю свой комплект палитр, делю
экран за зоны и работаю.
Все очень просто. При этом корректно поддерживается
переключение мультискринов и Х-ов.
Для 3D-визуализации используем библиотеки xforms и QT.
Надеюсь, что и под LINUX смогу.