问题描述
好吧,这是我在使用 VGA 连接和 Nvidia Geforce GT 440 卡时遇到的另一个问题的延伸。该问题已更新,包括与 HDMI 视频相关的其他问题,而且我已经确认它也会影响 ATI 显卡。解释如下:
我有一台 Soneview 32 英寸电视。这台电视有很多接口,包括 VGA(我买它的第一个原因)、HDMI(第二个原因,但当时没有 HDMI 电缆)和 DVI。
我拥有这台电视已经一个多月了,实际上我买它是为了庆祝 Ubuntu 11.10 的发布,并在那天开始使用它(我知道那里有太多粉丝,但是嘿,我喜欢极客的东西)。我开始使用 VGA 线。两周后我买了一张 Nvidia GT440 卡。之前使用 VGA 连接的 9500GT 工作正常,没有任何问题。
我安装了 GT440,使用这张最新卡遇到的第一个问题如下: Black screen on latest Nvidia/Ati Cards when starting LightDM/Ubuntu 。此问题的解决方案是实际断开然后重新连接 VGA 电缆。这将导致屏幕向我显示用于登录的 lightdm 屏幕。如果我没有断开连接然后连接电缆,我可能会永远认为没有视频信号。黑屏问题在 12.04 的后续更新中得到了解决,并且使用默认的 12.10 已经解决了。因此使用12.04并更新或使用12.10解决了HDMI黑屏问题。
我厌倦了寻找不起作用的答案以及让我不得不再次安装 Ubuntu 的解决方案。我刚去买了一条 HDMI 线,然后把 VGA 线换成了那条。它有效,我不必断开/连接电缆,但现在我在使用任何分辨率时都遇到这个问题。我的正常分辨率是 1920×1080(这台电视是 1080HD),所以在 VGA 中我可以毫无问题地使用这个分辨率,但在 HDMI 上我的边框被剪掉了。这是一张图片:
从图中可以看出,启动器图标仅显示其宽度的不到 50%。忘记顶部和底部部分,我可以用鼠标访问它们,但无法在屏幕上可视化它们。就像在电视视野之外一样。基本上,四面八方都会消失 20 到 30 个像素。
我四处搜寻并运行 xrand --verbose
以查看它可以从电视中检测到什么。我懂了:
cyrex@cyrex:~$ xrandr --verbose
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 320 x 175, current 1920 x 1080, maximum 1920 x 1080
default connected 1920x1080+0+0 (0x164) normal (normal) 0mm x 0mm
Identifier: 0x163
Timestamp: 465485
Subpixel: unknown
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:
1920x1080 (0x164) 103.7MHz *current
h: width 1920 start 0 end 0 total 1920 skew 0 clock 54.0KHz
v: height 1080 start 0 end 0 total 1080 clock 50.0Hz
1920x1080 (0x165) 105.8MHz
h: width 1920 start 0 end 0 total 1920 skew 0 clock 55.1KHz
v: height 1080 start 0 end 0 total 1080 clock 51.0Hz
1920x1080 (0x166) 107.8MHz
h: width 1920 start 0 end 0 total 1920 skew 0 clock 56.2KHz
v: height 1080 start 0 end 0 total 1080 clock 52.0Hz
1920x1080 (0x167) 109.9MHz
h: width 1920 start 0 end 0 total 1920 skew 0 clock 57.2KHz
v: height 1080 start 0 end 0 total 1080 clock 53.0Hz
1920x1080 (0x168) 112.0MHz
h: width 1920 start 0 end 0 total 1920 skew 0 clock 58.3KHz
v: height 1080 start 0 end 0 total 1080 clock 54.0Hz
1920x1080 (0x169) 114.0MHz
h: width 1920 start 0 end 0 total 1920 skew 0 clock 59.4KHz
v: height 1080 start 0 end 0 total 1080 clock 55.0Hz
1680x1050 (0x16a) 98.8MHz
h: width 1680 start 0 end 0 total 1680 skew 0 clock 58.8KHz
v: height 1050 start 0 end 0 total 1050 clock 56.0Hz
1680x1050 (0x16b) 100.5MHz
h: width 1680 start 0 end 0 total 1680 skew 0 clock 59.9KHz
v: height 1050 start 0 end 0 total 1050 clock 57.0Hz
1600x1024 (0x16c) 95.0MHz
h: width 1600 start 0 end 0 total 1600 skew 0 clock 59.4KHz
v: height 1024 start 0 end 0 total 1024 clock 58.0Hz
1440x900 (0x16d) 76.5MHz
h: width 1440 start 0 end 0 total 1440 skew 0 clock 53.1KHz
v: height 900 start 0 end 0 total 900 clock 59.0Hz
1360x768 (0x171) 65.8MHz
h: width 1360 start 0 end 0 total 1360 skew 0 clock 48.4KHz
v: height 768 start 0 end 0 total 768 clock 63.0Hz
1360x768 (0x172) 66.8MHz
h: width 1360 start 0 end 0 total 1360 skew 0 clock 49.2KHz
v: height 768 start 0 end 0 total 768 clock 64.0Hz
1280x1024 (0x173) 85.2MHz
h: width 1280 start 0 end 0 total 1280 skew 0 clock 66.6KHz
v: height 1024 start 0 end 0 total 1024 clock 65.0Hz
1280x960 (0x176) 83.6MHz
h: width 1280 start 0 end 0 total 1280 skew 0 clock 65.3KHz
v: height 960 start 0 end 0 total 960 clock 68.0Hz
1280x960 (0x177) 84.8MHz
h: width 1280 start 0 end 0 total 1280 skew 0 clock 66.2KHz
v: height 960 start 0 end 0 total 960 clock 69.0Hz
1280x720 (0x178) 64.5MHz
h: width 1280 start 0 end 0 total 1280 skew 0 clock 50.4KHz
v: height 720 start 0 end 0 total 720 clock 70.0Hz
1280x720 (0x179) 65.4MHz
h: width 1280 start 0 end 0 total 1280 skew 0 clock 51.1KHz
v: height 720 start 0 end 0 total 720 clock 71.0Hz
1280x720 (0x17a) 66.4MHz
h: width 1280 start 0 end 0 total 1280 skew 0 clock 51.8KHz
v: height 720 start 0 end 0 total 720 clock 72.0Hz
1152x864 (0x17b) 72.7MHz
h: width 1152 start 0 end 0 total 1152 skew 0 clock 63.1KHz
v: height 864 start 0 end 0 total 864 clock 73.0Hz
1152x864 (0x17c) 73.7MHz
h: width 1152 start 0 end 0 total 1152 skew 0 clock 63.9KHz
v: height 864 start 0 end 0 total 864 clock 74.0Hz
....Many Resolutions later...
320x200 (0x1d1) 10.2MHz
h: width 320 start 0 end 0 total 320 skew 0 clock 31.8KHz
v: height 200 start 0 end 0 total 200 clock 159.0Hz
320x175 (0x1d2) 9.0MHz
h: width 320 start 0 end 0 total 320 skew 0 clock 28.0KHz
v: height 175 start 0 end 0 total 175 clock 160.0Hz
1920x1080 (0x1dd) 333.8MHz
h: width 1920 start 0 end 0 total 1920 skew 0 clock 173.9KHz
v: height 1080 start 0 end 0 total 1080 clock 161.0Hz
如果有帮助的话,1920×1080 的刷新率为 60。使用 HDMI 但不是 VGA 时,在此分辨率下会出现闪烁效果,我想这与我在这里询问的边框切断问题有关。
最佳答案
以下解决了低于 1920×1080 的分辨率或其他电视上的问题(我父亲有一台索尼电视,该问题也解决了),因为问题出在电视本身。某些用于计算机的电视仅为 VGA 提供 1920×1080,但不为 HDMI 提供。其他需要在电视显示器中进行配置,最后在极少数情况下,视频卡(视频卡可以执行的操作)和电视(电视分辨率可以显示的内容)之间的分辨率不兼容。以下解决方案尝试解决在电视上使用 1920 时出现的黑色边框、两侧或顶部和底部留有空格以及图形损坏和字母看起来很奇怪等问题:
英伟达之路
-
转到Nvidia-Settings,如果连接 HDMI 电缆,将会有一个选项,该选项将具有更多功能。在下一张图片中,选项是 DFP-1 (CNDLCD),但该名称会根据 PC 连接到的设备而变化:
-
取消选中强制完全 GPU 缩放
对于低于 1920×1080 的分辨率(至少在我的情况下),这将解决闪烁问题并修复显示器切割的边框。
-
将更改为您眼睛可接受的分辨率后所做的更改保存到 Xorg.conf 文件中。
电视方式
-
如果您的电视有 OSD 菜单,并且此菜单具有用于扫描屏幕分辨率或自动调整屏幕分辨率的选项,请禁用它们。特别是有关 SCAN 的选项。\n
-
如果您有 AV 模式选项,请将其禁用。\n
-
基本上禁用任何需要扫描和缩放分辨率的选项。一一测试。就我父亲的电视而言,它做到了。就我而言,Nvidia 解决了较低分辨率的问题。\n
注意(用户 James 的评论 – https://askubuntu.com/users/39762/james):对于某些三星液晶电视。使用电视遥控器进入选项 ->图片选项并将图片选项设置为“适合屏幕”。
视频质量
如果您碰巧有一台 1080p 电视,并且 1920×1080 的质量较低,如以下 2 张图片,那么建议您实际上将分辨率降低到 1680×1050,以便仍有足够的空间容纳所有内容,但避免最高分辨率上出现的较低质量(我已经测试过,这会影响 16:9 和 16:10 分辨率,最大分辨率为 50 或 60 刷新率。这在某种程度上取决于电视以及它是否支持 16:9、16:10 或两者。另一部分负责的是司机。):
以下图像的分辨率为 1680×1050:\n
以下图像来自 1920×1080 分辨率:\n
正如您从两张图片中看到的,1920 剪切了侧面,文本看起来很模糊,像是来自过度压缩的 JPG 文件。就1680而言,质量非常好,所有内容都可以阅读,而不会盲目。
在 VGA 或 HDMI 中,我的文本看起来很模糊(使用 Firefox/Chrome、使用 Nautilus 等浏览时……)
原因之一可能是 FXAA 选项被激活,这仅适用于支持抗锯齿 FXAA 功能的更高版本 Nvidia 驱动程序和卡:
如果结果是模糊文本,每次移动或更改窗口时,文本都会保持模糊几秒钟,从而在尝试阅读任何内容时使视力变得困难,请勿激活此功能。只需停用该功能并注销或重新启动即可。
手动调整分辨率
如果您碰巧拥有最新的 Nvidia 驱动程序之一,那么上述某些要点将不起作用。对于这种情况,请打开 nvidia-settings
应用程序并转到 X 服务器显示配置。单击“高级…”并将以下选项更改为略低于您正在使用的分辨率:
-
视频端口输入
-
视频端口输出
-
平移
请注意,我使用的电视不支持 1680×1040。相反,我选择了 1920×1080 广告,然后将提到的 3 个选项编辑为稍低的分辨率,这样我就可以 “move” X/Y 坐标来查看启动器图标和顶部窗格。在“视频端口输出”选项中,\n分辨率后的 2 个值是 X 和 Y 坐标。它们通常显示为 1680×1040+0+0,但在编辑值并保存更改后,您将看到启动器和顶部面板出现。在我的例子中,我为 X 设置了 48,为 Y 设置了 30。这使得面板和启动器正确显示在电视(视口)中。
次佳答案
执行摘要:xrandr --output HDMI-0 --set underscan on
为我解决了这个问题。
这里的答案都不适合我的配置。我有松下 TH-42PX80U 和 ATI Radeon HD5770 显卡。 (是的,这是一个旧设备。)
专有的 AMD fglrx 驱动程序没有这个问题,但也有 cannot run Broken Age 。这个问题对该游戏来说特别烦人,因为一些文本最终会从屏幕上消失。
我尝试了电视菜单中的每个设置及其 “format” 的每个选项(广角、全屏、变焦等)。没有任何帮助。
运行 xrandr --verbose
显示我的 HDMI 输出名为 “HDMI-0” 并且它支持欠扫描设置。运行其中任一后,我终于可以看到整个图像:
xrandr --output HDMI-0 --set underscan on
或者
xrandr --output HDMI-0 --set underscan auto
第三种答案
我今天遇到了完全相同的问题。我使用的是三星液晶屏。这个问题非常容易解决,我只是找到了电视的遥控器,进入选项,在图片选项上,我将其设置为适合屏幕。我知道您使用的不是三星,但我很确定您的电视也会有类似的选项。