I’m running Raspbian Buster by use of the portability script on Le Potato (AML-S905X-CC). Some settings in the /boot/config.txt control scan geometry. Specifically, the monitor overscans and has no means of turning that off. Where are the image geometry controls located in Raspbian Le Potato?
Try the standard Linux way with xrandr because Raspbian runs on X11:
Raspbian instructions involving config.txt will not work anywhere other than a Raspberry Pi.
Thanks for the link, but it’s not helpful. I visited it before asking the question and have been searching without success. As I said, my displays do not have a means of turning off overscan. The bulk of that link talks about how to turn off overscan on your monitor. Might work on yours, but not on mine. Actually, I have little control over what actual display monitor will be plugged in.
The closes I’ve come is with xrandr, but have found no combination of settings that fix the problem. Using the online modeline calculator (https://arachnoid.com/modelines/index.html) I got the compensated screen geometry,
Modeline “1920x1080_60.00” 185.49 1920 2048 2264 2672 1080 1081 1084 1157 -HSync +Vsync
Then I did…
xrandr --newmode “oscan” 185.49 1920 2048 2264 2672 1080 1081 1084 1157 -HSync +Vsync
xrandr --addmode HDMI-1 “oscan”
xrandr --output HDMI-1 --mode “oscan”
This did not make a visible change to the overscan. I don’t know what Raspberry Pi settings do to fix it, but they fix it perfectly.
Wrong link. This one.
Yes, I tried this a while ago because it looked like the silver bullet.
xrandr --output HDMI-1 --set underscan on
Here’s what I get…
pi@raspberrypi:~ $ xrandr --output HDMI-1 --set underscan on
X Error of failed request: BadName (named color or font does not exist)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 11 (RRQueryOutputProperty)
Serial number of failed request: 24
Current serial number in output stream: 24
So xrandr on Le Potato doesn’t like the underscan property. It is not supported. So next I tried using transform with,
xrandr --output HDMI-1 --transform 0.80,0,-42,0,1.04,-19,0,0,1
I played with the scale and offset values, but couldn’t come up with anything that fits the screen and makes the display look right.
To fix the overscan, the scan lines have to pad the image with blank pixels on all sides. This probably means more effective pixels, but I don’t know how to make xrandr do that.
To be clear, do you have underscan or overscan? Is there a black border around your image on the monitor or is the sides and corners cut off?
I have overscan on the monitor. A black border wouldn’t be so bad. In my case, edges of the desktop are off the screen. All of the back/front horizontal/vertical porches are too small.
So I booted my Pi, and got its current xrandr mode – the one that works. I copied all the numbers and entered them as a modeline into xrandr on Le Potato. The screen goes black for a moment, and then returns. Monitor reports the mode as 1920 x 1080, but even though the Hn Vn numbers are different, the image is the same. It’s as if the driver simply doesn’t like the numbers its getting and ignores them.
One more note. I had some other video driver weirdness from the portability script. Namely little garbage dots were appearing on some window palettes. So I installed a stock Raspbian distro from the Libre website. This is what I’m working with now. The garbage dots went away and the video is working well.
Just tried Ambian, and it behaves the same. The modelines that are supposed to pad the active area don’t seem to work.
You should also mention what your display make and model is along with a dump of the edid.
So I did a xrandr --verbose on the Pi when the compensation was ON and again OFF. I saved the output in a text file and compared them. There is no difference in the “current” xrandr setting, but in the beginning, a margin of 48 is shown all around the image. I don’t know how to set that in xrandr. Here are the outputs of xrandr --verbose. They include the EDID dumps.
------------ OVERSCAN COMPENSATION TURNED OFF ---------------
pi@raspberrypi:~ $ xrandr --verbose
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 7680 x 7680
HDMI-1 connected primary 1920x1080+0+0 (0x49) normal (normal left inverted right x axis y axis) 760mm x 450mm
Identifier: 0x45
Timestamp: 36689
Subpixel: unknown
Gamma: 1.0:1.0:1.0
Brightness: 1.0
Clones:
CRTC: 0
CRTCs: 0
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
EDID:
00ffffffffffff006318000001010101
06160103800000780ad7a5a2594a9624
145054adce0001010101010101010101
010101010101662150b051001b304070
3600f8c22100001e0e1f008051001e30
40803700f8c22100001c000000fc0057
5847412054560a2020202020000000fd
00324c1e410b000a2020202020200114
020326f1509005040203060711121314
15161f01202309070783010000e2000f
65030c002000023a801871382d40582c
450070ea3100001e011d8018711c1620
582c2500f4191100009e8c0ad08a20e0
2d10103e960058c2210000188c0ad08a
20e02d10103e960020c2310000180000
00000000000000000000000000000017
max bpc: 8
range: (8, 12)
bottom margin: 0
range: (0, 100)
top margin: 0
range: (0, 100)
right margin: 0
range: (0, 100)
left margin: 0
range: (0, 100)
Colorspace: Default
supported: Default, SMPTE_170M_YCC, BT709_YCC, XVYCC_601, XVYCC_709, SYCC_601, opYCC_601, opRGB, BT2020_CYCC, BT2020_RGB, BT2020_YCC, DCI-P3_RGB_D65, DCI-P3_RGB_Theater
link-status: Good
supported: Good, Bad
CONNECTOR_ID: 32
supported: 32
non-desktop: 0
range: (0, 1)
1360x768 (0x48) 85.500MHz +HSync +VSync +preferred
h: width 1360 start 1424 end 1536 total 1792 skew 0 clock 47.71KHz
v: height 768 start 771 end 777 total 795 clock 60.02Hz
1920x1080 (0x49) 148.500MHz +HSync +VSync *current
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.50KHz
v: height 1080 start 1084 end 1089 total 1125 clock 60.00Hz
1920x1080 (0x4a) 148.500MHz +HSync +VSync
h: width 1920 start 2448 end 2492 total 2640 skew 0 clock 56.25KHz
v: height 1080 start 1084 end 1089 total 1125 clock 50.00Hz
1920x1080 (0x4b) 148.352MHz +HSync +VSync
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.43KHz
v: height 1080 start 1084 end 1089 total 1125 clock 59.94Hz
1920x1080i (0x4c) 74.250MHz +HSync +VSync Interlace
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 33.75KHz
v: height 1080 start 1084 end 1094 total 1125 clock 60.00Hz
1920x1080i (0x4d) 74.250MHz +HSync +VSync Interlace
h: width 1920 start 2448 end 2492 total 2640 skew 0 clock 28.12KHz
v: height 1080 start 1084 end 1094 total 1125 clock 50.00Hz
1920x1080 (0x4e) 74.250MHz +HSync +VSync
h: width 1920 start 2558 end 2602 total 2750 skew 0 clock 27.00KHz
v: height 1080 start 1084 end 1089 total 1125 clock 24.00Hz
1920x1080i (0x4f) 74.176MHz +HSync +VSync Interlace
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 33.72KHz
v: height 1080 start 1084 end 1094 total 1125 clock 59.94Hz
1920x1080 (0x50) 74.176MHz +HSync +VSync
h: width 1920 start 2558 end 2602 total 2750 skew 0 clock 26.97KHz
v: height 1080 start 1084 end 1089 total 1125 clock 23.98Hz
1280x768 (0x51) 79.500MHz -HSync +VSync
h: width 1280 start 1344 end 1472 total 1664 skew 0 clock 47.78KHz
v: height 768 start 771 end 778 total 798 clock 59.87Hz
1280x720 (0x52) 74.250MHz +HSync +VSync
h: width 1280 start 1390 end 1430 total 1650 skew 0 clock 45.00KHz
v: height 720 start 725 end 730 total 750 clock 60.00Hz
1280x720 (0x53) 74.250MHz +HSync +VSync
h: width 1280 start 1720 end 1760 total 1980 skew 0 clock 37.50KHz
v: height 720 start 725 end 730 total 750 clock 50.00Hz
1280x720 (0x54) 74.176MHz +HSync +VSync
h: width 1280 start 1390 end 1430 total 1650 skew 0 clock 44.96KHz
v: height 720 start 725 end 730 total 750 clock 59.94Hz
1024x768 (0x55) 78.750MHz +HSync +VSync
h: width 1024 start 1040 end 1136 total 1312 skew 0 clock 60.02KHz
v: height 768 start 769 end 772 total 800 clock 75.03Hz
1024x768 (0x56) 75.000MHz -HSync -VSync
h: width 1024 start 1048 end 1184 total 1328 skew 0 clock 56.48KHz
v: height 768 start 771 end 777 total 806 clock 70.07Hz
1024x768 (0x57) 65.000MHz -HSync -VSync
h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz
v: height 768 start 771 end 777 total 806 clock 60.00Hz
800x600 (0x58) 50.000MHz +HSync +VSync
h: width 800 start 856 end 976 total 1040 skew 0 clock 48.08KHz
v: height 600 start 637 end 643 total 666 clock 72.19Hz
800x600 (0x59) 49.500MHz +HSync +VSync
h: width 800 start 816 end 896 total 1056 skew 0 clock 46.88KHz
v: height 600 start 601 end 604 total 625 clock 75.00Hz
800x600 (0x5a) 40.000MHz +HSync +VSync
h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz
v: height 600 start 601 end 605 total 628 clock 60.32Hz
720x576 (0x5b) 27.000MHz -HSync -VSync
h: width 720 start 732 end 796 total 864 skew 0 clock 31.25KHz
v: height 576 start 581 end 586 total 625 clock 50.00Hz
720x576i (0x5c) 13.500MHz -HSync -VSync Interlace
h: width 720 start 732 end 795 total 864 skew 0 clock 15.62KHz
v: height 576 start 580 end 586 total 625 clock 50.00Hz
720x480 (0x5d) 27.027MHz -HSync -VSync
h: width 720 start 736 end 798 total 858 skew 0 clock 31.50KHz
v: height 480 start 489 end 495 total 525 clock 60.00Hz
720x480 (0x5e) 27.000MHz -HSync -VSync
h: width 720 start 736 end 798 total 858 skew 0 clock 31.47KHz
v: height 480 start 489 end 495 total 525 clock 59.94Hz
720x480i (0x5f) 13.514MHz -HSync -VSync Interlace
h: width 720 start 739 end 801 total 858 skew 0 clock 15.75KHz
v: height 480 start 488 end 494 total 525 clock 60.00Hz
720x480i (0x60) 13.500MHz -HSync -VSync Interlace
h: width 720 start 739 end 801 total 858 skew 0 clock 15.73KHz
v: height 480 start 488 end 494 total 525 clock 59.94Hz
640x480 (0x61) 31.500MHz -HSync -VSync
h: width 640 start 656 end 720 total 840 skew 0 clock 37.50KHz
v: height 480 start 481 end 484 total 500 clock 75.00Hz
640x480 (0x62) 31.500MHz -HSync -VSync
h: width 640 start 664 end 704 total 832 skew 0 clock 37.86KHz
v: height 480 start 489 end 492 total 520 clock 72.81Hz
640x480 (0x63) 25.200MHz -HSync -VSync
h: width 640 start 656 end 752 total 800 skew 0 clock 31.50KHz
v: height 480 start 490 end 492 total 525 clock 60.00Hz
640x480 (0x64) 25.175MHz -HSync -VSync
h: width 640 start 656 end 752 total 800 skew 0 clock 31.47KHz
v: height 480 start 490 end 492 total 525 clock 59.94Hz
720x400 (0x65) 28.320MHz -HSync +VSync
h: width 720 start 738 end 846 total 900 skew 0 clock 31.47KHz
v: height 400 start 412 end 414 total 449 clock 70.08Hz
HDMI-2 disconnected (normal left inverted right x axis y axis)
Identifier: 0x46
Timestamp: 36689
Subpixel: unknown
Clones:
CRTCs: 4
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
max bpc: 8
range: (8, 12)
bottom margin: 0
range: (0, 100)
top margin: 0
range: (0, 100)
right margin: 0
range: (0, 100)
left margin: 0
range: (0, 100)
Colorspace: Default
supported: Default, SMPTE_170M_YCC, BT709_YCC, XVYCC_601, XVYCC_709, SYCC_601, opYCC_601, opRGB, BT2020_CYCC, BT2020_RGB, BT2020_YCC, DCI-P3_RGB_D65, DCI-P3_RGB_Theater
link-status: Good
supported: Good, Bad
CONNECTOR_ID: 40
supported: 40
non-desktop: 0
range: (0, 1)
pi@raspberrypi:~ $
> ------------ OVERSCAN COMPENSATION TURNED ON ---------------
> pi@raspberrypi:~ $ xrandr --verbose
> Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 7680 x 7680
> HDMI-1 connected primary 1920x1080+0+0 (0x49) normal (normal left inverted right x axis y axis) 760mm x 450mm
> Identifier: 0x45
> Timestamp: 37224
> Subpixel: unknown
> Gamma: 1.0:1.0:1.0
> Brightness: 1.0
> Clones:
> CRTC: 0
> CRTCs: 0
> Transform: 1.000000 0.000000 0.000000
> 0.000000 1.000000 0.000000
> 0.000000 0.000000 1.000000
> filter:
> EDID:
> 00ffffffffffff006318000001010101
> 06160103800000780ad7a5a2594a9624
> 145054adce0001010101010101010101
> 010101010101662150b051001b304070
> 3600f8c22100001e0e1f008051001e30
> 40803700f8c22100001c000000fc0057
> 5847412054560a2020202020000000fd
> 00324c1e410b000a2020202020200114
> 020326f1509005040203060711121314
> 15161f01202309070783010000e2000f
> 65030c002000023a801871382d40582c
> 450070ea3100001e011d8018711c1620
> 582c2500f4191100009e8c0ad08a20e0
> 2d10103e960058c2210000188c0ad08a
> 20e02d10103e960020c2310000180000
> 00000000000000000000000000000017
> max bpc: 8
> range: (8, 12)
> bottom margin: 48
> range: (0, 100)
> top margin: 48
> range: (0, 100)
> right margin: 48
> range: (0, 100)
> left margin: 48
> range: (0, 100)
> Colorspace: Default
> supported: Default, SMPTE_170M_YCC, BT709_YCC, XVYCC_601, XVYCC_709, SYCC_601, opYCC_601, opRGB, BT2020_CYCC, BT2020_RGB, BT2020_YCC, DCI-P3_RGB_D65, DCI-P3_RGB_Theater
> link-status: Good
> supported: Good, Bad
> CONNECTOR_ID: 32
> supported: 32
> non-desktop: 0
> range: (0, 1)
> 1360x768 (0x48) 85.500MHz +HSync +VSync +preferred
> h: width 1360 start 1424 end 1536 total 1792 skew 0 clock 47.71KHz
> v: height 768 start 771 end 777 total 795 clock 60.02Hz
> 1920x1080 (0x49) 148.500MHz +HSync +VSync *current
> h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.50KHz
> v: height 1080 start 1084 end 1089 total 1125 clock 60.00Hz
> 1920x1080 (0x4a) 148.500MHz +HSync +VSync
> h: width 1920 start 2448 end 2492 total 2640 skew 0 clock 56.25KHz
> v: height 1080 start 1084 end 1089 total 1125 clock 50.00Hz
> 1920x1080 (0x4b) 148.352MHz +HSync +VSync
> h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.43KHz
> v: height 1080 start 1084 end 1089 total 1125 clock 59.94Hz
> 1920x1080i (0x4c) 74.250MHz +HSync +VSync Interlace
> h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 33.75KHz
> v: height 1080 start 1084 end 1094 total 1125 clock 60.00Hz
> 1920x1080i (0x4d) 74.250MHz +HSync +VSync Interlace
> h: width 1920 start 2448 end 2492 total 2640 skew 0 clock 28.12KHz
> v: height 1080 start 1084 end 1094 total 1125 clock 50.00Hz
> 1920x1080 (0x4e) 74.250MHz +HSync +VSync
> h: width 1920 start 2558 end 2602 total 2750 skew 0 clock 27.00KHz
> v: height 1080 start 1084 end 1089 total 1125 clock 24.00Hz
> 1920x1080i (0x4f) 74.176MHz +HSync +VSync Interlace
> h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 33.72KHz
> v: height 1080 start 1084 end 1094 total 1125 clock 59.94Hz
> 1920x1080 (0x50) 74.176MHz +HSync +VSync
> h: width 1920 start 2558 end 2602 total 2750 skew 0 clock 26.97KHz
> v: height 1080 start 1084 end 1089 total 1125 clock 23.98Hz
> 1280x768 (0x51) 79.500MHz -HSync +VSync
> h: width 1280 start 1344 end 1472 total 1664 skew 0 clock 47.78KHz
> v: height 768 start 771 end 778 total 798 clock 59.87Hz
> 1280x720 (0x52) 74.250MHz +HSync +VSync
> h: width 1280 start 1390 end 1430 total 1650 skew 0 clock 45.00KHz
> v: height 720 start 725 end 730 total 750 clock 60.00Hz
> 1280x720 (0x53) 74.250MHz +HSync +VSync
> h: width 1280 start 1720 end 1760 total 1980 skew 0 clock 37.50KHz
> v: height 720 start 725 end 730 total 750 clock 50.00Hz
> 1280x720 (0x54) 74.176MHz +HSync +VSync
> h: width 1280 start 1390 end 1430 total 1650 skew 0 clock 44.96KHz
> v: height 720 start 725 end 730 total 750 clock 59.94Hz
> 1024x768 (0x55) 78.750MHz +HSync +VSync
> h: width 1024 start 1040 end 1136 total 1312 skew 0 clock 60.02KHz
> v: height 768 start 769 end 772 total 800 clock 75.03Hz
> 1024x768 (0x56) 75.000MHz -HSync -VSync
> h: width 1024 start 1048 end 1184 total 1328 skew 0 clock 56.48KHz
> v: height 768 start 771 end 777 total 806 clock 70.07Hz
> 1024x768 (0x57) 65.000MHz -HSync -VSync
> h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz
> v: height 768 start 771 end 777 total 806 clock 60.00Hz
> 800x600 (0x58) 50.000MHz +HSync +VSync
> h: width 800 start 856 end 976 total 1040 skew 0 clock 48.08KHz
> v: height 600 start 637 end 643 total 666 clock 72.19Hz
> 800x600 (0x59) 49.500MHz +HSync +VSync
> h: width 800 start 816 end 896 total 1056 skew 0 clock 46.88KHz
> v: height 600 start 601 end 604 total 625 clock 75.00Hz
> 800x600 (0x5a) 40.000MHz +HSync +VSync
> h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz
> v: height 600 start 601 end 605 total 628 clock 60.32Hz
> 720x576 (0x5b) 27.000MHz -HSync -VSync
> h: width 720 start 732 end 796 total 864 skew 0 clock 31.25KHz
> v: height 576 start 581 end 586 total 625 clock 50.00Hz
> 720x576i (0x5c) 13.500MHz -HSync -VSync Interlace
> h: width 720 start 732 end 795 total 864 skew 0 clock 15.62KHz
> v: height 576 start 580 end 586 total 625 clock 50.00Hz
> 720x480 (0x5d) 27.027MHz -HSync -VSync
> h: width 720 start 736 end 798 total 858 skew 0 clock 31.50KHz
> v: height 480 start 489 end 495 total 525 clock 60.00Hz
> 720x480 (0x5e) 27.000MHz -HSync -VSync
> h: width 720 start 736 end 798 total 858 skew 0 clock 31.47KHz
> v: height 480 start 489 end 495 total 525 clock 59.94Hz
> 720x480i (0x5f) 13.514MHz -HSync -VSync Interlace
> h: width 720 start 739 end 801 total 858 skew 0 clock 15.75KHz
> v: height 480 start 488 end 494 total 525 clock 60.00Hz
> 720x480i (0x60) 13.500MHz -HSync -VSync Interlace
> h: width 720 start 739 end 801 total 858 skew 0 clock 15.73KHz
> v: height 480 start 488 end 494 total 525 clock 59.94Hz
> 640x480 (0x61) 31.500MHz -HSync -VSync
> h: width 640 start 656 end 720 total 840 skew 0 clock 37.50KHz
> v: height 480 start 481 end 484 total 500 clock 75.00Hz
> 640x480 (0x62) 31.500MHz -HSync -VSync
> h: width 640 start 664 end 704 total 832 skew 0 clock 37.86KHz
> v: height 480 start 489 end 492 total 520 clock 72.81Hz
> 640x480 (0x63) 25.200MHz -HSync -VSync
> h: width 640 start 656 end 752 total 800 skew 0 clock 31.50KHz
> v: height 480 start 490 end 492 total 525 clock 60.00Hz
> 640x480 (0x64) 25.175MHz -HSync -VSync
> h: width 640 start 656 end 752 total 800 skew 0 clock 31.47KHz
> v: height 480 start 490 end 492 total 525 clock 59.94Hz
> 720x400 (0x65) 28.320MHz -HSync +VSync
> h: width 720 start 738 end 846 total 900 skew 0 clock 31.47KHz
> v: height 400 start 412 end 414 total 449 clock 70.08Hz
> HDMI-2 disconnected (normal left inverted right x axis y axis)
> Identifier: 0x46
> Timestamp: 37224
> Subpixel: unknown
> Clones:
> CRTCs: 4
> Transform: 1.000000 0.000000 0.000000
> 0.000000 1.000000 0.000000
> 0.000000 0.000000 1.000000
> filter:
> max bpc: 8
> range: (8, 12)
> bottom margin: 0
> range: (0, 100)
> top margin: 0
> range: (0, 100)
> right margin: 0
> range: (0, 100)
> left margin: 0
> range: (0, 100)
> Colorspace: Default
> supported: Default, SMPTE_170M_YCC, BT709_YCC, XVYCC_601, XVYCC_709, SYCC_601, opYCC_601, opRGB, BT2020_CYCC, BT2020_RGB, BT2020_YCC, DCI-P3_RGB_D65, DCI-P3_RGB_Theater
> link-status: Good
> supported: Good, Bad
> CONNECTOR_ID: 40
> supported: 40
> non-desktop: 0
> range: (0, 1)
> pi@raspberrypi:~ $
Here’s the diff file…
1c1
< ------------ OVERSCAN COMPENSATION TURNED OFF ---------------
---
> ------------ OVERSCAN COMPENSATION TURNED ON ---------------
6c6
< Timestamp: 36689
---
> Timestamp: 37224
36c36
< bottom margin: 0
---
> bottom margin: 48
38c38
< top margin: 0
---
> top margin: 48
40c40
< right margin: 0
---
> right margin: 48
42c42
< left margin: 0
---
> left margin: 48
144c144
< Timestamp: 36689
---
> Timestamp: 37224
I couln’t find anything in “fbset -i”. Both Pi outputs show the same info.
Changing margins in fbset does nothing.
Boot the Ubuntu desktop images and try to compensate for the overscan in Gnome display settings to see if it’s a fixable issue or it’s a timing availability issue.
I looked and couldn’t find anything relevant there.
There’s a couple of things to understand first.
You have fbcon which is the framebuffer console or you have X11 which is what all the pretty stuff runs in or you have wayland which is the other system in which all the pretty stuff runs in.
For fbcon, this is non-fixable. Get another monitor that properly doesn’t underscan.
For X11, you can use transforms via xrandr to scale the image down to the window that the monitor scans. This is what you were attempting before.
xrandr --output HDMI-1 --transform 1.3,0,-100,0,1.3,-90,0,0,1
xrandr --output HDMI-1 --set underscan on --set "underscan vborder" 20 --set "underscan hborder" 35
Also your monitor’s preferred EDID is 1360x768 (0x48) 85.500MHz +HSync +VSync +preferred
What exactly is the make and model of the monitor?
Thank you for taking the time to help me with this.
Make and model of the monitor is Proscan PLEDV1945A-C. This is not relevant because I have no control over what monitors will be connected in a larger distribution system. I need to be able to compensate for overscan monitors that will likely show up.
The “underscan” property is not supported in either Armbian or Raspbian on the AML-S905X-CC. I tried that. It returns an error and does nothing. From what I read, the availability of this feature depends on the video driver.
I was able to fix my problem but it’s not a pretty fix. From Dan Henderson, Output video to overscanning TV with Intel graphics - Unix & Linux Stack Exchange
I used these two commands to compensate for my monitor’s overscan perfectly.
xrandr --output HDMI-1 --transform 1,0,-40,0,1,-25,0,0,1 --panning 1920x1080+40+20
xrandr --output HDMI-1 --fb 1815x1015 --transform 1,0,-50,0,1,-25,0,0,1 --panning 1920x1080+55+40
Dan is right. You would think all you need is the second command, but that doesn’t work by itself.
The reason this is not a pretty fix is because it throws and error, but goes ahead and does it anyway. Here’s the error,
xrandr: specified screen 1815x1015 not large enough for output HDMI-1 (1920x1080+-50+-25)
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 29 (RRSetPanning)
Serial number of failed request: 27
Current serial number in output stream: 27
It’s possible to adjust the margins by adjusting the frame buffer size and the offsets in the transform and panning parameters.
It’s fixed for now, but it’s likely some future release will refuse to comply with this hack panning setting.
We have ongoing work with our consultancy to improve upstream video modes support for AML-S905X-CC. Hopefully it bears fruit in the future.
These SoCs need to be able to generate proper clocks to synchronize the video with a display and certain frequencies require certain hacks while others will not work at all. Your current best bet is scaling video within a known and supported frequency.
The kernel driver is what determines the video mode support so it doesn’t really matter whether you are using Raspbian or Ubuntu or Debian. The only time you may see a difference is against vendor SDK kernels in projects like CoreELEC.
I read this whole thread. I too have the same issue. I even tried to implement xandr, but I get an error when I try using that.
I was dumbfounded when I read that OPs monitor was a Proscan! I have the same trouble and my monitor is a Proscan PLEDV2488a…so before you get to excited about helping me, I am going to try a grid monitor first.
I will note that this scanning issue only cropped up with Buster and Bullseye. Wheezy, Jessie, and Stretch all worked fine on the PLEDV2488a. I originally thought it was the pi4 that caused the scanning problem, but when I installed the 64bit Bullseye on my pi3b+, the scanning problem popped up.
The real issue is that I like the monitor because it’s a 12v model and I live off grid, so it’s very convenient when I get an idea and don’t want to start the generator to power the larger computers.