Membangun Mesin DVB Dengan Linux
Membangun Mesin DVB Dengan Linux
Instalasi Linux Secara Umum.
Pada dasarnya kita menyiapkan dulu mesin dengan OS linux seperti RedHat, Mandrake,
Debian, Slackware, atau linux lainnya. Cara installnya pun tidak jauh beda, package-packagenya
juga hampir sama, hanya tiap OS linux mempunyai cara instalasi sendiri.
Di sini contoh menggunakan OS RedHat 7.3 yang notabene stable dan ringan untuk aplikasi
server/router sehingga tidak terlalu banyak proccess yang harus dijalankan.
Packages yang harus ada/exist untuk disiapkan sebagai mesin server/router adalah sebagai
berikut:
- Minimalisasi tanpa X Windows, Gnome, Kde, printing, sound, multimedia, dll.
- Yang harus ada Group packages untuk Advanced Router, Firewall, DNS, Utility,
Software Development, Libraries.
- Usahakan untuk memakai/mengaktifkan option Select Individual Packages agar bisa
memilih packages program tambahan.
- Packages tambahan yang harus ada antara lain sebagai berikut:
o Mc. Ini visual shell yang mirip file manager, include command mcedit untuk
editor file.
o Snmp. Protokol untuk network management. Bisa memakai ucd-snmp atau yang
terbaru net-snmp juga dengan utils-nya juga ucd-snmp-utils atau net-snmputils.
o Lynx. Text browser untuk browsing di console.
o Iptraf. Console-based network monitoring utility.
- Packages tambahan lain (Optional) jika ingin mengembangkan:
o Mrtg. Ini tool untuk memonitor traffic dengan mengambil data dari snmp yang
kemudian ditampikan dalam bentuk grafik html.
o Apache. Webserver yang dipake untuk menampilkan grafik dari mrtg.
o Squid. Aplikasi untuk cache proxy server.
Jika sudah selesai instalasi, masuk dengan login ROOT dan passwordnya.
Edit configurasi program dalam startup:
- Ketik : setup
- Aktifkan snmp, dan non-aktifkan program-program seperti apmd, atd, gpm.
Edit modules nya untuk meminimalisasi pemakaian IRQ. Ini penting nantinya untuk DVB
karena IRQ Pentavalue tidak boleh sharing/conflig.
mcedit /etc/modules.conf
Buang option : parport dan usb-uhci dengan memberi pagar (#) depannya
Jika untuk SSH nya di set root login = NO, maka untuk SSH user akan selalu di suruh ngetik full
path walau sudah su.
mcedit /etc/ssh/sshd_config
ubah bagian ini menjadi no:
PermitRootLogin no
Maka untuk mengakalinya menggunakan cara ini:
- Sebelum create new user, edit dulu /etc/skel/.bash_profile dan tambahin isinya menjadi
sbb:
mcedit /etc/skel/.bash_profile
Tambahin bagian path menjadi:
PATH=$PATH:$HOME/bin:/sbin:/bin:/usr/sbin:/usr/bin
-
- Jika sudah terlanjur create user misal media, maka yang diedit adalah /
home/media/.bash_profile dan isikan sama seperti diatas.
mcedit /home/media/.bash_profile
Untuk mengaktifkan sudo, yang dilakukan adalah sebagai berikut:
- edit /etc/sudoers dengan command dan
mcedit /etc/sudoers
- Aktifkan 2 hal dibawah ini:
# Uncomment to allow people in group wheel to run all commands
%wheel ALL=(ALL) ALL
# Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL
Kemudian masukkan user yang akan dimasukkan dalam daftar sudoers ke dalam group wheel
(root) dengan cara:
usermod –G 10 media
Kompilasi Kernel
Compile kernel sebenarnya ditujukan untuk optimasi program-program di linux (advanced user).
Tanpa compile kernel pun sudah jalan.
Hal yang perlu diperhatikan dalam compile kernel adalah:
- Kita mengetahui benar hardware komputer yang bersangkutan seperti processor,
motherboard, sound card, ethernet card, dll.
- Kita mengetahui linux secara keseluruhan, apa yang kita butuhkan dan apa tidak.
- Hal yang paling penting adalah Kita mengetahui apa saja yang kita setting, karena jika
tidak, keinginan kita untuk optimasi tidak berhasil malah jadi hancur, yang ditandai
dengan kernel panic pada waktu booting.
Langkah-langkah yang harus dilakukan, ketik sbb:
Ambil source linux terbaru versi 2.4 (linux-2.4.22.tar.bz2 ) atau 2.6 (linux-2.6.4.tar.bz2)
Taruh file tersebut di /usr/src kemudian extract
tar jxpf linux-2.4.22.tar.bz2
Bikin link linux biar mudah, juga untuk kepentingan compile DVB nanti.
ln –s linux-2.4.22 linux
Sehingga untuk selanjutnya tidak usah masuk ke directory /usr/src/linux-2.4.22, tapi
tinggal langsung ke /usr/src/linux
cd /usr/src/linux
make menuconfig
Lakukan pemilihan menu mana yang diaktifkan, mana yang sebagai modules dan mana yang
dinon-aktifkan.
(Tidak saya include-kan di sini karena optionnya sangat banyak sekali. Karena itu ini untuk
ADVANCE USER).
Pada intinya yang diaktifkan adalah:
- Driver untuk masing-masing hardware yang kita punya baik itu processor, motherboard,
soundcard dan ethernet card 10/100 Mbps..
- Aktifkan File system sepert ReiserFS, Ext3, Ext2. Juga jika ingin mengaktifkan partisi
windows agar bisa dibaca di linux, aktifkan Fat, Fat95.
- Aktifkan Option untuk NAT (Network Address Translation), Firewall dan Advance
routing.
- Bisa juga jika menginginkan tambahan untuk management bandwidth, aktifkan QOS
packer scheduler bisa memakai CBQ atau HTB.
Setelah selesai memilih semuanya, pilih exit dan save.
Kemudian ketik:
make dep
make bzImage
make modules
make modules_install
Setelah semuanya berhasil dengan baik, tidak ada error, kita tinggal mengkopikan hasilnya ke /
boot:
cp System.map /boot/System-map-DVB
cp arch/i386/boot/bzImage /boot/vmlinuz-DVB
Setelah itu edit /etc/lilo.conf seperti dibawah ini, tambahan dibawah sendiri.
mcedit /etc/lilo.conf
prompt
timeout=10
default=DVB
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
linear
image=/boot/vmlinuz-2.4.18-3
label=linux
initrd=/boot/initrd-2.4.18-3.img
read-only
root=/dev/hda1
image=/boot/vmlinuz-DVB
label=DVB
read-only
root=/dev/hda1
Setelah selesai edit, jalankan menggunakan perintah:
lilo –v
Jika hasilnya seperti dibawah ini, berarti tambahan di lilo sukses:
LILO version 21.4-4, Copyright (C) 1992-1998 Werner Almesberger
'lba32' extensions Copyright (C) 1999,2000 John Coffman
Reading boot sector from /dev/hda
Merging with /boot/boot.b
Mapping message file /boot/message
Boot image: /boot/vmlinuz-2.4.18-3
Mapping RAM disk /boot/initrd-2.4.18-3.img
Added linux
Boot image: /boot/vmlinuz-dvb
Added dvb *
/boot/boot.0300 exists - no backup copy made.
Writing boot sector.
========================
Instalasi DVB
=================================
Dalam hal ini kita memakai Pentavalue card.
Ambil source terbaru pentaval untuk RedHat: pentaval-RHx-2.1.10_021111.tar.gz atau untuk
selain RedHat memakai pentaval-2.1.10_021111.tar.gz.
Extract file tsb dan jalankan command di bawah ini:
tar zxpf pentaval-RHx-2.1.10_021111.tar.gz
cd pentaval-RHx-2.1.10
autoheader
autoconf
aclocal
automake
./configure
make
make install
Jika sudah selesai dan berhasil, copykan file pentavalm, pentavalt dan pentavald ke /bin agar
mudah untuk execute nya.
cp pentaval* /bin/
Kemudian buat file /etc/pentaval.conf dengan isinya (dengan konfigurasi satelit Agila2):
[Transponder]
SatName=Agila2
Name=Trans1
Frequency=3660.000000
Symbol rate=15.000000
Polar=HOR
Band=C
22Khz=Off
LnbPower=On
Viterbi=3/4
;Aviterbi lists -> 1/2, 2/3, 3/4, 5/6, 7/8, Auto
LnbType=Universal
;LNB type lists -> None, 9300, 9750, 10000, 10600, 10750, 11300,
Universal
DISEqC=None
;DISEqC lists -> None, Port1, Port2 ~ Port16
Count=2
PID0=585
;PID0=516
;PID1=512
AutoPID=Off
CrcChecksum=Off
[Option]
SIP Count=0
;SIP0=4.5.6.7
;SIP1=1.2.3.4
;SIP2=0.0.0.0
;VMAC0=00:30:1D:00:41:B2
;VMAC0=00:D0:C1:01:12:57
[End]
kemudian buat file /etc/init.d/pentaval untuk init runningnya:
#!/bin/bash
# PENTAVAL
PATH=/usr/bin:/sbin:/bin:/usr/sbin
export PATH
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
# check if the pentaval conf file is present
[ -f /etc/pentaval.conf ] || exit 0
pentavalt=/bin/pentavalt
pentavald=/bin/pentavald
pentavalm=/bin/pentavalm
prog="pentaval"
RETVAL=0
start() {
echo -n $"Starting $prog: "
$pentavalt -a -d pentaval0 -f /etc/pentaval.conf
RETVAL=$?
# [ $RETVAL -eq 0 ] && echo_success
# [ $RETVAL -ne 0 ] && echo_failure
echo
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
$pentavalt -q
RETVAL=$?
# [ $RETVAL -eq 0 ] && echo_success
# [ $RETVAL -ne 0 ] && echo_failure
echo
return $RETVAL
}
restart() {
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $httpd
RETVAL=$?
;;
restart)
stop
start
;;
*)
echo $"salah mas"
echo $"Pakai ini mas: $prog {start|stop|restart}"
exit 1
esac
exit $RETVAL
Chmod file /etc/init.d/pentaval menjadi 755
chmod 755 /etc/init.d/pentaval
Kemudian jalankan perintah untuk restart device pentaval:
/etc/init.d/pentaval restart
Agar tiap reboot ulang device pentaval langsung start, tambahkan option ini di /etc/rc.local:
mcedit /etc/rc.local
tambahin:
/etc/init./pentaval start
Jika parabola sudah dipointing dengan benar arah satelitnya, maka tinggal menancapkan
kabelnya ke device pentaval di komputer.
Untuk monitoring ketik pentavalm, maka akan terdisplay seperti ini:
----------------------------------
Monitor for Pent@VALUE (Ver 1.0.1)
----------------------------------
[Driver/Device info]
# Device name : pentaval0
# Driver status : Enable
# Driver version : 2.1.a
# MAC address : 00:30:6a:80:66:41
[Rx data info]
# Total RX packets : 7219657
# RX data rate : 0.248[Mbps]
[Tuner info]
# LNB Lock status: lock
# Viterbi decoded BER : 0
# Signal to Noise Ratio: 8.409477 [dB]
# Reed Solomon Corrected errors: 26824
# Reed Solomon Uncorrected errors: 124
# CRC/Checksum errors: 34
# LLC/SNAP encapsulation: Disable
Press the 'q' key to finish it !
Penjelasan:
#Signal to Noise Ratio : menunjukkan signal dari parabola, semakin besar semakin bagus.
Standar minimum adalah 7 dB
#Total RX packets : 7219657. Jika ini lebih dari 0 packet, maka data sudah bisa lewat. Namun
juga tetap 0, ada 2 penyebab:
1. IRQ terjadi conflig atau sharing. Cara untuk melihatnya adalah dengan mengetik cat /
proc/interrupts
2. Beberapa komputer tidak compatible dengan pentaval seperti merk Compaq.
# RX data rate : 0.248[Mbps]. Ini menunjukkan current downstream bandwidth usage.
=======================
Konfigurasi SNMP
=======================
Mcedit /etc/snmp/snmp.conf
Isikan/rubah setingan menjadi seperti di bawah ini:
# sec.name source community
com2sec public 0.0.0.0/0 public
# groupName securityModel securityName
group mediaselaras v1 public
group mediaselaras v2c public
group mediaselaras usm public
# Third, create a view for us to let the group have rights to:
#group context sec.model sec.level prefix read write notif
access mediaselaras "" any noauth exact all none none
## incl/excl subtree mask
view all included .1 80
## -or just the mib2 treeview
mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
# System contact information
syslocation Lokasi anda
syscontact info@mediaselaras.net
Dibawah ini beberapa site yang berhubungan dengan hal ini.
Source Kernel:
http://www.kernel.org/pub/linux/kernel/v2.4 <--- untuk versi 2.4 http://www.kernel.org/pub/linux/kernel/v2.6 <--- untuk versi 2.6 Source Pentaval: Untuk Redhat http://www.pentamedia.com/english/supports/down/Linux/pentaval-RHx-2.1.10_021111.tar.gz selain Redhat http://www.pentamedia.com/english/supports/down/Linux/pentaval-2.1.10_021111.tar.gz Beberapa source dan konfigurasi sudah disediakan, bisa diambil dari: http://www.mediaselaras.net/dvb/pentaval http://www.mediaselaras.net/dvb/pentaval.conf http://www.mediaselaras.net/dvb/pentaval-RHx-2.1.10_021111.tar.gz
Mikrotik Load Balancing
/ ip address
add address=10.0.160.254/24 network=10.0.160.0 broadcast=10.0.160.255 interface=ether1 comment="" \
disabled=no
add address=10.0.150.155/24 network=10.0.150.0 broadcast=10.0.150.255 interface=ether2 \
comment="" disabled=no
add address=192.168.100.188/24 network=192.168.100.0 broadcast=192.168.100.255 interface=ether3 \
comment="" disabled=no
/ ip firewall mangle
add chain=prerouting in-interface=ether1 connection-state=new nth=1,1,0 \
action=mark-connection new-connection-mark=odd passthrough=yes comment="" \
disabled=no
add chain=prerouting in-interface=ether1 connection-mark=odd action=mark-routing \
new-routing-mark=odd passthrough=no comment="" disabled=no
add chain=prerouting in-interface=ether1 connection-state=new nth=1,1,1 \
action=mark-connection new-connection-mark=even passthrough=yes comment="" \
disabled=no
add chain=prerouting in-interface=ether1 connection-mark=even action=mark-routing \
new-routing-mark=even passthrough=no comment="" disabled=no
/ ip firewall nat
add chain=srcnat connection-mark=odd action=src-nat to-addresses=10.0.150.155 \
to-ports=0-65535 comment="" disabled=no
add chain=srcnat connection-mark=even action=src-nat to-addresses=192.168.100.188 \
to-ports=0-65535 comment="" disabled=no
/ ip route
add dst-address=0.0.0.0/0 gateway=10.0.150.254 scope=255 target-scope=10 routing-mark=odd \
comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=192.168.100.254 scope=255 target-scope=10 routing-mark=even \
comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=192.168.100.254 scope=255 target-scope=10 comment="" \
disabled=no