backstreet ruby

XFree86 download, paching, compilation, instalation

Here I describe how to rebuild the XFree "X Windows System" for multiple independed heads.

Choosing

 Since 15-MAY-2003 kernel patch You need not to recompile XFree86. You might configure kernel to filter some unwished XFree86 PCI steering commands. Set up it with command:
$ echo "1" > /proc/bus/pci/hackvideo
 Ordinarily XFree86 for i386 architecture use native built in XFree86 functions to steer PCI. Please add necessary lines in /etc/X11/XF86Config file, which tell XFree86 to use Linux /proc filesystem interface:
Section "ServerFlags"
Option "PciOsConfig" "1"
EndSection
 After this XFree86 is ready for multiple independed heads without recopiling from source. Of course i recommend usage of "2" (idea by Kim "kill" Lilliestiena) XFree86 patch.
 You have to decide if you really want to recompile everything yourself. If You have trouble to compile this you can use the precompiled XFree86 server.

Known unpatched XFree bugs

Bug:AGP server restart will lead system hang up
Solution:Usage of gdm. Edit line in gdm.conf like this AllwaysRestartServer=false . This may help until performed system halt or reboot. halt/reboot anyway stop AGP server and may lead system hung up.

Remaking without XFree source compilation

First You must download XFree86 precompiled binaries. Find a ftp server near You:
XFree86/4.2.0/binaries/Linux-ix86-glibc22/
Official Mirror sites for XFree86 You can find in:
http://www.xfree.org/MIRRORS.txt
Next You must install XFree 4.2.0 . After install You must grab already patched and precompiled XFree86 server:
XFree86-patched.bz2
Unpack file:
$ bunzip2 XFree86-patched.bz2
Copy into Your XFree destination directory:
$ cp XFree86-patched /usr/X11R6/bin
Create some necessary symbolic links:
$ ln -s /usr/X11R6/bin/XFree86-patched /usr/X11R6/bin/X
$ ln -s /usr/X11R6/bin/XFree86-patched /usr/X11R6/bin/X0
$ ln -s /usr/X11R6/bin/XFree86-patched /usr/X11R6/bin/X1
$ ln -s /usr/X11R6/bin/XFree86-patched /usr/X11R6/bin/X2
The different server names are required for xdm. Now You can try to run one X server:
$ startx -- /usr/X11R6/bin/X0
I hope You already use 2.4.20-backstreet-ruby kernel. You can check with the command:
$ cat /proc/version
If kernel has enough video drivers and keyboard drivers and keyboards are connected to your box, you can test how a certain keyboard work with a given X server:
For 1-st keyboard:
$ startx -- /usr/X11R6/bin/X0 vt7
For 2-nd keyboard:
$ startx -- /usr/X11R6/bin/X0 vt17
For 3-rd keyboard:
$ startx -- /usr/X11R6/bin/X0 vt18
Each command starts a X server which a /dev/tty file to be used for keyboard input. In the ruby kernel all video device have a given range of /dev/tty files. If You configure into kernel with both supported video devices VGA and DUMB console and run kernel with command line dumbcon=2, You get the following /dev/tty ranges:
VGA /dev/tty1 - /dev/tty16
DUMB 1 /dev/tty17 - /dev/tty17
DUMB 2 /dev/tty18 - /dev/tty18
These ranges of /dev/tty files works corectly only if enough keyboards are connedted to your box. For each keyboard you must have compiled the needed drive into the kernel. The Keyboard drivers find the active VTs and create /dev/tty drivers for each video device - keyboard pair.
With the vtXX argument (where XX is the number from /dev/ttyXX) you can test each video - keyboard pair.
If all checks out ok read the FAQ about xdm configuration and enjoy your multiple simultanious X sessions.

XFree source compilation

Download

Get XFree source files. Sample destination:
ftp.parks.lv
You need two files:
X420src-1.tgz
X420src-2.tgz
Third X420src-3.tgz include only the documentation in PostScript. Docs are enough in two files
Grab my XFree patch:
Download XFree86 4.2.0 patch length 1030

Patching

Unpack source files:
tar xzf X420src-1.tgz
tar xzf X420src-2.tgz
Now You have directory xc . You can patch this:
patch -p0 < X420-patch
Only one file are patched:
xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c
Patching complete.

Compilation

You should edit file acording XFree docs:
xc/config/cf/site.def
Editing not necessary. Compile:
make World>&world.log
After 3 hours You can read world.log file what's happen. Go ahead:
make install >& install.log
After 30 min You can read instal.log file what's happen. Manuals installing:
make install.man >& man.log
Now You have patched XFree 4.2.0