在Dell Mini 10v笔记本电脑的外部显示器上无法设置更高的屏幕分辨率。

我有一台来自HP的22英寸显示器(w2207h),通过VGA切换器连接到我的笔记本电脑(戴尔Mini 10v或1011)。我的问题是,我无法在外部显示器上设置比1024x768(4:3)更高的分辨率。我只能设置较低的分辨率(800x600和4:3)。我以前在Ubuntu上使用它时,屏幕分辨率没有问题,所以我认为问题是VGA切换器。有人知道如何解决这个问题吗?有人知道我该如何开始吗?

这是我的屏幕配置截图。绿色的那个是HP显示器,上面可以看到“unknown”字样。是的,它是用西班牙语显示的。非常感谢。

Screen configuration window Ubuntu 11.10

更多信息: 我的Dell Mini笔记本电脑的图形适配器是Intel945GSE UMA。

1我忘了说,我的HP显示器的原生分辨率是1650 x 900。谢谢。 - jefesuarez
更多信息。在监视器/屏幕/显示窗口中,第二个显示器被列为未知。 - jefesuarez
8个回答

我也遇到了同样的问题。你必须添加分辨率:
xrandr --newmode <ModeLine>

了解您的分辨率的ModeLine,请按照以下步骤操作:
$ cvt 1650 900

你会得到类似这样的东西:
# 1656x900 59.93 Hz (CVT) hsync: 55.98 kHz; pclk: 122.25 MHz
Modeline "1656x900_60.00"  122.25  1656 1752 1920 2184  900 903 913 934 -hsync +vsync

然后,将单词“Modeline”之后的信息复制到XRandR命令中:
$ xrandr --newmode "1656x900_60.00"  122.25  1656 1752 1920 2184  900 903 913 934 -hsync +vsync

进入模式后,需要将其添加到输出中。
xrandr --addmode VGA1 1656x900_60.00

现在你有了新的决心 :-)

9我要用什么来替换VGA1?- 解决方案:使用xrandr命令查看输出名称。 - kommradHomer
3这个方法有效。非常感谢。但是我每次重启电脑都得重新运行一遍这个命令(bash历史记录挺方便的)。最适合自动执行的位置在哪里呢? - Ivan
@Ivan,你可以编写一个包含最后两个命令的脚本,并让它在启动时执行。了解一下启动脚本的相关知识。 - FelGutiCo
我在文档中也找到了这个建议,但不幸的是对于我来说一点用都没有,因为无论我输入什么,步骤xrandr --newmode <Modeline>都不起作用。它只会显示xrandr: failed to parse <X> as a mode specification。你有任何想法是什么原因导致这个问题? - Vala
你是先获取“Modeline”吗?这是使用命令“cvt”来完成的。之后你需要输入“xrand --newmode...”。 - FelGutiCo
有没有办法让这些设置在重新启动后保持?我的设置总是重置,每次重新启动后都需要重新设置。 - thethakuri
我使用了shell脚本在每次启动时运行。现在看起来它正在正常工作! - thethakuri
谢谢FelGutiCo!对我来说很有效,即使重启后也不需要执行任何特殊的启动脚本或其他操作。我在一台2008年的MacBook上运行Xubuntu 16.04LTS。 - Gabriel Staples
2这个解决方案对我有效。我只想补充一点,要删除一个模式,你可以执行以下命令:例如,xrandr --rmmode 1920x1200R - desmond13

FelGutiCo和milkovsky是对的,不过我不得不使用-r参数才能使其正常工作(否则我的显示器左侧20%是空白的,图像被适配到右侧80%),所以我做的是:
$ cvt -r 1920 1080
# 1920x1080 59.93 Hz (CVT 2.07M9-R) hsync: 66.59 kHz; pclk: 138.50 MHz
Modeline "1920x1080R"  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync

$ xrandr --newmode "1920x1080R"  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync

$ xrandr --addmode VGA-1 1920x1080R

再给你一个提示,因为我不得不将“VGA1”改为“VGA-1”;要找出我的显示器的ID,我使用了:
$ xrandr --listactivemonitors

$ cvt 1366 768
# 1368x768 59.88 Hz (CVT) hsync: 47.79 kHz; pclk: 85.25 MHz
Modeline "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync

$ xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync

找到显示器的ID
$ xrandr --listactivemonitors

Monitors: 2
 0: +*eDP-1 1366/345x768/194+0+0  eDP-1
 1: +DP-1 1024/271x768/203+1366+0  DP-1

$ xrandr --addmode DP-1 1368x768_60.00

请添加一些关于您所使用的命令的描述。 - Kulfy

你可以按照FelGutiCo的建议去做。此外,如果在重启后遇到问题(Ubuntu找不到分辨率),你需要在你的主目录下创建一个.xprofile文件,并将上述两个xrandr命令写入其中。
$ xrandr --newmode "1656x900_60.00"  122.25  1656 1752 1920 2184  900 903 913 934 -hsync +vsync
$ xrandr --addmode VGA1 1656x900_60.00

请将分辨率设置为1656x900,以符合您的要求。


如果你认为问题可能是VGA切换器,为什么不试着直接将显示器插入?
此外,许多上网本的视频芯片组存在已知问题,即组合屏幕尺寸不能超过任何维度的2048像素。因此,如果你的笔记本宽度为1024像素,你只能添加另一个宽度最多为1024像素的显示器。
要检查这个问题,请打开终端并使用以下命令:
lspci

如果你看到“Intel Corporation: N10 Family Integrated Graphics Controller”,那么你的系统受到了这个问题的影响。
这是由于Ubuntu中一些驱动程序的限制引起的,以下是针对此问题的错误报告。

https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/830949

这就是为什么,如果你尝试设置更高的分辨率,会收到一条消息,告诉你需要将所有显示器适应在2048x2048像素内。不幸的是,对此没有真正的解决方案,但我可以提供两个变通方法:
1. 将显示器垂直排列。这样,垂直分辨率受限,而600+900=1500小于2048,因此你可以使用两个显示器。
2. 使用Unity-2d,我认为这个限制对它没有影响。
请注意,如果你尝试通过命令行设置分辨率,将绕过“保护”以设置无效的分辨率。这样做是行不通的,并且会导致系统变得无法使用。如果发生这种情况,请重新启动系统。

这是我旧笔记本电脑上的一个问题,我成功地通过将外接显示器逻辑上放在内置显示器的上方(而不是右侧)来解决了这个问题。但是,我的新笔记本电脑却不是这个问题,它具有另一代的英特尔显卡(没有这个bug,但不幸的是稳定性较差)。 - Ivan

以下命令在我的Ubuntu 17.04上的Lenovo Ideapad Z510和Nvidia 1GB GPU上有效: ubuntu@home-ideapad: xrandr --listmonitors

除了FelGutiCo的答案外,我还建议为那些遇到以下错误信息的人提供最后一步解决方法:
``` xrandr: cannot find output "VGA1" ```
由于您正在针对不同的输出设备,所以会出现这个错误。要解决这个问题,可以按照以下步骤进行操作:
1. 查询所有可用的输出设备,并检查除了您的主屏幕之外哪个设备已连接上。使用以下查询选项:
``` xrandr -q ```
2. 复制已连接的设备名称,并将其替换为VGA1,例如:
``` xrandr --addmode VGA1 1656x900_60.00 ```

这个答案基于之前的回答,但与每个回答都有所不同:
为了在Ubuntu 20.04上引入2560x1440 QuadHD分辨率并在每次重启后保持它,我不得不将以下内容放入我的~/.profile文件中(如这里所建议)。
xrandr --newmode "2560x1440R"  241.50  2560 2608 2640 2720  1440 1443 1448 1481 +hsync -vsync
# the following device names are obtained with "xrandr --listmonitors"
xrandr --addmode eDP-1 2560x1440R # optional for me
xrandr --addmode DP-1 2560x1440R  # optional for me
xrandr --addmode HDMI-1 2560x1440R
xrandr --addmode HDMI-2 2560x1440R

请注意,第一行中的参数是通过获取得到的。
$ cvt -r 2560 1440
# 2560x1440 59.95 Hz (CVT 3.69M9-R) hsync: 88.79 kHz; pclk: 241.50 MHz
Modeline "2560x1440R"  241.50  2560 2608 2640 2720  1440 1443 1448 1481 +hsync -vsync

如@zsolt-katona在此答案中提到的。 我尝试了没有-r,但结果并不如预期。