我在跑安比安在全志H3-基于新加坡基督教学院(NanoPi M1):
正如你所见,它有一个复合视频信号经过对 bootloader的脚本(编译时包含和不包含.ini
类似FEX 格式和bin2fex 和 fex2bin),同时弄清楚了 3.5 毫米 TRRS 插孔上视频的引脚顺序,我让它与其中一台旧电视进行通讯。
但是,我很快就想到了那些旧电视的一个缺点:过扫描。
这甚至不是要使用的电视,所以我不能相信它有任何“自动调整”选项。我宁愿让帧缓冲区在黑色边框上浪费一些空间。我通过 SSH 访问它。
我查看了允许的启动选项script.bin
,它不提供过扫描,只提供设置分辨率的功能。我还查看了xrandr
和fbset
中的文件/sys/devices/platform/disp/graphics/fb*
,但我似乎无法弄清楚如何解决过扫描问题 - 我只设法将屏幕剪裁到一侧。也许我必须告诉桌面环境(Xfce)不使用完整的帧缓冲区?他们的文档显得稀少。我真的不知道自己在做什么。
在寻找其他单板计算机的解决方案时,我发现的解决方案是针对每个单板的(例如 Raspberry Pi 有一个针对其 Broadcom 启动脚本的解决方案)。通过寻找通用 Linux 解决方案,我发现大多数人都是从特定的显卡驱动程序来解决问题的。
描述起来很简单:我只是不想使用整个屏幕。但我不知道该看哪儿。
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 一切正常。也许可以更改为您的 SoC 的“TV ENCODER RE-SYNC PARAMETERS REGISTER(偏移量 0x130)”的正确地址。