Satu komputer untuk banyak pengguna (multiseat)

Apa itu multiseat?

Konfigurasi Multiseat, multi-station atau multiterminal adalah satu komputer yang mampu melayani banyak pengguna dalam satu waktu yang bersamaan. Konfigurasi ini termasuk satu monitor, keyboard dan mouse untuk setiap penggunanya .

Spek ujicoba Celeron 1,7 Ghz, 256 MB memory, 6 GB harddisk, satu vga onboard S3 (lupa serinya) ama satu vga SiS 6326 PCI. Terus juga pake dua monitor LG, satu keyboard dan mouse ps/2, ama satu keboard dan mouse usb ( makin bagus spek komputer masternya,makin bagus)

Tetorial ngambil dari sini

Untuk multiseat, yang dibutuhkan adalah :

* 1 PC dengan harddisk, prosesor dan memori yang mencukupi untuk N client. Untuk harddisk dan prosesor yang biasa aja udah cukup paling. Untuk memori sendiri, lebih baik jika diperhitungkan N*128 (atau 256) + 64 (atau 128). Dimana setiap seat dapat diberikan 128/256MB tergantung keinginan kita, dan ditambahkan sedikit memori untuk share keduanya… Tapi perhitungan memori ini ga ada teknisnya, cuma perkiraan aja …
* N buah vga card, dimana jika menggunakan vga yang memiliki dual output VGA + DVI, 1 vga tersebut bisa untuk 2 monitor. Cukup dengan mendefinisikan vga tersebut dengan PCI ID yang sama pada dua seat namun dibedakan dari opsi “Screen X” pada Section “Device” untuk masing-masing seat.
* port USB yang cukup (1 usb untuk 1 user dengan USB-to-PS/2 yang dilengkapi USB-extended-cable agar dapat meletakkan lebih jauh dari PC/CPU). Bisa dengan USB2.0 PCI Card atau usb-hub.
* N buah keyboard dan N buah mouse tentunya… Kalau menggunakan mouse/keyboard usb, maka port usb yang diperbanyak. Jika menggunakan PS/2 bisa dengan menggunakan USB-to-PS/2 .
* N buah monitor tentunya Jika antara seat dengan CPU/PC agak jauh dan kabel monitor/vga tidak dapat menjangkau, bisa menggunakan kabel extended VGA yang bervariasi mulai dari 1,5m s/d 50m (USB nyampe gak ya sampe 50m??).

Pertama, jelas install dulu linux (coba pake mint-XFCE 3.0 Cassandra, menggunakan X.org 7.2) di komputer tersebut dengan 1 vga dulu (coba langsung dua ga masuk-masuk ke X), setelah selesai baru dipasang vga, mouse dan keyboard tambahannya. Abis itu di test xineramanya jalan apa engga. Kalau jalan, kemungkinan multiseatnya berhasil nanti, tapi kalau ga jalan, silakan tanya om google. hehehe… Setelah dipastikan xinerama bisa jalan, baru di re-konfigurasi xorg.conf. Tutorial lengkapnya liat aja disini. Kalo males atau bingung, jalanin aja

administrator@aindra# X -configure

untuk autoprobe device yang ada sekaligus dibuatin xorg.conf.new, nanti abis itu baru diedit sesuai kebutuhan. Ini contoh konfigurasi xorg.conf;

Section "ServerLayout"
Identifier "alltogether"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Mouse0" "CorePointer"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection

Section "ServerFlags"
Option "DontVTSwitch"
Option "DefaultServerLayout" "alltogether"
Option "HandleSpecialKeys" "Always"
EndSection

Section "Files"
RgbPath "/etc/X11/rgb"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Module"
Load "extmod"
Load "glx"
Load "dbe"
Load "record"
Load "xtrap"
Load "GLcore"
Load "type1"
EndSection

Section "ServerLayout"
Identifier "Seat0"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "evdev"
Option "Device" "/dev/input/event1"
Option "XkbModel" "evdev"
Option "XkbLayout" "us"
EndSection

Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "ImPS/2"
Option "Device" "/dev/input/mouse2"
Option "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
Identifier "Monitor0"
Option "DPMS"
EndSection

Section "Device"
Identifier "Card0"
Driver "sis"
VendorName "Silicon Integrated Systems [SiS]"
BoardName "65x/M650/740 PCI/AGP VGA Display Adapter"
BusID "PCI:1:0:0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 16
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1024x768"
EndSubSection
EndSection

Section "ServerLayout"
Identifier "Seat1"
Screen 1 "Screen1" 0 0
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection

Section "InputDevice"
Identifier "Keyboard1"
Driver "evdev"
Option "Device" "/dev/input/event4"
Option "XkbModel" "evdev"
Option "XkbLayout" "us"
EndSection

Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "ImPS/2"
Option "Device" "/dev/input/mouse1"
Option "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
Identifier "Monitor1"
Option "DPMS"
EndSection

Section "Device"
Option "Accel" "False"
VideoRAM 4096
Option "SWCursor" "True"
Identifier "Card1"
Driver "sis"
VendorName "Silicon Integrated Systems [SiS]"
BoardName "86C326 5598/6326"
BusID "PCI:0:9:0"
EndSection

Section "Screen"
Identifier "Screen1"
Device "Card1"
Monitor "Monitor1"
DefaultDepth 16
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1024x768"
EndSubSection
EndSection

Yang perlu di ingat, untuk mouse ama keyboardnya, biar tau dia mouse berapa dan event berapa, liat nilai eventnya pada bagian handlers di /proc/bus/input/devices. Contoh nilai event , silahkan dicocokkan ama konfigurasi X diatas, biar ngerti…;

administrator@aindra:~$ cat /proc/bus/input/devices | grep -A3 ‘N:’
N: Name=”Macintosh mouse button emulation”
P: Phys=
S: Sysfs=/class/input/input0
H: Handlers=mouse0 event0 ts0

N: Name=”AT Translated Set 2 keyboard”
P: Phys=isa0060/serio0/input0
S: Sysfs=/class/input/input1
H: Handlers=kbd event1

N: Name=”GenPS/2 Genius Mouse”
P: Phys=isa0060/serio1/input0
S: Sysfs=/class/input/input2
H: Handlers=mouse1 event2 ts1

N: Name=”PC Speaker”
P: Phys=isa0061/input0
S: Sysfs=/class/input/input3
H: Handlers=kbd event3

N: Name=” USB Keyboard”
P: Phys=usb-0000:00:03.0-1/input0
S: Sysfs=/class/input/input4
H: Handlers=kbd event4

N: Name=” USB Keyboard”
P: Phys=usb-0000:00:03.0-1/input1
S: Sysfs=/class/input/input5
H: Handlers=kbd event5

N: Name=”Logitech USB Optical Mouse”
P: Phys=usb-0000:00:03.1-1/input0
S: Sysfs=/class/input/input6
H: Handlers=mouse2 event6 ts2

N: Name=”Power Button (FF)”
P: Phys=ACPI_FPB/button/input0
S: Sysfs=/class/input/input7
H: Handlers=kbd event7

N: Name=”Power Button (CM)”
P: Phys=PNP0C0C/button/input0
S: Sysfs=/class/input/input8
H: Handlers=kbd event8

N: Name=”Sleep Button (CM)”
P: Phys=PNP0C0E/button/input0
S: Sysfs=/class/input/input9
H: Handlers=kbd event9

Abis itu, edit gdm.conf-custom (kalo di mint), tapi kayanya generalnya di gdm custom entah customnya di taro di folder atau gimana, pokoknya di customnya. ditambahin begini :

VTAllocation=false #ditaro di bawah tag [daemon]

[servers]

0=Standard0
1=Standard1

[server-Standard0]
name=Standard server
command=/usr/X11R6/bin/X -novtswitch -sharevts -isolateDevice PCI:1:0:0 -layout seat0
flexible=false

[server-Standard1]
name=Standard server
command=/usr/X11R6/bin/X -novtswitch -sharevts -isolateDevice PCI:0:9:0 -layout seat1
flexible=false

Untuk -isolateDevice PCI:x:y:z disamain ama yang di xorg.conf (ngeliatnya di lspci aja.. Jangan lupa, lspci itu output no. PCI nya hexadesimal). Dan untuk -layout disamakan dengan Identifier di Section ServerLayout pada xorg.conf.

Kalau udah, jangan lupa berdoa, dan abis itu dicoba deh… kalo masih gagal, coba liat log X di /var/log/X.*.log atau googling atau coba cara multiseat yang lain, misalnya ini,atau ini, mungkin inibuat Ubuntu, coba juga dis ini,help-nya Ubuntu, maybe diini

Semoga dengan adanya multiseat ini bisa memakmurkan sekolah atau tempat-tempat dimana kurangnya dana menjadi hambatan untuk memiliki PC dan berkembang… Untuk siapapun yang baca blog ini dan berniat mengimplementasikan dan mengembangkan untuk pendidikan, jangan ragu!! Kombinasi dari linux, multiseat, ditambah dengan banyaknya aplikasi pendidikan di linux seperti GCompris, TuxTyping, Rasmol, kstars, Zekr, dll dapat menjadi killer facility untuk lembaga pendidikan formal/non-formal. Apapun OSnya, user hanya perlu dibiasakan…VIVA LINUX !!!

Update:

Masalah-masalah yang mungkin sering muncul adalah :

1. untuk device USB, nomor event kemungkinan selalu berubah setiap boot atau setiap tertancap device USB baru. Ini bisa disiasati dengan membuat script yang mengambil nilai event pada /proc/bus/input/devices dan memasukkannya ke xorg.conf.
2. jika salah satu client logout, maka semua layar client akan rusak tampilannya dan tidak bisa dipergunakan. Solusi sementara, ya jangan ada client yang logout hehehe..
3. Kemaren sempet bikin itung2an kurang kerjaan. Bisa menghemat kalau pake perbandingan 1:4 cuma sekitar 50%