![如何将当前 Xorg 配置保存到 Xorg.conf?](https://linux22.com/image/814936/%E5%A6%82%E4%BD%95%E5%B0%86%E5%BD%93%E5%89%8D%20Xorg%20%E9%85%8D%E7%BD%AE%E4%BF%9D%E5%AD%98%E5%88%B0%20Xorg.conf%EF%BC%9F.png)
我的台式电脑上有这种情况/硬件:
- Ubuntu Linux Oneiric 11.10(32 位)
- 显示器华硕 VW222s (22'')
- 01:00.0 VGA 兼容控制器:nVidia Corporation G92 [GeForce 8800 GS](rev a2)
- NVIDIA 驱动程序版本:280.13
我的实际配置没有问题,我可以按预期实现 1680x1050。
那么问题是什么?
好吧,我买了这个 VGA 开关:http://www.mayflash.com/?Products/XBOXXBOX360/VGA002.html能够与我的台式电脑和 Xbox 共享我的显示器,但是如果我通过 VGA 适配器连接显示器,则无法识别显示器功能,并且只能获得 1024x600 的分辨率。
请注意这一点(很重要):
情况 A)如果我用这个配置启动 Ubuntu 监视器 ---> PC,然后我断开电缆并将它们连接起来以使用 VG 切换器,其配置如下:显示器 ----> VGA 切换器 ----> PC,我可以获得 1680x1050 的分辨率。
情况 B)如果我使用 VGA 切换器直接启动 Ubuntu:显示器---> VGA 切换器---> PC,则显示器功能无法识别,并且无法获得 1680x1050。
因此,由于我不想每次都插上-拔下-插上-拔下电缆(否则我就不会买 VGA 切换器了......)我的想法是强制使用正确的 xorg.conf 配置,这样我可以避免在每次启动时检测显示器并强制 Xorg 使用该配置。
问题是:
1)如何将当前 Xorg 配置保存到 xorg.conf 文件?
2) 如何强制 Xorg 在每次启动时使用 xorg.conf 配置,而无需每次都检测它?
我希望我已提供您需要的所有信息来帮助我。如果您需要了解更多信息,请告诉我。
谢谢。
ps:我已经尝试使用 nvidia-settings 工具生成的 xorg.conf,但正如你所见,它不包含有关当前 1680x1050 分辨率的任何信息http://pastebin.com/j8eBA83d
=== 更新 #1 ===
我已经尝试了你建议的方法,这是生成的 xorg.conf
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 280.13 (buildd@rothera) Thu Aug 11 17:28:49 UTC 2011
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: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Ancor Communications Inc VW222"
HorizSync 31.0 - 81.0
VertRefresh 56.0 - 75.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 8800 GS"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "TwinViewXineramaInfoOrder" "CRT-0"
Option "metamodes" "1680x1050_60 +0+0; nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
如果我断开显示器一分钟并通过 VGA 切换器连接它,分辨率是完美的,并且显示器正确设置为 1680x1050 @ 60Hz
看看这个截图:
这意味着它运行良好。那么问题是什么?问题是,如果我使用之前粘贴的生成的 xorg.conf 重新启动 Ubuntu,字体会显示得很难看,图像也会模糊。屏幕的分辨率是 1680x1050,但显示器使用的是另一种分辨率,我想它正在放大屏幕图像。
我稍后会在更新#2 中发布另一张图片,以便您亲眼看到。
=== 更新 #2 ===
我使用我发布的配置重新启动了 Ubuntu,然后……它就正常工作了!可能上次生成它时我没有在 nvidia-settings 工具中指定 60 Hz,因此该值未保存。现在它可以正常工作了。现在我迫不及待地想要我的 XBox VGA 电缆 ;)
答案1
gksu nvidia-settings
如果您可以使用 sudo来执行 Dash 运行命令模式(您可以通过按alt
+或从命令行访问),则需要使用适当的权限(提升为 root)启动 nvidia 配置工具F2
。从那里,您将能够使用 nvidia 设置面板保存到 xorg.conf 文件。
确保备份您现在正在使用的文件,这样如果您犯了错误并且界面不再工作,您可以用好文件替换坏文件。您可以使用终端手动备份或编辑文件,在那里/etc/X11/
您将找到 xorg.conf 文件。同样,您需要 root 权限,您可以使用 sudo 激活该权限,您可以sudo mv xorg.conf xorg.conf.backup1
在命令行中重命名文件。您可以执行相同的操作,但反转名称以将其重新命名。您可以使用 vim 或 pico 等程序打开文件进行编辑,方法是输入sudo pico xorg.conf
授权您在/etc/X11
文件夹中。
然后,您必须重新启动 xserver,您可以通过注销您的帐户并重新登录来执行此操作,或者unity
在终端中输入,这与 相同unity --replace
,这应该重新启动您的 X11。