2. Installing and Configuring XFree-PrefBusID

  1. Install the modified XFree server.

    You probably only need already-built binaries. If there are packages for your distribution you can install them. If not, you have 3 more possibilities:

    • 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

    Note

    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.

      Note

      This functionality is inlcuded the xorg-x11 packages for Mandrake and in Debian Sid XFree86 packages.

    • 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.

      Note

      This functionality is inlcuded the xorg-x11 packages for Mandrake and in Debian Sid XFree86 packages, but the option name is changed to IsolateDevice

    • 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.

      Note

      This functionality is inlcuded the xorg-x11 packages for Mandrake and in Debian Sid XFree86 packages, but the option name is changed to -isolateDevice x:x:x

    Note

    • 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

    Some examples:

    • 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  

      Note

      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/IsolateDevice 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 
      	    

      or for Debian Sid's XFree86 and Mandrake's 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 
      	    
    • using the -prefbusid option at XFree start-up (requires as argument a valid BusID)

      or for Debian Sid's XFree86 and Mandrake's xorg-x11 use -isolateDevice instead

      Caution

      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