Selasa, 14 Desember 2010

wvdial: Konfigurasi Dasar Untuk (hampir) Semua Merk dan Tipe Modem Termasuk Ponsel

DHOCNETSAFE
Tulisan ini akan 'mencoba' membahas tentang cara melakukan konfigurasi dasar wvdial pada mesin linux 'apapun' tanpa melihat distro apa yang digunakan - (kecuali untuk distro yang menggunakan kernel v2.6.28-xxx yang gak bisa buat nge-load atau meng-unload modul usbserial. Setau aku masalah ini terjadi pada keluarga Ubuntu termasuk Blankon 5.0 Nanggar. Informasi lebih lengkap silahkan mengarah ke halaman ini: https://bugs.launchpad.net/bugs/347754 )

Aku gak nyebut tulisan ini sebagai tutorial atau HOWTO karena aku gak tau aturan standard untuk membuat sebuah tutorial, papers atau HOWTO. Tapi aku harap tulisan ini dapat dijadikan sebagai referensi dasar untuk pemula linux dan semoga juga, bahasa yang aku gunakan, mudah dipahami karena sebenarnya aku juga bingung, gimana cara nulis dan menyampaikan dengan cara yang benar!

Tulisan ini aku tujukan buat temen-temen yang baru migrasi ke linux dan tentu saja buat kamu yang sedang membaca tulisan ini, ;)


Catatan:
    Tulisan ini gak ngebahas cara instalasi wvdial. Jadi aku asumsi'in kalo wvdial sudah nongkrong dengan keren di sistem kamu ;) . Kalo ternyata wvdial belom ada di sistem kamu, silahkan merujuk ke http://desktop-hobbie.blogspot.com/2010/03/instalasi-wvdial-dan-konfigurasi.html untuk instalasi dari source code (dan konfigurasi wvdial menggunakan koneksi bluetooth). Untuk instalasi dari paket binari, silahkan merujuk pada manual distro masing-masing, ^^



Keadaan


Demo konfigurasi kali ini, kita akan bekerja penuh dengan baris perintah menggunakan hak akses/ akun root. Dan perangkat yang digunakan untuk demo adalah ponsel Sony Ericsson W200.

Intinya, sekarang kita akan bersenang-senang dengan terminal (shell), ^^

Disini, akan coba dibahas tentang:
  • Konfigurasi modem menggunakan perintah wvdialconf
  • Konfigurasi lanjutan pada berkas /etc/wvdial.conf
  • Mendeteksi dan menghubungkan perangkat ke komputer
  • Pengaturan DNS pada client


Pemanasan

Sebelum menuju pokok permasalahan, mari kita singgung sedikit, apa sih wvdial itu? dan kenapa hampir semua koneksi modem di linux menggunakan wvdial?

Apa itu wvdial?
    wvdial adalah sebuah program dialup di linux. heheheh,... singkat aja gak usah panjang-panjang, aku juga bingung nyampe'inya gimana,... :P


Kenapa hampir semua koneksi di linux menggunakan wvdial?
    Karena kemudahan penggunaanya, konfigurasi dan interfacenya yang sederhana :)

Mudah? Yap!
Mari kita saksikan semudah apa sih penggunaanya, ;)


Konfigurasi Modem Menggunakan Perintah wvdialconf

Apa itu wvdialconf?

wvdialconf adalah sebuah perintah (program) yang digunakan untuk membuat atau meng-update berkas konfigurasi /etc/wvdial.conf. Perintah wvdialconf dijalankan sebelum perintah wvdial.

Sebelum menjalankan perintah wvdialconf, modem harus sudah terkoneksi ke komputer. Lihat status modem dengan perintah dmesg atau lsusb.

Info:
    Pada beberapa distro, perintah lsusb hanya bisa dijalankan menggunakan akun root. Gunakan perintah su (atau sudo su untuk keluarga ubuntu) untuk login sebagai root.

Kasus kali ini aku pake Sony Ericsson W200 sebagai modemnya, jadi saat usb di-colokin akan ada pilihan untuk menggunakan perangkat sebagai drive penyimpanan atau modus telepon (beberapa perangkat menyebutkan port com). Karena akan dijadikan modem, jadi aku pilih modus telepon (atau port com).

Untuk perintah lsusb, outputnya terlihat seperti berikut,...

root@desktop-hobbie:/home/cupucupu# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 5986:0300 Acer, Inc
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 022: ID 0fce:d090 Sony Ericsson Mobile Communications AB
root@desktop-hobbie:/home/cupucupu#


Sedangkan kalo make perintah dmesg hasilnya kira-kira seperti ini,...

root@desktop-hobbie:/home/cupucupu# dmesg | tail
usb 3-2: Manufacturer: Sony Ericsson
usb 3-2: SerialNumber: 352014022685700_0
cdc_acm 3-2:1.1: ttyACM0: USB ACM device
cdc_wdm 3-2:1.7: cdc-wdm0: USB WDM device
usbcore: registered new interface driver cdc_wdm
cdc_acm 3-2:1.3: ttyACM1: USB ACM device
usbcore: registered new interface driver cdc_acm
cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
show_signal_msg: 62 callbacks suppressed
vlc[8431]: segfault at 4 ip b62aab56 sp bfb3c3f0 error 4 in libQtDBus.so.4.6.2[b6268000+77000]
root@desktop-hobbie:/home/cupucupu#  


Modem udah ke-detek. Sekarang baru kita jalankan perintah wvdialconf-nya,..

root@desktop-hobbie:/home/cupucupu# wvdialconf
Editing `/etc/wvdial.conf'.

Scanning your serial ports for a modem.

Modem Port Scan<*1>: S0   S1   S2   S3  
WvModem<*1>: Cannot get information for serial port.
ttyACM0<*1>: ATQ0 V1 E1 -- OK
ttyACM0<*1>: ATQ0 V1 E1 Z -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyACM0<*1>: Modem Identifier: ATI -- Sony Ericsson W200
ttyACM0<*1>: Speed 4800: AT -- OK
ttyACM0<*1>: Speed 9600: AT -- OK
ttyACM0<*1>: Speed 19200: AT -- OK
ttyACM0<*1>: Speed 38400: AT -- OK
ttyACM0<*1>: Speed 57600: AT -- OK
ttyACM0<*1>: Speed 115200: AT -- OK
ttyACM0<*1>: Speed 230400: AT -- OK
ttyACM0<*1>: Speed 460800: AT -- OK
ttyACM0<*1>: Max speed is 460800; that should be safe.
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
WvModem<*1>: Cannot get information for serial port.
ttyACM1<*1>: ATQ0 V1 E1 -- OK
ttyACM1<*1>: ATQ0 V1 E1 Z -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyACM1<*1>: Modem Identifier: ATI -- Sony Ericsson W200
ttyACM1<*1>: Speed 4800: AT -- OK
ttyACM1<*1>: Speed 9600: AT -- OK
ttyACM1<*1>: Speed 19200: AT -- OK
ttyACM1<*1>: Speed 38400: AT -- OK
ttyACM1<*1>: Speed 57600: AT -- OK
ttyACM1<*1>: Speed 115200: AT -- OK
ttyACM1<*1>: Speed 230400: AT -- OK
ttyACM1<*1>: Speed 460800: AT -- OK
ttyACM1<*1>: Max speed is 460800; that should be safe.
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK

Found an USB modem on /dev/ttyACM0.
Modem configuration written to /etc/wvdial.conf.
ttyACM0: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
ttyACM1: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
root@desktop-hobbie:/home/cupucupu# 


Selesai. Sekarang kita tinggal memasukan akun internet yang kita gunakan (Sesuaikan dengan ISP yang kamu pake). Berkas yang kita rubah adalah /etc/wvdial.conf. Gunakan editor yang biasa kamu pake untuk merubahnya,...

Misal kita pake nano,.. perintahnya,..

root@desktop-hobbie:/home/cupucupu# nano /etc/wvdial.conf

yang isinya kira-kira seperti ini,..

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = USB Modem
; Phone =
ISDN = 0
; Password =
; Username =
Modem = /dev/ttyACM0
Baud = 460800

Hilangkan karakter ; (titik koma) didepan baris Phone, Password dan Username dan isikan data akun kita disitu.
Contohnya seperti ini (aku make akun indosat),..

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = USB Modem
Phone = *99#
ISDN = 0
Password = indosat
Username = indosat
Modem = /dev/ttyACM0
Baud = 460800

Untuk akun GSM, Phone diisi dengan *99# . Sedangkan untuk akun CDMA, Phone diisi dengan #777




Simpan kemudian kita coba,.. :)

Jalankan perintah wvdial,

root@desktop-hobbie:/home/cupucupu# wvdial

Kalo konfigurasi berhasil, akan ada pesan seperti ini,..

--> Carrier detected.  Waiting for prompt.
~[7f]}#@!}!}"} }8}#}$@#}(}"}'}"}"}&} } } } }%}&}6/H}([7f]V~
--> PPP negotiation detected.
--> Starting pppd at Mon Dec 13 19:18:20 2010
--> Pid of pppd: 10746
--> Using interface ppp0
--> pppd: (¥[06][08]@£[06][08]
--> pppd: (¥[06][08]@£[06][08]
--> pppd: (¥[06][08]@£[06][08]
--> pppd: (¥[06][08]@£[06][08]
--> pppd: (¥[06][08]@£[06][08]
--> pppd: (¥[06][08]@£[06][08]
--> local  IP address 10.37.64.242
--> pppd: (¥[06][08]@£[06][08]
--> remote IP address 10.64.64.64
--> pppd: (¥[06][08]@£[06][08]
--> primary   DNS address 114.5.5.5
--> pppd: (¥[06][08]@£[06][08]
--> secondary DNS address 114.5.1.1
--> pppd: (¥[06][08]@£[06][08]

Pesan ini meberitahukan kalo kita udah dapet IP (local  IP address 10.37.64.242) dan DNS (primary   DNS address 114.5.5.5 dan secondary DNS address 114.5.1.1) dari ISP, :)



Coba lakukan ping ke suatu situs untuk melihat apakah kita sudah bisa mengakses internet,...

root@desktop-hobbie:/home/cupucupu# ping google.com
PING google.com (209.85.175.99) 56(84) bytes of data.
64 bytes from 209.85.175.99: icmp_req=1 ttl=48 time=1015 ms
64 bytes from 209.85.175.99: icmp_req=2 ttl=48 time=712 ms
64 bytes from 209.85.175.99: icmp_req=3 ttl=48 time=699 ms
64 bytes from 209.85.175.99: icmp_req=4 ttl=48 time=699 ms
64 bytes from 209.85.175.99: icmp_req=5 ttl=48 time=1159 ms
64 bytes from 209.85.175.99: icmp_req=6 ttl=48 time=879 ms
64 bytes from 209.85.175.99: icmp_req=7 ttl=48 time=754 ms
64 bytes from 209.85.175.99: icmp_req=8 ttl=48 time=758 ms
64 bytes from 209.85.175.99: icmp_req=9 ttl=48 time=714 ms
64 bytes from 209.85.175.99: icmp_req=10 ttl=48 time=733 ms
64 bytes from 209.85.175.99: icmp_req=11 ttl=48 time=693 ms
64 bytes from 209.85.175.99: icmp_req=12 ttl=48 time=724 ms
64 bytes from 209.85.175.99: icmp_req=13 ttl=48 time=719 ms
64 bytes from 209.85.175.99: icmp_req=14 ttl=48 time=715 ms
64 bytes from 209.85.175.99: icmp_req=15 ttl=48 time=694 ms
64 bytes from 209.85.175.99: icmp_req=16 ttl=48 time=717 ms
64 bytes from 209.85.175.99: icmp_req=17 ttl=48 time=708 ms
64 bytes from 209.85.175.99: icmp_req=18 ttl=48 time=694 ms
64 bytes from 209.85.175.99: icmp_req=19 ttl=48 time=734 ms
^C
--- google.com ping statistics ---
20 packets transmitted, 19 received, 5% packet loss, time 26592ms
rtt min/avg/max/mdev = 693.883/765.035/1159.582/120.054 ms, pipe 2
root@desktop-hobbie:/home/cupucupu# 



Nah, sekarang kita sudah terkoneksi ke internet. Selamat, :)

Untuk mengakhiri koneksi, tekan CTRL+c

^CCaught signal 2:  Attempting to exit gracefully...
--> Terminating on signal 15
--> pppd: (¥[06][08]@£[06][08]
--> Connect time 1.5 minutes.
--> pppd: (¥[06][08]@£[06][08]
--> pppd: (¥[06][08]@£[06][08]
--> pppd: (¥[06][08]@£[06][08]
--> Disconnecting at Mon Dec 13 19:19:47 2010
root@desktop-hobbie:/home/cupucupu#




Konfigurasi Lanjutan Pada Berkas /etc/wvdial.conf


Disini tidak akan dibahas banyak. Hanya satu baris konfigurasi yang "biasanya" dibutuhkan kalo modem gak mau konek ke ISP dan kalo gak salah ada pesan kesalahan yang berbunyi "Bad init string".

Perintah konfigurasinya,..

Init3 = AT+CGDCONT=1,"IP","isi dengan akses poin"


Untuk akses poinya, misal indosatgprs untuk akun Indosat, telkomsel untuk Simpati dan xlgprs.net untuk akun XL. Tambahkan baris diatas pada berkas /etc/wvdial.conf


Konfigurasi lengkapnya akan terlihat seperti ini,..
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","indosatgprs"
Modem Type = USB Modem
Phone = *99#
ISDN = 0
Password = indosat
Username = indosat
Modem = /dev/ttyACM0
Baud = 460800

Info:
    Konfigurasi modem ini menggunakan perintah AT. Kalo kamu tertarik, silahkan merujuk ke
http://en.wikipedia.org/wiki/Hayes_command_set untuk referensi yang lebih lengkap, ;)


Mendeteksi dan Menghubungkan Perangkat ke Komputer

Bagian ini membahas tentang langkah apa yang harus dilakukan kalo modem gak ke-detek secara otomatis. Pesan pada terminal yang muncul bila modem gagal di identifikasi saat perintah wvdialconf dijalankan kira-kira seperti ini,..

root@desktop-hobbie:/home/cupucupu# wvdialconf
Editing `/etc/wvdial.conf'.

Scanning your serial ports for a modem.

Modem Port Scan<*1>: S0   S1   S2   S3  


Sorry, no modem was detected!  Is it in use by another program?
Did you configure it properly with setserial?

Please read the FAQ at http://alumnit.ca/wiki/?WvDial
root@desktop-hobbie:/home/cupucupu# 



Kalo terjadi yang kek gini, hal pertama yang harus dilakukan adalah, gunakan perintah lsusb untuk melihat perangkat usb yang terpasang/ sedang terhubung,...

root@desktop-hobbie:/home/cupucupu# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 5986:0300 Acer, Inc
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 022: ID 0fce:d090 Sony Ericsson Mobile Communications AB
root@desktop-hobbie:/home/cupucupu#

Perangkat masih terhubung. Lalu apa yang akan kita lakukan pada hasil perintah lsusb? Cari ID perangkat. ID vendor dan produk. Perhatikan gambar berikut untuk mengetahui yang mana ID vendor dan yang mana ID produk,...




Perhatikan kode-kode yang di blok dengan warna biru dan hijau. Kode yang diblok dengan warna biru adalah ID vendor. Sedangkan yang diblok hijau adalah ID produk. Gimana ? Uda pada tau kan posisi ID vendor dan produk? Oke, kalo gitu, kita lanjutkan perjalanan tadi, :)

ID vendor dan produk udah ditangan. Lalu apa? Sekarang, kita harus ngedaftarin perangkat kita ke kernel biar bisa diguna'in. Kita pake perintah modprobe untuk melakukanya,...

Misal kita mau ngedaftarin perangkat Sony Ericsson yang punya ID vendor 0fce dan ID produk d090, perintah yang digunain kek gini,

root@desktop-hobbie:/home/cupucupu# modprobe usbserial vendor=0x0fce product=0xd090


Catatan:
    Perintah modprobe gak bisa dipake buat nge-load modul usbserial di kernel v2.6-28-xxx seperti yang udah disinggung diatas.

Abis itu balik lagi ke langkah awal (konfigurasi modem dengan perintah wvdialconf)



Pengaturan DNS Pada Client


Setelah berhasil terkoneksi ke ISP, ternyata kita masih mengalami masalah, yaitu sebuah pesan error Unknown host!

Dari pesan yang ditapilkan tersebut, itu berarti komputer kita tidak bisa menemukan alamat yang diaksud. Bagaimana itu bisa terjadi padahal kita sudah terhubung ke ISP dan sudah mendapatkan IP?


Salah satunya adalah masalah DNS. Apa itu DNS? Untuk mengetahui lebih lanjut tentang DNS, silahkan merujuk ke halaman ini: http://id.wikipedia.org/wiki/DNS

Berkas konfigurasi DNS di linux adalah /etc/resolv.conf. Pada berkas inilah alamat DNS server disimpan. Dan alamat DNS server bisa kita dapatkan dari pesan yang ditampilkan oleh wvdial saat berhasil terkoneksi ke ISP.




Dari percobaan ini, alamat DNS server yang aku dapet adalah:

  • Primary DNS (DNS1) -> 114.5.5.5
  • secondary DNS (DNS2) -> 114.5.1.1
Alamat DNS inilah yang harus kita tuliskan pada berkas /etc/resolv.conf.

Format penulisanya adalah seperti ini,...

nameserver IP-SERVER-DNS1  
nameserver IP-SERVER-DNS2  

Ketikan perintah berikut untuk menuliskan alamat DNS pada berkas /etc/resolv.conf

root@desktop-hobbie:/home/cupucupu# echo "nameserver 114.5.5.5" > /etc/resolv.conf && echo "nameserver 114.5.1.1" >> /etc/resolv.conf



Atau gunakan text editor untuk menuliskanya,.. :)
Lakukan ping untuk mencoba koneksinya lagi...,

Kalo masi gagal juga, silahkan periksa sisa quota yang kamu punya, sisa pulsa atau signal jaringanya,.. :D

Info:
    Sebagian distro biasanya langsung melakukan konfigurasi DNS secara otomatis setelah terhubung dengan ISP




Gimana?

Gampang kan konfigurasi modem di linux?
Gak perlu nambah-nambah driver lagi. Cukup sedikit konfigurasi dan linux box kita sudah siap online,... ^^'

** Semoga bermanfaat, :)


Artikel Terkait

2 Diskusi

  1. usb modem says:

    sepertinya emang mudah.
    nanti saya coba deh sob, thanks ya buat infonya

  2. ara says:

    ok, sama sama. makasi juga kunjunganya,.. :)

Leave a Reply

Subscribe to Posts | Subscribe to Comments