kemaren aku dapat cd zencafe dari temen, iseng coba2 install , ternyata distro ini enteng banget, dan aplikasinya memang khusus untuk warnet, ada billingnya lagi, coba2 bikin multiseat di distro ini :

hardware yang aku pakai :
1.Pc dengan processor amd duron 1800 Mhs, memori 512, hardisk pata seagate 80 giga.
2.3 buah vga pci 2 mb, (trident dan cirrus) dan vga onboard savage
3.4 buah keyboard dan mouse ps/2
4.3 buah ps/2 to usb konverter
5.4 buah monitor crt 15 inch
6.Xephyr paket download di http://www.c3sl.ufpr.br/multiterminal/howtos/xephyr-precompiled.tar.bz2 dan xephyr.sh dapat dicopy dari http://netpatia.blogspot.com/2006/09/multiseat-iv-evdev-and-xephyr.html

Langkah-langkah

1.ubah xorg.conf dan pastikan vga udah dikenali oleh linux dengan perintah lspci | grep VGA

root[pc3]# lspci | grep VGA
00:08.0 VGA compatible controller: Cirrus Logic GD 5446
00:09.0 VGA compatible controller: Cirrus Logic GD 5446 (rev 45)
00:0a.0 VGA compatible controller: Trident Microsystems TGUI 9660/938x/968x (rev d3)

edit /etc/X11/xorg.conf menjadi seperti ini

# **********************************************************************
# This file was generated by videoconfig (Zenwalk Xorg configuration tool)
# If you changed your video card or monitor, please run videoconfig again
# from runlevel 3. Don’t modify this file yourself until you know what you do ;)
# **********************************************************************

# **********************************************************************
# Files section. This allows default font and rgb paths to be set
# **********************************************************************

Section “Files”
RgbPath “/usr/share/X11/rgb”
ModulePath “/usr/lib/X11/modules”
FontPath “/usr/share/fonts/misc”
FontPath “/usr/share/fonts/75dpi”
FontPath “/usr/share/fonts/100dpi”
FontPath “/usr/share/fonts/TTF”
FontPath “/usr/share/fonts/Type1”
EndSection

# **********************************************************************
# Module section — this section is used to specify
# which dynamically loadable modules to load.
# **********************************************************************

Section “Module”
Load “extmod”
Load “xtrap”
Load “record”
Load “dbe”
Load “dri”
Load “glx”
Load “freetype”
Load “type1”
EndSection

# **********************************************************************
# Server flags section.
# **********************************************************************

Section “ServerFlags”
# Option “NoTrapSignals”
Option “DontVTSwitch”
# Option “DontZap”
# Option “DontZoom”
# Option “DisableVidModeExtension”
# Option “AllowNonLocalXvidtune”
# Option “DisableModInDev”
# Option “AllowNonLocalModInDev”
# Option “blank time” “10” # 10 minutes
# Option “standby time” “20”
# Option “suspend time” “30”
# Option “off time” “60”

# Option “EstimateSizesAggresively” “0”

EndSection

# **********************************************************************
# DRI section
# **********************************************************************

Section “dri”
# Access to OpenGL ICD is allowed for all users:
Mode 0666
# Access to OpenGL ICD is restricted to a specific user group:
# Group 100 # users
EndSection

# **********************************************************************
# Core keyboard’s InputDevice section
# **********************************************************************
Section “InputDevice”
Identifier “Keyboard1”
Driver “kbd”
# Option “Protocol” “Xqueue”
# Option “AutoRepeat” “500 5”
# Option “Xleds” “1 2 3”
# Option “XkbDisable”

Option “XkbRules” “xorg”
Option “XkbModel” “pc105”
Option “XkbLayout” “”
# Option “XkbVariant” “us”
# Option “XkbOptions” “”
EndSection

# **********************************************************************
# Core Pointer’s InputDevice section
# **********************************************************************

Section “InputDevice”

# Identifier and driver
Identifier “Mouse1”
Driver “mouse”
Option “Protocol” “Auto”
Option “Device” “/dev/mouse”
# Option “Protocol” “Xqueue”
# Option “BaudRate” “9600”
# Option “SampleRate” “150”
# Option “Emulate3Buttons”
# Option “Emulate3Timeout” “50”
# Option “ChordMiddle”
Option “ZAxisMapping” “4 5”
EndSection

# **********************************************************************
# Monitor section
# **********************************************************************

Section “Monitor”
Identifier “Monitor1”
VendorName “Monitor Vendor”
ModelName “The monitor”
HorizSync 31.5 – 55.0
VertRefresh 60-60
Option “UseEdidFreqs” “1”

EndSection

Section “Monitor”
Identifier “Monitor2”
VendorName “Monitor Vendor”
ModelName “The monitor”
HorizSync 31.5 – 55.0
VertRefresh 60-60
Option “UseEdidFreqs” “1”

EndSection

Section “Monitor”
Identifier “Monitor3”
VendorName “Monitor Vendor”
ModelName “The monitor”
HorizSync 31.5 – 55.0
VertRefresh 60-60
Option “UseEdidFreqs” “1”

EndSection

# **********************************************************************
# Graphics device section
# **********************************************************************

# Any number of graphics device sections may be present

Section “Device”
Identifier “Videocard1”
VendorName “Cirrus Logic”
BoardName “GD 5446GD ”
Driver “cirrus”
BusID “PCI:0:8:0”

EndSection

Section “Device”
Identifier “Videocard2”
VendorName “Cirrus Logic”
BoardName “GD 5446T”
Driver “cirrus”
BusID “PCI:0:9:0”
EndSection

Section “Device”
Identifier “Videocard3”
VendorName “Trident Microsystems”
BoardName “GUI 9660/938x/968x”
Driver “trident”
BusID “PCI:0:10:0”
EndSection

# **********************************************************************
# Screen sections
# **********************************************************************

Section “Screen”
Identifier “screen1”
Device “Videocard1”
Monitor “Monitor1”

DefaultDepth 16

Subsection “Display”
Depth 8
Modes “1280×1024” “1024×768” “800×600” “640×480”
EndSubsection
Subsection “Display”
Depth 16
Modes “1280×1024” “1024×768” “800×600” “640×480”
EndSubsection
Subsection “Display”
Depth 24
Modes “1280×1024” “1024×768” “800×600” “640×480”
EndSubsection
Subsection “Display”
Depth 32
Modes “1280×1024” “1024×768” “800×600” “640×480”
EndSubsection
EndSection

Section “Screen”
Identifier “screen2”
Device “Videocard2”
Monitor “Monitor2”

DefaultDepth 16

Subsection “Display”
Depth 8
Modes “1280×1024” “1024×768” “800×600” “640×480”
EndSubsection
Subsection “Display”
Depth 16
Modes “1280×1024” “1024×768” “800×600” “640×480”
EndSubsection
Subsection “Display”
Depth 24
Modes “1280×1024” “1024×768” “800×600” “640×480”
EndSubsection
Subsection “Display”
Depth 32
Modes “1280×1024” “1024×768” “800×600” “640×480”
EndSubsection
EndSection

Section “Screen”
Identifier “screen3”
Device “Videocard3”
Monitor “Monitor3”

DefaultDepth 16

Subsection “Display”
Depth 8
Modes “1280×1024” “1024×768” “800×600” “640×480”
EndSubsection
Subsection “Display”
Depth 16
Modes “1280×1024” “1024×768” “800×600” “640×480”
EndSubsection
Subsection “Display”
Depth 24
Modes “1280×1024” “1024×768” “800×600” “640×480”
EndSubsection
Subsection “Display”
Depth 32
Modes “1280×1024” “1024×768” “800×600” “640×480”
EndSubsection
EndSection

# **********************************************************************
# ServerLayout sections.
# **********************************************************************

Section “ServerLayout”
Identifier “Simple Layout”
Screen “screen1”
Screen “screen2” RightOf “screen1”
Screen “screen3” RightOf “screen2”
InputDevice “Mouse1” “CorePointer”
InputDevice “Keyboard1” “CoreKeyboard”
EndSection

reboot pc dan pastikan setelah login setiap monitor bisa menampilkan desktop xfce

2. extract file xephyr-precompiled.tar.bz2 ke direktory /usr/local dengan perintah :
tar xjvf xephyr-precompiled.tar.bz2 -C /usr/local
3. copy file xephyr.sh ke /usr/bin tapi sebelumnya jangan lupa ubah file agar dapat di eksekusi chmod a+x xephyr.sh

4. buat file dengan isi seperti ini

model=”pc105″
layout=”us”
keycodes=”evdev”
rules=”xorg”

save di /usr/share/X11/xkb dan beri nama X1-config.keyboard, setelah itu copy file tersebut ke direktory yang sama sebanyak seat yang ada dan ganti nama masing-masing Xn-config.keyboard (n=2,3 danseterusnya)

5. buat file dengan isi seperti ini

// translation from evdev scancodes to something resembling xfree86 keycodes.

default xkb_keycodes “evdev” {
minimum = 8;
maximum = 255;

= 49;
= 10;
= 11;
= 12;
= 13;
= 14;
= 15;
= 16;
= 17;
= 18;
= 19;
= 20;
= 21;
= 22;

= 23;
= 24;
= 25;
= 26;
= 27;
= 28;
= 29;
= 30;
= 31;
= 32;
= 33;
= 34;
= 35;
= 51;
= 36;

= 66;
= 38;
= 39;
= 40;
= 41;
= 42;
= 43;
= 44;
= 45;
= 46;
= 47;
= 48;

= 50;
= 52;
= 53;
= 54;
= 55;
= 56;
= 57;
= 58;
= 59;
= 60;
= 61;
= 62;

= 64;
= 37;
= 65;
= 105;
= 108;
// Microsoft keyboard extra keys
= 133;
= 134;
= 135;

= 9;
= 67;
= 68;
= 69;
= 70;
= 71;
= 72;
= 73;
= 74;
= 75;
= 76;
= 95;
= 96;

= 107;
// = 107;
= 78;
= 127;
// = 419;

= 118;
= 110;
= 112;
= 119;
= 115;
= 117;

= 111;
= 113;
= 116;
= 114;

= 77;
= 106;
= 63;
= 82;

= 79;
= 80;
= 81;
= 86;

= 83;
= 84;
= 85;

= 87;
= 88;
= 89;
= 104;

= 90;
= 91;
// = 126;

= 191;
= 192;
= 193;
= 194;
= 195;
// = 123;

// Keys that are generated on Japanese keyboards

// alias = ; // Hankaku_Zenkaku toggle
// = 85; // Hankaku/Zenkakau toggle
// = 93; // Hiragana/Katakana toggle
// = 211; // backslash/underscore
// = 92; // Henkan
// = 94; // Muhenkan
// = 124; // Yen

// Keys that are generated on Korean keyboards

// alias = ; // Hangul Latin toggle
// alias = ; // Hangul to Hanja conversion
= 130;
= 131;

// Extended keys that may be generated on “Internet” keyboards.
// These are not standardised, hence the meaningless names.
// The entries commented out are never generated because the raw codes
// in those positions are already used for well-defined keys.

// evdev does standardize names for these though. comment them
// all out for now.

// alias = ;
// = 130;
// alias = ;
// = 132;
// alias = ;
// = 134;
// = 135;
// = 136;
// = 137;
// = 138;
// = 139;
// = 140;
// = 141;
// = 142;
// = 143;
// = 144;
// = 145;
// = 146;
// = 147;
// = 148;
// = 149;
// = 150;
// = 151;
// = 152;
// = 153;
// = 154;
// = 155;
// = 156;
// = 157;
// = 158;
// = 159;
// = 160;
// = 161;
// = 162;
// = 163;
// = 164;
// = 165;
// = 166;
// = 167;
// = 168;
// = 169;
// = 170;
// = 171;
// = 172;
// = 173;
// = 174;
// = 175;
// = 176;
// = 177;
// = 178;
// = 179;
// = 180;
// = 181;
// = 182;
// = 183;
// = 184;
// = 185;
// = 186;
// = 187;
// = 188;
// = 189;
// = 190;
// = 191;
// = 192;
// = 193;
// = 194;
// = 195;
// = 196;
// = 197;
// = 198;
// = 199;
// = 200;
// = 201;
// = 202;
// = 203;
// = 204;
// = 205;
// = 206;
// = 207;
// = 208;
// = 209;
// = 210;
// = 211;
// = 212;
// = 213;
// = 214;
// = 215;
// = 216;
// = 217;
// = 218;
// = 219;
// = 220;
// = 221;
// = 222;
// = 223;
// = 224;
// = 225;
// = 226;
// = 227;
// = 228;
// = 229;
// = 230;
// = 231;
// = 232;
// = 233;
// = 234;
// = 235;
// = 236;
// = 237;
// = 238;
// = 239;
// = 240;
// = 241;
// = 242;
// = 243;
// = 244;
// = 245;
// = 246;
// = 247;
// = 248;
// = 249;
// = 250;
// = 251;
// = 252;
// = 253;
// = 254;
// = 255;

// Codes generated for scancodes 0x59-0x5f, 0x62-0x76
// = 157; //
// = 170; //
// = 181; //
// alias = ;
// = 182; //
// = 183; //
// = 184; //
// = 189; //
// = 190; //
// = 191; //
// = 192; //
// = 193; //
// = 198; //
// = 199; //
// = 200; //
// = 201; //
// = 203; //
// = 204; //
// = 205; //
// = 206; //
// = 207; //
// alias = ; //
// = 209; //
// = 210; //
// alias = ; //
// = 219; //
// = 220; //
// = 221; //

// Solaris compatibility

// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;
// alias = ;

// Other codes never generated. The XFree86 ddx never generates
// these codes.
// Thus we can use them as fake keys
// = 93; //
// = 124; //
// = 125; //
// = 156; //
// = 127; //
// = 128; //

indicator 1 = “Caps Lock”;
indicator 2 = “Num Lock”;
indicator 3 = “Scroll Lock”;

alias = ;
};

simpan ke direktory /usr/share/X11/xkb/keycodes dan beri nama evdev

6. ubah file /etc/X11/gdm/custom.conf menjadi seperti ini

# GDM Custom Configuration file.
#
# This file is the appropriate place for specifying your customizations to the
# GDM configuration. If you run gdmsetup, it will automatically edit this
# file for you and will cause the daemon and any running GDM GUI programs to
# automatically update with the new configuration. Not all configuration
# options are supported by gdmsetup, so to modify some values it may be
# necessary to modify this file directly by hand.
#
# This file overrides the default configuration settings. These settings
# are stored in the GDM System Defaults configuration file, which is found
# at the following location.
#
# /usr/share/gdm/defaults.conf.
#
# This file contains comments about the meaning of each configuration option,
# so is also a useful reference. Also refer to the documentation links at
# the end of this comment for further information. In short, to hand-edit
# this file, simply add or modify the key=value combination in the
# appropriate section in the template below this comment section.
#
# For example, if you want to specify a different value for the Enable key
# in the “[debug]” section of your GDM System Defaults configuration file,
# then add “Enable=true” in the “[debug]” section of this file. If the
# key already exists in this file, then simply modify it.
#
# Older versions of GDM used the “gdm.conf” file for configuration. If your
# system has an old gdm.conf file on the system, it will be used instead of
# this file – so changes made to this file will not take effect. Consider
# migrating your configuration to this file and removing the gdm.conf file.
#
# If you hand edit a GDM configuration file, you can run the following
# command and the GDM daemon will immediately reflect the change. Any
# running GDM GUI programs will also be notified to update with the new
# configuration.
#
# gdmflexiserver –command=”UPDATE_CONFIG ”
#
# e.g, the “Enable” key in the “[debug]” section would be “debug/Enable”.
#
# You can also run gdm-restart or gdm-safe-restart to cause GDM to restart and
# re-read the new configuration settings. You can also restart GDM by sending
# a HUP or USR1 signal to the daemon. HUP behaves like gdm-restart and causes
# any user session started by GDM to exit immediately while USR1 behaves like
# gdm-safe-restart and will wait until all users log out before restarting GDM.
#
# For full reference documentation see the gnome help browser under
# GNOME|System category. You can also find the docs in HTML form on
# http://www.gnome.org/projects/gdm/
#
# NOTE: Lines that begin with “#” are considered comments.
#
# Have fun!

[daemon]

AutomaticLogin=
AutomaticLoginEnable=false
[security]

[xdmcp]

[gui]

[greeter]

[chooser]

[debug]

# Note that to disable servers defined in the GDM System Defaults
# configuration file (such as 0=Standard, you must put a line in this file
# that says 0=inactive, as described in the Configuration section of the GDM
# documentation.
#
[servers]
0=Hardware
1=Xephyr1
2=Xephyr2
3=Xephyr3
#4=Xephyr4

[server-Hardware]
name=Hardware
command=/usr/bin/Xorg -br -ac
handled=false
flexible=false

[server-Xephyr1]
name=Zephyr1
command=/usr/bin/Xephyr.sh -display :0.0 -xauthority /var/lib/gdm/:0.Xauth -geometry 1024×768+0+0 -kbdphys isa0060/serio0/input0 -mousephys isa0060/serio1/input0 -use-evdev -dpi 95
handled=true
flexible=false

[server-Xephyr2]
name=Zephyr2
command=/usr/bin/Xephyr.sh -display :0.1 -xauthority /var/lib/gdm/:0.Xauth -geometry 1024×768+0+0 -kbdphys usb-0000:00:10.0-1/input0 -mousephys usb-0000:00:10.0-1/input1 -use-evdev -dpi 95
handled=true
flexible=false

[server-Xephyr3]
name=Zephyr3
command=/usr/bin/Xephyr.sh -display :0.2 -xauthority /var/lib/gdm/:0.Xauth -geometry 1024×768+0+0 -kbdphys usb-0000:00:10.0-2/input0 -mousephys usb-0000:00:10.0-2/input1 -use-evdev -dpi 95
handled=true
flexible=false
# Also note, that if you redefine a [server-foo] section, then GDM will
# use the definition in this file, not the GDM System Defaults configuration
# file. It is currently not possible to disable a [server-foo] section
# defined in the GDM System Defaults configuration file.

Sebelumnya merubah file tersebut, berikan perintah cat /proc/bus/input/devices hasilnya akan seperti ini

root[pc3]# cat /proc/bus/input/devices
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name=”AT Translated Set 2 keyboard”
P: Phys=isa0060/serio0/input0
S: Sysfs=/class/input/input0
H: Handlers=kbd event0
B: EV=120013
B: KEY=4 2000000 3802078 f840d001 feffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7

I: Bus=0011 Vendor=0002 Product=0005 Version=0000
N: Name=”ImPS/2 Generic Wheel Mouse”
P: Phys=isa0060/serio1/input0
S: Sysfs=/class/input/input1
H: Handlers=mouse0 ts0 event1
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=103

I: Bus=0003 Vendor=04d9 Product=1400 Version=0110
N: Name=”HID 04d9:1400″
P: Phys=usb-0000:00:10.0-1/input0
S: Sysfs=/class/input/input2
H: Handlers=kbd event2
B: EV=120003
B: KEY=10000 7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe
B: LED=7

I: Bus=0003 Vendor=04d9 Product=1400 Version=0110
N: Name=”HID 04d9:1400″
P: Phys=usb-0000:00:10.0-1/input1
S: Sysfs=/class/input/input3
H: Handlers=kbd mouse1 ts1 event3
B: EV=7
B: KEY=1f0000 0 0 39fa d941d101 1e0000 0 0 0
B: REL=103

I: Bus=0003 Vendor=04d9 Product=1400 Version=0110
N: Name=”HID 04d9:1400″
P: Phys=usb-0000:00:10.0-2/input0
S: Sysfs=/class/input/input4
H: Handlers=kbd event4
B: EV=120003
B: KEY=10000 7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe
B: LED=7

I: Bus=0003 Vendor=04d9 Product=1400 Version=0110
N: Name=”HID 04d9:1400″
P: Phys=usb-0000:00:10.0-2/input1
S: Sysfs=/class/input/input5
H: Handlers=kbd mouse2 ts2 event5
B: EV=7
B: KEY=1f0000 0 0 39fa d941d101 1e0000 0 0 0
B: REL=103

I: Bus=0019 Vendor=0000 Product=0002 Version=0000
N: Name=”Power Button (FF)”
P: Phys=ACPI_FPB/button/input0
S: Sysfs=/class/input/input6
H: Handlers=kbd event6
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name=”Power Button (CM)”
P: Phys=PNP0C0C/button/input0
S: Sysfs=/class/input/input7
H: Handlers=kbd event7
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0019 Vendor=0000 Product=0003 Version=0000
N: Name=”Sleep Button (CM)”
P: Phys=PNP0C0E/button/input0
S: Sysfs=/class/input/input8
H: Handlers=kbd event8
B: EV=3
B: KEY=4000 0 0 0 0

sesuaikan keyboard dan mouse anda dengan mengisi -kbdphys dan -mousephys di custom.conf sesuaikan dengan Phys pada hasil cat diatas

restart dan lihat hasilnya, kalo step by step gak ada yang salah maka dengan satu komputer dapat digunakan oleh 4 user sekaligus, suatu penghematan apabila ingin menambah klien di warnet

kalo ada keyboard dan mouse yang tidak sesuai dengan monitor tinggal di pindah2 aja kok

semoga bermanfaat