Ringkasan:
XTerminal merupakan salah satu model thin client yang dapat dibangun
dengan platform Linux. Teknologi yang mirip sistem mainframe ini semakin
populer karena dapat menghemat sumber daya hardware tanpa perlu mengurangi
performance.
Pendahuluan
Platform Linux yang kian berkembang dan memasyarakat telah terbukti memberikan
banyak solusi alternatif yang mendorong efisiensi, penghematan biaya, dan
kemudahan kerja. Sifatnya yang open telah melahirkan berbagai kombinasi
baru di bidang teknologi informasi dan dapat dimanfaatkan oleh siapa saja
yang mau memanfatkannya.
Cara Kerja
Ini adalah mekanisme client-server. Client di-boot menggunakan disket yang
sudah terpasang kernel Linux. Setelah kernel di-load dalam memory, ia mulai
bekerja untuk mencari server yang memiliki boot protocol (BOOTP). Server
yang menangkap permintaan client memeriksa terlebih dahulu apakah client
tersebut sudah terdaftar sebagai komputer yang boleh masuk. Kalau ya, server
memberikan IP address kepada client, dan selanjutnya menjalankan XWindow
dimana prosesnya terjadi di server namun hasilnya tampak di client.
Pertanyaan bisa muncul pada kalimat ``apakah client tersebut sudah terdaftar
?''. Berarti ada informasi unik untuk setiap client yang diberikan pada
server. Informasi itu adalah ``nomor hardware'' ethernet card yang terpasang
pada client. Nomor ini dapat diketahui pada saat kernel di-load dalam memory.
Penggunaan disket sebagai pemicu menjalankan kernel merupakan salah
satu alternatif. Alternatif lainnya yang ``lebih clean'' adalah menggunakan
boot rom yang terpasang pada ethernet card. Tulisan ini sendiri hanya membahas
cara kerja yang pertama (menggunakan disket) karena mayoritas komputer
biasanya memiliki disket, dan bukan boot rom, termasuk komputer yang dimiliki
penulis :)
Untuk Siapa dan Mengapa Diperlukan
Dilihat dari cara kerjanya, sistem ini sangat cocok untuk mereka yang memiliki
dua komputer atau lebih. Dengan kata lain sangat banyak institusi yang
bisa memanfaatkan teknologi XTerminal seperti warnet, perkantoran, penyewaan
komputer, atau bagi mereka yang hanya sekedar mencoba untuk menggunakan
Linux sebagai sistem operasi sehari-hari.
Seperti kita ketahui dalam suatu jaringan biasanya jumlah server lebih
sedikit ketimbang client. Sistem XTerminal sendiri bisa dipasang dengan
satu server dan beberapa client, sehingga penggunaannya memberikan berbagai
keuntungan seperti:
•Spesifikasi komputer untuk client sangat minimal.
•Upgrading hardware dan program menjadi lebih mudah karena hanya terjadi
di sebuah komputer server.
•Akhirnya dari keseluruhan poin di atas diperoleh penghematan biaya
serta waktu yang digunakan untuk instalasi dan perawatan sistem.
Pemasangan sistem XTerminal membutuhkan pengetahuan dan pengalaman seperti:
•Instalasi Linux
•Konfigurasi network
•Konfigurasi XWindow
•Konfigurasi dan kompilasi kernel
Tulisan ini juga membutuhkan mereka yang memiliki kualifikasi di atas.
Persyaratan Hardware
Server
Karena semua proses program dijalankan oleh server, maka hardware-nya
harus memiliki spesifikasi prosesor, harddisk, dan RAM yang disesuaikan
dengan besarnya program dan jumlah client yang memanggilnya. Ini menjadi
sangat relatif. Anda bisa ke www.kafelinux.com untuk pengalaman warnet
mereka yang telah menggunakan teknologi ini. Secara umum server dengan
prosesor Pentium III atau AMD K6-2 300, RAM 256 MB, serta harddisk IDE
7 GB sudah cukup untuk 10 client yang menjalankan browser Netscape Navigator.
Client
Komputer client cukup dengan prosesor 386 dengan RAM 4 MB, sebuah floppy
disk (disket), monitor, dan mouse. Harddisk tidak diperlukan karena semua
program terletak di server. Prosesor sendiri lebih banyak digunakan untuk
menangani komunikasi network, sedangkan proses aplikasi berlangsung di
servernya sendiri yang ditampilkan ke layar monitor client.
Instalasi
Distribusi Linux & Jaringan
Distribusi Linux yang digunakan bisa apa saja. Penulis sendiri telah
mencobanya dengan distribusi SuSE 7.0. Tulisan ini mengasumsikan network
address yang digunakan 192.168.1.0 dimana server memiliki IP address 192.168.1.1
sedangkan clientnya 192.168.1.2, 192.168.1.3, dst.
Pra XTerminal
Bagian ini untuk mempersiapkan segala sesuatunya sebelum kita memasang
paket XTerminal yang bisa diperoleh lewat proses download dari Internet.
Distribusi yang diperuntukkan untuk server jaringan telah menyediakan kebutuhan
pra XTerminal ini seperti: kernel, XFree86, NFS server, dan BOOTP server.
Kernel
Umumnya kernel untuk server dari distribusi Linux yang terpasang sudah
menyertakan Linux Kernel dengan feature network yang dibutuhkan untuk sistem
ini antara lain: ethernet card driver dan TCP/IP.
Jaringan
Sebaiknya Anda menyiapkan sebuah Linux client yang ``lengkap'' (dengan
harddisk) yang berfungsi untuk menguji konektivitas jaringan (gunakan ping)
dan juga untuk menguji apakah NFS server berfungsi dengan baik (dengan
cara mounting ke remote file system). Katakanlah nomor IP Linux client
ini adalah 192.168.1.2, dan dari sini lakukan ping ke server.
$ ping 192.168.1.1
XWindow
Pastikan juga XWindow sudah dapat diaktifkan, lengkap dengan xdm-nya.
Untuk SuSE Anda bisa masuk ke runlevel 3 untuk mengaktifkan xdm.
# init 3
sedangkan RedHat atau Mandrake pada runlevel 5.
NFS Server
Setelah paket NFS server di-install, berikan hak bagi setiap client
di jaringan 192.168.1.0 untuk bisa terhubung ke server. Tambahkan baris
berikut pada file /etc/hosts.allow.
192.168.1.
Buatlah direktori /tftpboot
# mkdir /tftpboot
dan tambahkan pada file /etc/exports baris berikut ini
/tftpboot 192.168.1.0/255.255.255.0(ro,no_root_squash)
Sekarang pindah ke Linux client yang lengkap untuk menguji-coba NFS
server ini.
# mkdir /test
# mount 192.168.1.1:/tftpboot /test
Jika tidak ada pesan kesalahan, berarti NFS server berfungsi dengan
baik.
BOOTP Server
Instalasi kali ini membutuhkan /usr/sbin/bootpd (dipakai oleh inetd).
SuSE meletakkannya di paket nkita.rpm, sedangkan RedHat bootp.rpm.
# rpm -i nkita.rpm
BOOTP digunakan untuk menangani permintaan boot dari client seperti
mounting root filesystem dan pemberian IP address.
Paket Linux Terminal Server Project
LTSP atau Linux Terminal Server Project merupakan proyek yang mengkhususkan
diri pada sistem thin client ini. Anda bisa memperoleh link yang sangat
lengkap yang berkaitan dengan instalasi sistem ini. Semuanya ada di http://www.ltsp.org/download.
Untuk tulisan ini cukup download file berikut:
•http://www.ltsp.org/download/lts/lts_core-2.04-0.i386.rpm
lts_core merupakan paket utama untuk konfigurasi sistem ini. Nama file
di atas adalah versi saat tulisan ini dibuat. Tentunya Anda dapat menentukan
file yang dimaksud jika versinya berubah. Sekarang install:
# rpm -i lts_core-2.04-0.i386.rpm
Paket ini secara default di-set untuk konfigurasi network 192.168.0.0
dengan IP server 192.168.1.254. Sedangkan tulisan ini menggunakan network
192.168.1.0 dan IP server 192.168.1.1. Untuk mengubah nilai default ini,
buka file /tmp/lts_core-2.04/CONFIG, dan lakukan dua perubahan berikut:
IP_NETWORK_BASE=192.168.1
IP_SERVER=${IP_NETWORK_BASE}.1
Jalankan scriptnya:
# cd /tmp/lts_core-2.04
# sh suse-7.0.sh
Di direktori yang sama terdapat beberapa link ke suatu script yang
bersesuaian dengan distro Linux beserta versi yang digunakan. Gunakan sesuai
dengan distro yang Anda pasang, setelah itu jalankan script lainnya.
# cd /tftpboot/lts/templates
# ./ltsp_initialize
Akan muncul pesan pembukaan, dan tahapan-tahapan berikutnya adalah
berupa tanya jawab.
The Linux Terminal Server Project (http://www.ltsp.org)
About to update important system files. If you would like to stop
and review
the changes that are about to be made, you can quit now and look at
the
replacement files that are about to be installed.
At any time, you can answer 'C' and the script will continue with the
defaults
-> Press [ENTER] to go on
Sampai di sini tekan ENTER saja, dan akan tampil pesan yang memberitahukan
file apa saja yang akan diubah.
The following files will be modified/ created:
/etc/exports
update [Y]
Configuration file for the nfs daemon
/etc/bootptab
update [N]
The configuration file for the bootp daemon - not needed
if you use dhcp
/etc/X11/xdm/xdm-config
create [Y]
The main configuration file of the XDM daemon
/etc/X11/xdm/Xaccess
create [Y]
Configure xdm to allow any host to login
/etc/hosts.allow
update [Y]
Configuration file for tcp wrappers
/etc/rc.config
update [Y]
Set syslogd accepting log messages in rc.congfig
/etc/rc.config
update [Y]
Set syslogd accepting log messages in rc.congfig
/etc/inetd.conf
update [Y]
Start bootpd from inetd - don't use bootpd and dhcpd at
same time
/etc/inetd.conf
update [Y]
Start tftpd from inetd
/etc/rc.config
update [Y]
Setup starting portmapper in rc.congfig
-> Press [ENTER] to go on
Tekan ENTER kembali untuk melanjutkan konfigurasi.
/etc/rc.config
update [Y]
Setup starting NFS-Server in rc.congfig
/etc/dhcpd.conf.example
create [Y]
Example configuration file for the dhcp daemon
/etc/rc.config
update [Y]
Setup starting dhcp daemon in rc.congfig
Do you want to stop now and review the files? (Yes/No/Cont) [Y]
Kalau Anda mengizinkan terjadi perubahan pada file di atas, jawab dengan
n (No).
Configuration file for the nfs daemon
(update /etc/exports)? (Yes/No/Cont) [Y]
Tekan ENTER yang berarti Yes.
The configuration file for the bootp daemon - not needed if you use
dhcp
(update /etc/bootptab)? (Yes/No/Cont) [N]
Kita akan menggunakan bootp daemon, jadi jawablah dengan y (Yes).
The main configuration file of the XDM daemon
(create /etc/X11/xdm/xdm-config)? (Yes/No/Cont) [Y]
Tekan ENTER.
Configure xdm to allow any host to login
(create /etc/X11/xdm/Xaccess)? (Yes/No/Cont) [Y]
ENTER lagi.
Configuration file for tcp wrappers
(update /etc/hosts.allow)? (Yes/No/Cont) [Y]
Tekan ENTER.
Set syslogd accepting log messages in rc.congfig
(update /etc/rc.config)? (Yes/No/Cont) [Y]
Tekan ENTER.
Start bootpd from inetd - don't use bootpd and dhcpd at same time
(update /etc/inetd.conf)? (Yes/No/Cont) [Y]
Karena kita menggunakan bootp daemon, maka tekan ENTER yang berarti
Yes.
Start tftpd from inetd
(update /etc/inetd.conf)? (Yes/No/Cont) [Y]
Tekan ENTER.
Setup starting portmapper in rc.congfig
(update /etc/rc.config)? (Yes/No/Cont) [Y]
Tekan ENTER.
Setup starting NFS-Server in rc.congfig
(update /etc/rc.config)? (Yes/No/Cont) [Y]
Tekan ENTER.
Example configuration file for the dhcp daemon
(create /etc/dhcpd.conf.example)? (Yes/No/Cont) [Y]
Kita tidak menggunakan DHCP, jadi jawab dengan n (No).
Setup starting dhcp daemon in rc.congfig
(update /etc/rc.config)? (Yes/No/Cont) [Y]
Juga jawab dengan n (No).
/etc/exports
update [Y]
Configuration file for the nfs daemon
/etc/bootptab
update [N]
The configuration file for the bootp daemon - not needed
if you use dhcp
/etc/X11/xdm/xdm-config
create [Y]
The main configuration file of the XDM daemon
/etc/X11/xdm/Xaccess
create [Y]
Configure xdm to allow any host to login
/etc/hosts.allow
update [Y]
Configuration file for tcp wrappers
/etc/rc.config
update [Y]
Set syslogd accepting log messages in rc.congfig
/etc/rc.config
update [Y]
Set syslogd accepting log messages in rc.congfig
/etc/inetd.conf
update [Y]
Start bootpd from inetd - don't use bootpd and dhcpd at
same time
/etc/inetd.conf
update [Y]
Start tftpd from inetd
/etc/rc.config
update [Y]
Setup starting portmapper in rc.congfig
Tekan ENTER.
/etc/rc.config
update [Y]
Setup starting NFS-Server in rc.congfig
/etc/dhcpd.conf.example
create [N]
Example configuration file for the dhcp daemon
/etc/rc.config
update [N]
Setup starting dhcp daemon in rc.congfig
Ready to update the system files? (Yes/No) [No]
Anda masih diberi kesempatan untuk membatalkan seluruh perubahan. Jawab
dengan yes yang berarti Anda menyetujui perubahan terhadap seluruh file
konfigurasi yang disebutkan.
Kemudian lakukan restart server. Secara mudah Anda bisa melakukannya
dengan cara pindah runlevel.
# init 1
# init 3
Untuk RedHat dari runlevel 1 ke runlevel 5.
Kernel untuk Client
Pasang paket source kernel, dan backup dulu file konfigurasi yang ada.
# cd /usr/src/linux
# cp .config .config.server
Kemudian lakukan beberapa perubahan yang berkaitan dengan hardware
pada client.
# make menuconfig
Pada menu utama, pilih Networking options dan tandai:
•IP: kernel level autoconfiguration
•BOOTP support
Kemudian kembali ke menu utama, pilih Filesystems Network File Systems
dan tandai sebagai built-in (*):
•NFS filesystem support
•Root filesystem on NFS
Kembali ke menu utama, pilih Block devices dan tandai
•RAM disk support
•Initial RAM disk (initrd) support
Lakukan perubahan lainnya yang dianggap perlu yang berkaitan dengan
hardware pada client. Jika hardware client beragam - terutama pada ethernet
card - maka sebaiknya Anda memilih semua kemungkinan ethernet card yang
Anda miliki. Dengan demikian sebuah kernel dapat digunakan untuk seluruh
client. Begitu juga dengan pemilihan prosesor, pilih prosesor yang terendah.
Meski hal tersebut tidak mutlak namun memudahkan pekerjaan Anda karena
tidak harus mengkompilasi kernel beberapa kali untuk hardware yang berbeda-beda.
Juga gunakan modus built-in (*) - bukan module (M) - untuk konfigurasi.<../../footnode.html#foot248>Jika
Anda sudah yakin dengan konfigurasinya, simpanlah. Seperti biasa jalankan
tahapan kompilasi kernel.
# make dep
# make bzImage
Langkah berikut untuk membuat apa yang disebut dummy device yang berkaitan
dengan proses mounting root directory oleh kernel yang terpasang di disket.
# mknod /dev/boot255 c 0 255
Sekarang masukkan disket kosong, dan burn kernel ke disket.
# fdformat /dev/fd0h1440
# dd if=/usr/src/linux/arch/i386/boot/bzImage of=/dev/fd0
# rdev /dev/fd0 /dev/boot255
Langkah di atas dapat Anda lakukan berkali-kali untuk disket lainnya
sesuai jumlah komputer client yang ada, kecuali Anda rela untuk memindah-mindahkan
disket untuk proses booting setiap client :)
Konfigurasi Client
Identitas Ethernet Card
Sekarang boot komputer client dengan disket yang telah dibuat pada
langkah sebelumnya. Seharusnya kini Anda mendapat informasi mengenai hardware
yang dikenal oleh kernel pada komputer yang bersangkutan. Coba cari informasi
yang mirip seperti baris berikut:
eth0: RealTek RTL-8029 found at 0xdf80, IRQ 9, 00:50:BA:EE:5A:BA.
Sekarang catatlah nomor 00:50:BA:EE:5A:BA di atas yang merupakan identitas
ethernet card. Setiap ethernet card bisa berbeda-beda. Mungkin Anda menemukan
pesan kesalahan berupa pencarian BOOTP server. Abaikan saja, karena yang
kita butuhkan hanya informasi di atas.
Pemberian nomor IP
Setiap client harus diberi nama. Misalnya client002 ber-IP 192.168.1.2,
dan client003 ber-IP 192.168.1.3, dst. Client yang ingin bergabung sebagai
workstation harus didaftarkan terlebih dahulu.
Di server, Anda perlu menambah baris berikut di file /etc/bootptab
agar client002 boleh masuk.
client002:tc=.ltsp:ha=0050BAEE5ABA:ip=192.168.1.2:
client002 merupakan nama workstation bersangkutan. 0050BAEE5ABA merupakan
identitas ethernet card yang sudah Anda peroleh di tahapan sebelumnya.
Sedangkan 192.168.1.2 merupakan nomor IP-nya.
IP - berikut nama client - juga perlu didaftarkan di /etc/hosts.
192.168.1.2 client002
XDM dan SysLog
Konfigurasi yang berkaitan dengan hardware client untuk sistem XWindow
seperti mouse, vga card, atau device lainnya ada di /tftpboot/lts/ltsroot/etc/lts.conf.
SysLog<../../footnode.html#foot366> untuk setiap client juga bisa dilakukan.
Pada section Default, ubahlah nilai XDM_SERVER dan SYSLOG_HOST menjadi
seperti berikut ini:
XDM_SERVER = 192.168.1.1
SYSLOG_HOST = 192.168.1.1
XF86Config
Untuk menjalankan X, secara default sistem yang dikembangkan LTSP tidak
memerlukan file konfigurasi XF86Config<../../footnode.html#foot282>.
Namun ada beberapa alasan mengapa kita tetap membutuhkannya yang dikarenakan
adanya kemungkinan berikut:
•LTSP belum menyediakan X<../../footnode.html#foot284>server yang
mendukung hardware client.
•Versi XFree86 yang digunakan LTSP tidak sesuai dengan yang ada di
server.
•Membuat XF86Config lebih mudah karena telah tersedia program bantu
dari distribusi terkait seperti SaX, XF86Setup, xf86config, dsb.
Anda memang bisa menggunakan xf86config yang dijalankan di server untuk
membuat file XF86Config untuk client. Tapi akan lebih mudah lagi jika Anda
bisa menggunakan harddisk kedua<../../footnode.html#foot291>- yang dipasang
di client - untuk menjalankan program seperti SaX atau XF86Setup agar lebih
memudahkan.
# sax
Setelah program konfigurasi dijalankan, jalankan startx:
# startx
kalau Anda sudah mendapatkan tampilan grafis yang diinginkan, kini
carilah program X:
# whereis X
X: /usr/X11R6/bin/X /usr/X386/bin/X /usr/X386/man/man7/X.7.gz
X biasanya merupakan symbolic link, misalkan ke file bernama XF86_SVGA.
Upload file ini ke server pada direktori /tftpboot/lts/ltsroot/ltsbin.
Upload juga file /etc/XF86Config ke server dan ubah namanya menjadi
/tftpboot/lts/ltsroot/etc/XF86Config.002.
Kemudian lakukan perubahan pada file /tftpboot/lts/ltsroot/lts.conf
dengan menambahkan baris berikut:
[client002]
XSERVER = XF86_SVGA
XF86CONFIG_FILE = XF86Config.002
Kini - di komputer client - lepaskan harddisk , masukkan disket boot,
dan restart.
Disket
Adakalanya setiap user di client ingin menggunakan disket (floppy disk)
untuk aktifitas copy. Ketika Anda dihadapkan pada terminal, semuanya terjadi
di server, termasuk device /dev/fd0 yang juga merupakan floppy milik server.
Oleh karena itu dibutuhkan daemon di client yang menerima permintaan untuk
aktifitas ini. Daemon ini dapat diperoleh di paket mtools.rpm. Setelah
meng-install-nya, jalankan perintah berikut di server:
# cp /usr/bin/floppyd /tftpboot/lts/ltsroot/bin
# cd /tftpboot/lts/ltsroot/lib
# cp /usr/lib/libnsl.so libnsl.so.1
# cp /usr/X11R6/lib/libSM.so.6 .
# cp /usr/X11R6/lib/libICE.so.6 .
Kemudian tambahkan baris berikut pada /tftpboot/lts/ltsroot/etc/rc.local
sebelum section ``Build the start_ws script''.
RUN_FLOPPYD=`get_cfg RUN_FLOPPYD N`
if [ "${RUN_FLOPPYD}" = "Y" ]; then
echo "Running floppyd"
/bin/floppyd -d /tmp/fd0
fi
Juga tambahkan baris berikut pada /tftpboot/lts/ltsroot/etc/lts.conf
section ``Default'':
RUN_FLOPPYD = Y
Restart client, login, dan pada home directory buat file .mtoolsrc:
drive a: file="$DISPLAY" remote 1.44m mformat_only
Masukkan disket, lalu jalankan floppyd_installtest untuk mencoba.
$ floppyd_installtest -f $DISPLAY
Perhatikan nyala lampu drive, dan jika tidak muncul pesan kesalahan
berarti semuanya berfungsi dengan baik. Untuk melakukan aktivitas yang
berkaitan dengan disket, gunakan program dari paket mtools seperti mdir,
mformat, mcopy, dsb. Contoh untuk melihat isi disket:
$ mdir a:
format:
$ mformat a:
copy:
$ mcopy /etc/hosts a:
Billing System Warnet
Setelah dipastikan user tidak boleh login dua kali, tambahkan baris
berikut pada /etc/X11/xdm/Xstartup.
SUDAHLOGIN=`who | grep $USER`
if ! [ -z "$SUDAHLOGIN" ]; then
$xmessage -file /usr/share/info/justonce -timeout 10 -center
exit 1
fi
Bibliografi
1
http://www.solucorp.qc.ca/xterminals/
2
http://www.ltsp.org/
3
http://www.kafelinux.com/