Оверскан под Armbian на одноплатном компьютере (на базе H3)

Я использую Armbian на SBC на базе Allwinner H3 ( NanoPi M1):

Как вы можете видеть, у него есть CVBS, и достаточно справедливый, после некоторой работы с скриптом начальной загрузки загрузчика (который компилируется в и из .ini Подобно формату FEX с bin2fex и fex2bin), а также выяснению порядка расположения выводов для видео на 3,5-мм гнезде TRRS, я поговорил с одним из этих старых телевизоров.

Но мне вскоре напомнили об одном из недостатков этих старых телевизоров: сверхсканирование.

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

Я посмотрел на какие варианты загрузки script.bin позволяет, и он не предлагает overscan, просто установив разрешение. Я также посмотрел на xrandr, fbset и файлы в /sys/devices/platform/disp/graphics/fb*, но я не могу понять, как можно решить проблему избыточного сканирования - мне удается только обрезать экран в одну сторону. Может быть, я должен сказать окружению рабочего стола ( Xfce) не использовать полный кадровый буфер? Их документы кажутся скудными. Я действительно не знаю, что я делаю.

Когда я смотрю на решения для других одноплатных компьютеров, решения, которые я нахожу, специфичны для каждой платы (например, у Raspberry Pi есть решение, специфичное для его загрузочного скрипта Broadcom). Ища решения общего назначения для Linux, я нахожу, что большинство людей решают его с помощью конкретных драйверов видеокарт.

Это просто описать: я просто не хочу, чтобы весь экран использовался. Но я понятия не имею, где искать.


Вставить с dmesg,

fbset выглядит так:

mode "720x480"
    geometry 720 480 720 480 16
    timings 0 0 0 0 0 0 0
    rgba 5/11,6/5,5/0,0/24
endmode

Я пытался настроить время (например, fbset -left N), но даже если он сообщит об изменении (позвонив по fbset еще раз), ничего не изменилось - меняется, например, -xres с другой стороны, вызвал видимые результаты (отсечение экрана).

Модуль дисплея tv, modinfo tv дает мне:

filename:       /lib/modules/3.4.112-sun8i/kernel/drivers/video/sunxi/disp2/tv/tv.ko
alias:          platform:tv
license:        GPL
description:    tv driver
author:         zengqi
depends:
intree:         Y
vermagic:       3.4.112-sun8i SMP preempt mod_unload modversions ARMv7 p2v8

1 ответ

Пожалуйста, попробуйте эти команды:

devmem2 0x01E00130 w 0xF0050398
devmem2 0x01E00130 w 0x30050398
fbset -xres 670 -vxres 670

xresolution уменьшен до 670, но для моего Orange Pi Zero все в порядке. Возможно, измените правильный адрес "РЕГИСТРАЦИЯ ПАРАМЕТРОВ ПЕРЕДАЧИ СИНХРОНИЗАЦИИ ТЕЛЕВИЗОРА (Смещение 0x130)" для вашего SoC.

Другие вопросы по тегам