Оверскан под 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.