2

I'm running Armbian on an Allwinner H3-based SBC (NanoPi M1):

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.

tv photo

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.


Paste with dmesg.

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

1 Answers1

1

Please try these commands:

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

xresolution is reduced to 670, but everything is OK for my Orange Pi Zero. Maybe change to correct address of "TV ENCODER RE-SYNC PARAMETERS REGISTER (Offset 0x130)" for your SoC.

karel
  • 13,706