lsstarboy 发表于 2007-09-07 20:17

FreeBSD+KDE下的双屏显示

一、适用条件:
      用单独的两块显卡来实现双屏显示,像ATI、nVidia和Matrox的双头显示技术,可以用显卡本身的驱动来解决,具体的操作,在各个驱动的man上都有。
      但是,有些显卡也可以按照本文的说明来做,前提是把同一个显卡的device节写两遍。
二、硬件准备
      两个显卡,前提是你的机器必须可以安装上。典型的配置为:一个AGP,一个PCI或两个PCI。
      如果机器上有自带的硬显卡,也可以再加上一个AGP,实现两个AGP。(很多服务器主板上都带Rage XL,这个就可以实现两个AGP的显卡。)
      据说965G以上的主板自带的显卡也可以实现双显卡,由于没有条件测试,不知道具体结果。但是,945G以下的自带显卡不能用再加一块显卡的方法实现双显卡。因为一旦检测到主板上接有显卡,整合的显卡会被自动屏蔽掉。
      现在有很多显卡带VGA和DVI输出,可以用一个DVI-VGA的转换器来实现双屏显示。
三、双显示器的三种模式
      双显示器有三种基本的显示模式,虽然有很多资料把它说为是两种,但是我觉得把它分为三种更好接受一些。
      1、独立模式:两个显示器独立,互不影响。也就是说,一个显示器上的窗口,不可以移动到另一个显示器上去。
      2、扩展模式:两个显示器扩展为一个大的显示器。一个窗口,可以移动或扩展到另一台显示器上去。windows中叫做“扩展桌面”。
      3、克隆模式:两个显示器上的内容完全一致。如果用来做演示,那么通常就是用的这种模式,一个用来接投影机,一个用来本地显示,供演讲者使用。
四、实现原理
      对于独立模式和克隆模式,在xorg.conf里面,配置两个显卡,两个屏幕即可;对于扩展模式,还要加上一个“Xinerama”的选项。
五、配置实例
    以下配置实例的硬件:一个主板自带的Rage XL和一个Geforce 440 64M显卡,加上两个Philips 107s6显示器。
   
   1、独立模式:
   
Section "ServerLayout"
    Identifier   "X.org Configured"
    Screen      0"Screen0" 0 0
    Screen      1"Screen1" LeftOf "Screen0"
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
    RgbPath      "/usr/X11R6/lib/X11/rgb"
    ModulePath   "/usr/X11R6/lib/modules"
    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath   "/usr/X11R6/lib/X11/fonts/TTF/"
    FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"
    FontPath   "/usr/X11R6/lib/X11/fonts/CID/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection
Section "Module"
    Load"dbe"
    Load"dri"
    Load"extmod"
    Load"glx"
    Load"record"
    Load"xtrap"
    Load"freetype"
    Load"type1"
EndSection
Section "InputDevice"
    Identifier"Keyboard0"
    Driver      "kbd"
EndSection
Section "InputDevice"
    Identifier"Mouse0"
    Driver      "mouse"
    Option      "Protocol" "auto"
    Option      "Device" "/dev/psm0"
    Option      "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
    Identifier   "Monitor0"
    VendorName   "PHL"
    ModelName    "PH107E/V/S/G6"
    HorizSync    30.0 - 71.0
    VertRefresh50.0 - 160.0
    Option      "DPMS"
EndSection
Section "Monitor"
    Identifier   "Monitor1"
    VendorName   "PHL"
    ModelName    "PH107E/V/S/G6"
    HorizSync    30.0 - 71.0
    VertRefresh50.0 - 160.0
    Option      "DPMS"
EndSection
Section "Device"
    Identifier"Card0"
    Driver      "ati"
    VendorName"ATI"
    BoardName   "Rage XL"
    ChipSet   "ati"
    ChipId      0x4752
    ChipRev   0x27
    BusID       "PCI:0:13:0"
EndSection
Section "Device"
    Identifier"Card1"
    Driver      "nv"
    VendorName"nVidia Corporation"
    BoardName   "NV11 "
    BusID       "PCI:1:0:0"
EndSection
Section "Screen"
    Identifier "Screen0"
    Device   "Card0"
    Monitor    "Monitor0"
    DefaultDepth 24
   
    SubSection "Display"
      Viewport   0 0
      Depth   24
      Modes    "1024x768"
    EndSubSection
EndSection
Section "Screen"
    Identifier "Screen1"
    Device   "Card1"
    Monitor    "Monitor1"
    DefaultDepth    24
    SubSection "Display"
      Viewport   0 0
      Depth   24
      Modes    "1024x768"
    EndSubSection
EndSection
       要点:
         1、在配置文件里,要配置两个device,两个Monitor,两个Screen。
         2、在ServerLayout节中,需要说明两个显示器之间的关系,用
    Screen      1"Screen1" LeftOf "Screen0"            
            来说明,在本例中,第二个显示器在第一个显示器左边。
   
   2、扩展模式:
Section "ServerLayout"
    Identifier   "X.org Configured"
    Screen      0"Screen0" 0 0
    Screen      1"Screen1" LeftOf "Screen0"
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection
Section "ServerFlags"
    Option "Xinerama" "true"
EndSection
      说明:1)为了减少篇幅,只写改变的节。
            2)桌面扩展是用“Xinerama”扩展来实现的,这个扩展不需要单独安装,是xorg自带的一个模块。
            3)扩展桌面的操作中,程序默认打开的显示器在最左边的显示器上,即使你把第二个显示器设置为左边的显示器。
            4)扩展桌面中,第二个显示器没有任务栏。
   3、克隆模式:
Section "ServerLayout"
    Identifier   "X.org Configured"
    Screen      0"Screen0" 0 0
#    Screen      1"Screen1" LeftOf "Screen0"
   
Screen      1"Screen1" Relative "Screen0" 0 0
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection
       说明:1)为了独立模式比较,保留了独立模式的配置,并把它置为注释。
             2)在xorg.conf的man里面,没有提到Clone模式,但是,你以把第二个显示器的像素值和第一个显示器的像素值设置得一样,这样就可以达到Clone的效果。   
             3)Relative后面的数字,实际上你可以根据显示器的不同,来自行设置上下左右。还可以设置为不整屏,比如:768,200。
       六、几个没解决的问题:
          1)独立模式中,第二个屏幕的桌面语言一直为英文。但是菜单和其它的都可以显示汉字。
          2)独立模式中,任务栏大小设置之后,要重启kde后才起作用。

          3)扩展模式中,任务栏没法向左收起。
          4)双屏设置,包括三种模式,有时候会搞乱locale设置。本人做的时候,最好没办法,只好把主目录下的.kde全删除掉,又重新配置的字体等。
          5)在扩展模式中,最大化窗口只能最大化到一个显示器。但是,即使最大化的窗口,也可以拖到另一个显示器。
            注:在G400系列的双头显卡中,可以配置到最大化到两个显示器。其它的显卡不详。
      七、总结:
          其实在FreeBSD中,除了不支持的ATI等显卡之外,配置双屏还是比较轻松的。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/38866/showart_376672.html

ulovko 发表于 2012-07-05 14:59

不错,感谢分享 ^_^ :emn31:
页: [1]
查看完整版本: FreeBSD+KDE下的双屏显示