玩OpenGL游戏后分辨率卡住了。

我以前习惯使用wine启动《魔兽争霸:冰封王座》时加上“-opengl”选项。进入游戏后,分辨率会改变,并在退出游戏后恢复。

但这次出现了一个问题。无论我重启电脑多少次,分辨率都无法恢复。 Ubuntu的面板和登录窗口也异常。 nvidia-settings检测到的分辨率也是“1024 x 768”,但使用这个工具似乎没有用。 NVIDIA X Server设置截图: nvidia-settings

xrandr的结果:

   Screen 0: minimum 320 x 240, current 1024 x 768, maximum 1024 x 768
   default connected 1024x768+0+0 0mm x 0mm


   1024x768       50.0* 
   800x600        51.0     52.0     53.0  
   680x384        54.0     55.0  
   640x480        56.0  
   576x432        57.0  
   512x384        58.0  
   400x300        59.0     60.0     61.0  
   320x240        62.0  

/etc/X11/xorg.conf的配置:
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 1.0  (buildd@yellow)  Fri Apr  9 11:51:21 UTC 2010


Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"

    # HorizSync source: builtin, VertRefresh source: builtin
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "CRT-0"
    HorizSync       28.0 - 55.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Entry Graphics"
EndSection

Section "Screen"

# Removed Option "metamodes" "1024x768 +0+0"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "TwinViewXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "1024x768_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
1个回答

你的xorg.conf文件中包含了"metamodes"选项。删除那一行,如果你退出并重新登录,应该就恢复正常了。
为了获得最佳结果(或者如果那个方法不起作用),删除你的xorg.conf文件,重启你的计算机(在启动时按ESC键以获取引导菜单),进入恢复模式,选择root终端,然后输入"nvidia-xconfig"并按回车键。这样应该会重置你的xorg.conf文件。
现在输入"reboot"并按回车键重新启动你的系统,一切应该都好了。

@Roland Taylor 在我评论(或删除)“metamodes”行之后,退出登录后,我的屏幕似乎没有任何变化。所以我删除了配置文件“xorg.conf”,进入恢复模式,使用root权限,输入nvidia-xconfig,重新启动进入我的GNOME桌面,一切都恢复到默认设置,分辨率更改为“600 x 300”(可能不准确,但大致是这个尺寸)。顺便说一下:我创建了xorg.conf的备份。 - kit.yang
O.O?你是否在使用最新的驱动程序,是不是旧卡?这个有点不对劲 O.o... 我从未遇到过NVIDIA驱动程序会这样 O.o。等我有机会时,我会查看命令行选项,看看还有哪些其他选项可以使用。 - RolandiXor
谢谢,啊,之前它运行得很好。所以可能不是驱动程序或显卡的问题。重新安装ubuntu-desktop是最后的选择可能性。 - kit.yang
@ Roland Taylor 啊,重新安装了我的Ubuntu之后,我终于找到了困扰我的问题。最近连接电脑机箱的显示线路接触不良。因此,xorg.conf被默认替换了。通过使用 nvdia-xconfig,问题已经得到解决。谢谢! - kit.yang
太好了,问题解决了 :D - RolandiXor
1-1:你不需要重新启动来更改分辨率,因为nvidia-settings允许你进行更改并应用它们。Nvidia会记住这些设置,以便在下次登录时使用,所以没有必要仅仅因为分辨率的变化而覆盖xorg.conf文件。这就是nvidia-settings的全部目的。 - user2817
这就是一个让你给我点踩的理由吗?顺便说一下,我也有一块英伟达显卡。我知道它是怎么工作的。 - RolandiXor
1如果你也有nVidia的话,为什么不直接描述如何使用nvidia-settings来更改分辨率呢? - user2817
之所以选择nvidia-settings,简单来说是因为它有时候会出现问题 - 而他的具体情况需要使用它。另外,你现在应该停止骚扰我了。这个问题早已解决,而且无论我给他什么解决方案,都明显有效。现在请离开。 - RolandiXor
我只是在告诉你,使用nvidia-settings已经可以解决问题了,尤其是因为我能够重现这个情景。很抱歉,我无法再取消投票了,它已经被锁定了。 - user2817

  • 相关问题