我有一个两部分的答案,对于树莓派来说非常有效。
首先,树莓派有超扫描的概念,它会在整个屏幕周围添加黑色边框,使其适应旧电视的“管”范围。是的,某些模拟该功能的现代平板电视也需要这个功能。如果您的黑色边框出现在所有屏幕分辨率上,请更改此设置。最简单的方法是通过sudo raspi-config
进行。不同版本的raspi-config
中选项和布局会有所不同,但您可以从Advanced Options
菜单中寻找Overscan
。如果超扫描是您的问题,但您希望更精细地控制黑色边框的大小 - 那么可以在/boot/config.txt中进行微调。我不会在这里详细介绍,但很容易搜索如何调整该文件。
如果这不是您的问题,并且您正在寻找更好的分辨率设置以适应您的电视/显示器,则还可以使用raspi-config
从所有有效的屏幕分辨率中进行选择。它们位于与超扫描相同的Advanced Options
菜单中。
如果您需要以编程方式检查和设置分辨率,则可以使用tvservice
工具。该程序没有手册页,但不带参数运行它会提供一些帮助。它具有非常有趣的功能,远远超出了fbset
的能力范围。
以下是一些简短的示例:
$ sudo tvservice --status
state 0x120009 [HDMI CEA (16) RGB lim 16:9], 1920x1080 @ 60.00Hz, progressive
$
$ sudo tvservice --modes=CEA
Group CEA has 11 modes:
mode 1: 640x480 @ 60Hz 4:3, clock:25MHz progressive
mode 2: 720x480 @ 60Hz 4:3, clock:27MHz progressive
mode 3: 720x480 @ 60Hz 16:9, clock:27MHz progressive
mode 4: 1280x720 @ 60Hz 16:9, clock:74MHz progressive
(prefer) mode 16: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive
mode 17: 720x576 @ 50Hz 4:3, clock:27MHz progressive
mode 18: 720x576 @ 50Hz 16:9, clock:27MHz progressive
mode 19: 1280x720 @ 50Hz 16:9, clock:74MHz progressive
mode 31: 1920x1080 @ 50Hz 16:9, clock:148MHz progressive
mode 32: 1920x1080 @ 24Hz 16:9, clock:74MHz progressive
mode 34: 1920x1080 @ 30Hz 16:9, clock:74MHz progressive
你可以查看电视支持哪些模式,为了完整起见,你应该扫描DMT和CEA两个组以获取所有内容。DMT模式更适用于计算机显示器而不是电视。
然后你的程序可以从列表中选择一个并使用"tvservice -e"来设置其中一个模式。