Ubuntu 8.04 设置笔记本电脑双显示器

目录:
1、设置显示分辨率及 xrandr 介绍
2、GNOME下切换双屏的方法
3、关于双屏下 GNOME面板/ wine / 阿里旺旺的一些问题及解决

正文:
1、设置显示分辨率及 xrandr 介绍
   X Windows 中有一个显示分辨率的概念,在默认情况下,这个显示分辨率为 max*max ,max等于你的所有连接上的显示器中最大分辨率中的最大值。例如我的笔记本液晶屏最大分辨率为 1024*768,外接显示器最大分辨率为 1280*1024,则默认的显示分辨率为 1280*1280。如果我设置左右双屏且使用最大分辨率,那么总显示分辨率就会达到2304*1024,达到超出系统默认的大小。在这种情况下强行设置双屏幕,就会导致 X 进入超低分辨率,结果不得不手工重设 xrog.conf 来恢复。
  为了更好检测这个问题,我们需要用到 xrandr 这个软件,xrandr系统已经自带,如果没有请安装x11-xserver-utils:sudo apt-get install x11-xserver-utils 。
  不带参数执行xrandr能够列出当前的显示设备和每个设备支持的模式。Screen代表了总显示区域,VGA代表显示器,LVDS代表笔记本液晶屏。

Screen 0: minimum 320 x 200, current 1280 x 768, maximum 1280 x 1280
 VGA connected (normal left inverted right x axis y axis)
    1280x1024      75.0 +   69.8     59.9  
    1024x768       75.1     70.1     60.0  
    800x600        72.2     75.0     60.3  
    640x480        75.0     72.8     65.4     60.0  
    720x400        70.1  
 LVDS connected 1024x768+0+0 (normal left inverted right x axis y axis) 246mm x 184mm
    1024x768       50.0*+   60.0     40.0  
    800x600        60.3  
    640x480        60.0     59.9



  系统默认显示分辨率为 1280x1280,而在左右扩展双屏情况下VGA和LVDS支持的最小分辨率加在一起都超过这个数字,当然会导致 X 进入超低分辨率了。如果感兴趣,可以用以下命令尝试把外接显示器打开并设置为右侧扩展屏幕(不用sudo)来验证一下: xrandr --output VGA --auto --right-of LVDS
系统会出错,提升说屏幕大小超出限制。

  解决方法:手工修改xorg.conf,在Section "Screen"中添加一行 Virtual 2304 1024

Section "Screen"
    Identifier "Default Screen"
    Monitor "Configured Monitor"
    Device "Configured Video Device"
    SubSection "Display"
       Virtual 2304 1024
    EndSubSection
 EndSection



注意:Ubuntu 8.04中的xorg.conf已经非常精简,Subsection "Display" 可能要自己添加,别忘记 EndSubSection

我设置好以后的xrandr命令输入如下:

$ xrandr
 Screen 0: minimum 320 x 200, current 1024 x 768, maximum 2304 x 1024
 VGA connected (normal left inverted right x axis y axis)
 ....
 LVDS connected 1024x768+0+0 (normal left inverted right x axis y axis) 246mm x 184mm
 ....



  现在应该没问题了,用刚才的命令打开双屏后,

$ xrandr
 Screen 0: minimum 320 x 200, current 2304 x 1024, maximum 2304 x 1024
 VGA connected 1280x1024+1024+0 (normal left inverted right x axis y axis) 340mm x 270mm
 ...
 LVDS connected 1024x768+0+0 (normal left inverted right x axis y axis) 246mm x 184mm



  其实这个显示分辨率完全可以设置高一些,比如我就设置成4000 x 2000,如果连接到最大分辨率为1920x1200的外接显示器,也不用重新设置 xorg.conf 了。

  xrandr 命令行可以很方便地切换双屏,常用方式如下,其他的可以自己探索:
xrandr --output VGA --same-as LVDS --auto
         打开外接显示器(最高分辨率),与笔记本液晶屏幕显示同样内容(克隆)
xrandr --output VGA --same-as LVDS --mode 1024x768
         打开外接显示器(分辨率为1024x768),与笔记本液晶屏幕显示同样内容(克隆)
xrandr --output VGA --right-of LVDS --auto
         打开外接显示器(最高分辨率),设置为右侧扩展屏幕
xrandr --output VGA --off
          关闭外接显示器
xrandr --output VGA --auto --output LVDS --off
        打开外接显示器,同时关闭笔记本液晶屏幕(只用外接显示器工作)
xrandr --output VGA --off --output LVDS --auto
        关闭外接显示器,同时打开笔记本液晶屏幕 (只用笔记本液晶屏)
(最后两种情况请小心操作,不要误把两个屏幕都关掉了。。。。)

2、GNOME下切换双屏的方法
   用命令行毕竟不方便,幸好我们还有许多 X 下的工具可用:
  GNOME 中自带的“监视器屏幕分辨率设置”软件功能很强大(系统->首选项->屏幕分辨率), 打开和关闭第二个监视器的办法是调整它的分辨率,取消“克隆”就可以设置成扩展屏幕,还可以通过拖动图标位置调整双屏时两个屏幕的相对位置。
     Image
  grandr,则是一个图形界面的xrandr前端,功能与前一个软件各有千秋。安装方法:sudo apt-get install grandr
     Image
   另外还有两个可以添加到GNOME面板上的快速切换分辨率(但不能切换双屏)的插件,分别是 gnome-randr-applet 和 resapplet,如果你需要可以尝试一下。
   对于 Nvidia显卡,据说可以安装 nvidia-settings (sudo apt-get install nvidia-settings),但我没试验过。

3、关于双屏下 GNOME面板/ wine / 阿里旺旺的一些问题及解决
   右侧扩展屏幕时,GNOME面板会自动跑到外接显示器上去,可以通过拖动把它放回到笔记本液晶屏上来。
    发现一个有趣的现象,用wine执行的程序,似乎只能在最初显示的那个屏幕上显示,拖到另外一个屏幕上就无法正常渲染了。
    关于在双屏情况下使用阿里旺旺5.7,有一个注意事项,启动扩展双屏后,再启动阿里旺旺会看不到图标,在托盘区只看到一个空白的图标,无法启动菜单,所以最好先启动阿里旺旺,然后再启动扩展双屏。(如果已经启动了双屏,那么可以先把双屏模式变成非扩展模式,然后启动旺旺,再打开扩展模式即可)。命令如下:
xrandr --output VGA --same-as LVDS
启动旺旺
xrandr --output VGA --right-of LVDS


-----------------------------------------------------------------------------------------------------------------------------------

脑袋又开始发热,不过还是很爽滴,尽管两个显示器分辨率差别很大,但从此查文档写东西窗口翻来覆去的日子过去了。这里记录一下在Ubuntu下面设置双显示器的配置文件,xorg.conf。

我的配置文件是针对笔记本单显卡的,我的显卡是Ati的。不过双显卡的类似,举一反三,这里放的只是需要改动的段落。

Section "Device"
 Identifier "ATI"
 Driver "ati"
 Screen 0
 BusID "PCI:1:0:0"
 EndSection

 Section "Device"
 Identifier "Card1"
 Driver "ati"
 Screen 1
 BusID "PCI:1:0:0"
 EndSection

 Section "Monitor" #对外置的显示器新加的,原来的不变
 Identifier "MonExt"
 Option "DPMS"
 EndSection

 Section "Screen" #对外置的显示器新加的,原来的不变
 Identifier "Screen1"
 Device "Card1"
 Monitor "MonExt"
 DefaultDepth 24
 SubSection "Display"
 Depth 24
 Modes "1024x768"
 EndSubSection
 EndSection

 Section "ServerLayout"
 Identifier "DualHead"
 Screen "Default Screen" 0 0
 Screen "Screen1" RightOf "Default Screen"
 InputDevice "Generic Keyboard"
 InputDevice "Configured Mouse"
 InputDevice "Synaptics Touchpad"
 EndSection

 #如果只是扩展屏幕,也就是窗口可以拖到另外一个屏幕,就加上下面这段;如果需要两个独立的显示就去掉。
 Section "ServerFlags"
 Option "Xinerama" "true"
 EndSection



刚刚登录Windows, 发现Ati的win下面的驱动已经内置了多显示器支持, Extend模式.


-----------------------------------------------------------------------------------------------------------------------------------

由于我用的是笔记本.屏幕有点少.所以有的时候想外接显示器来显示更大的区域,如果是在Windows下那可是很方便的事情.只需要按一下Fn F4就可以了.但现在在Ubuntu Linux下.就变成了一件有点麻烦的事情了,以前没找到好的方法,现在参考了一些文档,再加上804对我的本本的硬件可以说是完全兼容,所以现在要实现这个功能也是一件很容易的事情了.

http://www.thinkwiki.org/wiki/Xorg_RandR_1.2
上面的是参考文档,虽然是全部是E文,但意思也不是很难理解,仔细看了几遍,针对我的硬件的情况,几条命令就配置好了!

首先把显示器接到VGA口上现开机(如果已经进入系统了那就reboot一下)

这时候应该外接的显示器跟本本的屏幕是镜像关系的.

然后在终端下输入命令: sudo dpkg-reconfigure -phigh xserver-xorg 运行该命令后会自动对 /etc/X11/xorg.conf 的文件进行backup,备份文件为加上当时时间为文件的后缀,如果将来有需要的可以恢复回去的.至此,在我的机器上面外接显示器基本上完成了,剩下的就只是利用命令来对显示的效果进行控制了.

xrandr --output VGA --off(auto) :这个命令是关闭(开启)外接的显示器.

xrandr --output LVDS --off(auto) :这个命令是关闭(开启)本本的显示器.

xrandr --output VGA --auto --right-of LVDS :这个命令是令外接的VGA显示器扩展到本本的屏幕的右边,与windows下的扩展的效果是一样的.但要注意一点的就是要想外接的显示器扩展到本本屏幕的右边必须是外接的显示器的分辨率比本本屏幕的低,否则就变成分辨率低的成扩展,无论你的命令是什么!

基本上需要用到的命令就是这些,如果还需要更深入的控制的,可以参考那个网址.


--------------------------------------------------------------------------------------------------------------------------------------------

问题描述:

我的本本是06年购入的ThinkPad T60,液晶屏是14.1" 1400x1050,外接AOC F19 19"液晶显示器(18.5",16:9)。

按照上面的教程,在命令行键入:
$ xrandr
却只能找到默认显示器。

在“系统->首选项->屏幕分辨率”中也只能找到笔记本的液晶屏。

重启系统后,外接显示器工作在镜像状态下,但是在系统中依然找不到外接显示器。

解决方法:

启动计算机时,按F1进入BIOS。

选择“Config->Display->Boot Display Device”,设置为“VGA+LCD”。(之前设置为“LCD”)。

保存设置,重启,进入系统后,在“系统->首选项->屏幕分辨率”中即可看到外接显示器。

这个时候就可以分别设置两个显示器的分辨率,和左右位置了。

问题圆满解决!