4.2. Installing and Configuring XFree-PrefBusID

  1. Install the modified XFree server.

    • Install an already built, but not packaged, modified X server and create the necessary symbolic links. You can get such binaries from the Backstreet Ruby home page, at http://startx.times.lv.

    • Help us (as well other people using your distribution) in building an rpm or binary for your distribution (we lack systems installed with all available distributions, so we are not able to build packages for every distribution).

    • To patch and rebuild XFree from source using the instructions on the Backstreet Ruby page. Go to the Documentation section, at http://startx.times.lv (or some of the mirrors) -> Documentation -> Quick XFree.

  2. Find the BusID of your graphic cards

    NoteNote
     

    For AGP cards, something similar to "1:0:0"

    For PCI cards, something similar to "0:xx:0"

    • In most cases you will find the BusID already set in the device section of the XFree configuration file.

      (Virtually always in case XFree is configured for Xinerama.)

    • If it is missing you can use lspci, XFree86 -scanpci -verbose or other similar tools that came with your distribution.

      With lspci look for "VGA compatible controller" or other similar tools that came with your distribution.
      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]#

      With XFree86 -scanpci -verbose , or in case XFree is already running XFree86 :1 -scanpci -verbose and look for your graphic cards:
      [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. Configure XFree-PrefBusID. You have the following choices with the same effect:

    • Use the XFree config file option "SingleCard" , requires as argument a boolean value(true/false), added in patch version 3

      For use in multi-user environment set to true, for standard XFree behavior(single X server allowed) to false or comment out/ delete the line.

    • Use the XFree config file option "PrefBusID" , requires as argument a valid BusID, added in patch version 2

      For use in multi-user environment include the option with a valid BusID, for standard XFree behavior(single X server allowed) comment out or delete.

    • Use the XFree command line option -prefbusid x:x:x , requires as argument a valid BusID, initial release of the patch

      For use in multi-user environment pass the option with a valid BusID to XFree at start-up, for standard XFree behavior(single X server allowed) don't specify the option.

    NoteNote
     

    • For Mandrake and Debian users:

      the XFree configuration files are normally /etc/X11/XF86Config-4

    • For Red Hat, Gentoo, SuSE users:

      the XFree configuration files are normally /etc/X11/XF86Config

    • using the "SingleCard" option

      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  

      NoteNote
       

      The BusID have to be specified in the "Device" Section of the XFree configuration file.

      
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
      	      
    • using the "PrefBusID" option (requires as argument a valid 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 
      	    
    • using the "-prefbusid" option at XFree start-up (requires as argument a valid BusID)

      CautionCaution
       

      For the older(version 1) Preferred Bus ID XFree Server only this choice is valid.

      For example on command line
      [root@svetljo mnt]# startx -- /usr/X11R6/bin/X0 :0 -prefbusid 1:0:0 vt7
      , or from a display manager (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
      .............................. 
      and for 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