4.2. 安装和配置 XFree-PrefBusID

  1. 安装修改后的 XFree 服务器。

    • 安装已构建但未打包的修改后的 X 服务器,并创建必要的符号链接。您可以从 Backstreet Ruby 主页获取此类二进制文件,网址为 http://startx.times.lv

    • 帮助我们(以及其他使用您的发行版的人)为您的发行版构建 rpm 或二进制文件(我们缺少安装了所有可用发行版的系统,因此我们无法为每个发行版构建软件包)。

    • 要使用 Backstreet Ruby 页面上的说明从源代码修补和重建 XFree。转到文档部分,网址为 http://startx.times.lv(或某些镜像) -> 文档 -> Quick XFree。

  2. 查找您的显卡的 BusID

    Note注意
     

    对于 AGP 显卡,类似于 "1:0:0"

    对于 PCI 显卡,类似于 "0:xx:0"

    • 在大多数情况下,您会在 XFree 配置文件的设备部分找到已设置的 BusID。

      (几乎总是这样,如果 XFree 配置为 Xinerama。)

    • 如果它丢失了,您可以使用 lspciXFree86 -scanpci -verbose 或您的发行版附带的其他类似工具。

      使用 lspci 查找 “VGA 兼容控制器” 或您的发行版附带的其他类似工具。

      root@svetljo mnt]# lspci | grep "VGA compatible controller"
      00:0d.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 MX 420] (rev a3)
      01:00.0 VGA compatible controller: ATI Technologies Inc Radeon RV200 QW [Radeon 7500]
      [root@svetljo mnt]#

      使用 XFree86 -scanpci -verbose,或者如果 XFree 已经在运行,则使用 XFree86 :1 -scanpci -verbose 并查找您的显卡

      [root@svetljo mnt]# XFree86 :1 -scanpci -verbose
      ......
      (0:13:0) unknown card (0x1462/0x8852) using a nVidia Corporation NV17 [GeForce4 MX 420]
      ......
      (1:0:0) unknown card (0x1002/0x0f2a) using a ATI Technologies Inc Radeon RV200 QW [Radeon 7500]

  3. 配置 XFree-PrefBusID。您有以下具有相同效果的选择:

    • 使用 XFree 配置文件选项 "SingleCard",需要一个布尔值(true/false)作为参数,在补丁版本 3 中添加

      对于在多用户环境中使用,设置为 true;对于标准 XFree 行为(允许单个 X 服务器),设置为 false 或注释掉/删除该行。

      Note

      此功能包含在 Mandrake 的 xorg-x11 软件包和 Debian Sid XFree86 软件包中。

    • 使用 XFree 配置文件选项 "PrefBusID",需要一个有效的 BusID 作为参数,在补丁版本 2 中添加

      对于在多用户环境中使用,包含带有有效 BusID 的选项;对于标准 XFree 行为(允许单个 X 服务器),注释掉或删除。

      Note

      此功能包含在 Mandrake 的 xorg-x11 软件包和 Debian Sid XFree86 软件包中,但选项名称已更改为 "IsolateDevice"

    • 使用 XFree 命令行选项 -prefbusid x:x:x,需要一个有效的 BusID 作为参数,补丁的初始版本

      对于在多用户环境中使用,在启动时将带有有效 BusID 的选项传递给 XFree;对于标准 XFree 行为(允许单个 X 服务器),请勿指定该选项。

      Note

      此功能包含在 Mandrake 的 xorg-x11 软件包和 Debian Sid XFree86 软件包中,但选项名称已更改为 -isolateDevice x:x:x

    Note注意
     

    • 对于 Mandrake 和 Debian 用户

      XFree 配置文件通常是 /etc/X11/XF86Config-4

    • 对于 Red Hat、Gentoo、SuSE 用户

      XFree 配置文件通常是 /etc/X11/XF86Config

    • 使用 "SingleCard" 选项

      Section "ServerLayout"
              Identifier     "X0"
              Screen      0  "Screen0" 0 0
              InputDevice    "Mouse0" "CorePointer"
              InputDevice    "Keyboard0" "CoreKeyboard"
              Option         "SingleCard" "true"
      EndSection 
      Section "ServerLayout"
              Identifier     "X1"
              Screen      0  "Screen1" 0 0
              InputDevice    "Mouse1" "CorePointer"
              InputDevice    "Keyboard0" "CoreKeyboard"
              Option         "SingleCard" "true"
      EndSection  

      Note注意
       

      BusID 必须在 XFree 配置文件的 "Device" 部分中指定。

      Section "Device"
          Identifier  "nv"
          VendorName  ""
          BoardName   ""
          Driver      "nvidia"
          # Clock lines
      
          # Uncomment following option if you see a big white block
          # instead of the cursor!
          #    Option      "sw_cursor"
          Option	"NoLogo" "On"
          BusID       "PCI:0:13:0"
      EndSection
      	      
    • 使用 "PrefBusID/IsolateDevice" 选项(需要有效的 BusID 作为参数)

      Section "ServerLayout"
              Identifier     "X0"
              Screen      0  "Screen0" 0 0
              InputDevice    "Mouse0" "CorePointer"
              InputDevice    "Keyboard0" "CoreKeyboard"
              Option "PrefBusID" "1:0:0"
      EndSection 
      Section "ServerLayout"
              Identifier     "X1"
              Screen      0  "Screen1" 0 0
              InputDevice    "Mouse1" "CorePointer"
              InputDevice    "Keyboard0" "CoreKeyboard"
              Option "PrefBusID" "0:13:0"
      EndSection 
      	    

      或对于 Debian Sid 的 XFree86 和 Mandrake 的 xorg-x11

      Section "ServerLayout"
              Identifier     "X0"
              Screen      0  "Screen0" 0 0
              InputDevice    "Mouse0" "CorePointer"
              InputDevice    "Keyboard0" "CoreKeyboard"
              Option "IsolateDevice" "1:0:0"
      EndSection 
      Section "ServerLayout"
              Identifier     "X1"
              Screen      0  "Screen1" 0 0
              InputDevice    "Mouse1" "CorePointer"
              InputDevice    "Keyboard0" "CoreKeyboard"
              Option "IsolateDevice" "0:13:0"
      EndSection 
      	    
    • 在 XFree 启动时使用 "-prefbusid" 选项(需要有效的 BusID 作为参数)

      或对于 Debian Sid 的 XFree86 和 Mandrake 的 xorg-x11,请改用 "-isolateDevice"

      Caution注意
       

      对于较旧的(版本 1)首选总线 ID XFree 服务器,仅此选择有效。

      例如在命令行中

      [root@svetljo mnt]# startx -- /usr/X11R6/bin/X0 :0 -prefbusid 1:0:0 vt7
      ,或从显示管理器 (gdm)
      ..............................
      # Definition of the standard X server.
      [server-Standard]
      name=Standard server
      command=/usr/X11R6/bin/X0 :0 -layout first-Xserver -deferglyphs 16 -ac -prefbusid 1:0:0 vt7
      flexible=true
      
      [server-Second]
      name=Second server
      command=/usr/X11R6/bin/X1 :1 -layout second-Xserver -deferglyphs 16 -prefbusid 0:13:0 vt17
      flexible=true
      .............................. 
      以及对于 xdm/kdm
      :0 local /bin/nice -n -10 /usr/X11R6/bin/X0 :0 -deferglyphs 16 -prefbusid 1:0:0 vt7
      :1 local /bin/nice -n -10 /usr/X11R6/bin/X1 :1 -xf86config /etc/X11/XF86Config-4.TNT2 -prefbusid 0:13:0 vt17