I'm running Armbian on an Allwinner H3-based SBC (NanoPi M1):
As you can see, it has a CVBS out, and fair enough, after a bit of tinkering with the bootloader's script.bin (which compiles in and out of an .ini
-like FEX format with bin2fex and fex2bin), and also figuring out the pin order for video on a 3.5mm TRRS jack, I got it talking to one of those old TVs.
But, I was soon reminded of one of the shortcomings of those old TVs: overscan.
This is not even the TV this will be used on, so I can't trust on it having any "auto-fit" option. I'd rather have the framebuffer waste some space on black borders. I'm accessing it via SSH.
I've looked at what boot options the script.bin
allows, and it does not offer overscan, just setting the resolution. I've also looked at xrandr
, fbset
and the files in /sys/devices/platform/disp/graphics/fb*
, but I can't seem to figure out how overscan can be solved - I only manage to clip the screen to one side. Maybe I have to tell the desktop environment (Xfce) not to use the full framebuffer? Their docs seem scarce. I don't know what I'm doing, really.
When looking at solutions for other single-board computers, the solutions I find are specific to each board (Like the Raspberry Pi having a solution specific to its Broadcom boot script). By looking for general-purpose Linux solutions, I find most people solving it from the specific graphics card drivers.
It's simple to describe: I just don't want the whole screen to be used. But I have no idea where to look.
fbset
looks like this:
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
I've tried adjusting the timings (e.g., fbset -left N
), but even if it did report the change (by calling fbset
again), nothing changed - changing e.g., -xres
, on the other hand, caused visible results (screen clipping).
The display module is tv
. modinfo tv
gives me:
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
dmesg
?) you can try to fiddle with the display timings (fbset
) for a TV-compatible modeline with larger borders and less resolution. But there may be hardware restrictions on what modelines work. Any links to hardware documentation of the TV output part?X
could clip the screen or something).drv_tv.c
,tv_ac200.c
andde_tve.c
seem to use hardcoded timings (from a quick look). So, not unexpectedly, to change the TV modeline you very likely must change the source code (and try to find some hardware docs before you do that). I'm afraid I can't think of an easier way.