10 February 2009

Koneksi telkom flash dengan Sony Ericsson P1i dan Ubuntu Intrepid Ibex

Network Manager di Ubuntu Intrepid Ibex memberikan fasilitas yang lebih menyenangkan dan mudah termasuk untuk koneksi Broadband menggunakan Telkom Flash. Klik kanan pada icon network manager di taskbar dan pilih edit connections ... kemudian pilih Mobile Broadband. Langkah selanjutnya sangat intuitif.

Sayangnya, deteksi Sony Ericsson P1i saya di Ubuntu Intrepid kurang mantap. Kadang-kadang terdeteksi otomatis, kadang-kadang tidak. Jika terdeteksi, kita akan langsung dikoneksikan dengan Telkom Flash. Tapi jika tidak, applet Network Manager akan diam saja tanpa reaksi. Dengan perintah dmesg, terlihat bahwa Sony Ericsson P1i sebenarnya terdeteksi dengan konsisten oleh kernel. Jadi menurut dugaan saya ini adalah masalah di Network Manager.

Untuk rekan-rekan yang mengalami hal yang sama, saya bagikan sebuah skrip hasil utak-atik saya untuk mengatasi masalah ini. Untuk itu terlebih dahulu kita harus memodifikasi file /etc/wvdial.conf menjadi seperti ini (file ini harus diedit sebagai root):

# /etc/wvdial.conf -----------
[Dialer Defaults]
ISDN = off
Modem Type = Analog Modem
Baud = 460800
Phone = *99***1#
Dial Attempts = 1
Dial Command = ATM0L0DT
Ask Password = off
Password = wap123
Username = wap
Auto Reconnect = off
Abort on Busy = off
Carrier Check = off
Check Def Route = on
Abort on No Dialtone = off
Stupid Mode = on
Idle Seconds = 300
Auto DNS = on

[Dialer FlashVolumeBased]
Modem = /dev/ttyACM1
Init = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1, "ip", "telkomsel"

[Dialer FlashTimeBased]
Modem = /dev/ttyACM1
Init = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1, "ip", "internet"

# -------- selesai /etc/wvdial.conf ------

Lalu buat juga sebuah skrip yang saya beri nama connectd dan simpan di /usr/local/bin/


#!/bin/bash
# Notification daemon for connection through PPPD
#
# /usr/local/bin/connectd
# I use this personally to automate the internet connection
# through my Sony Ericsson P1i Cellular Phone
#
# Author : Dekrit Gampamole
# Email : dekrit@gampamole.net
#
# Requirements:
# Bash
# Zenity
# Gnome icon
# Licensed under GPL version 2
# Version 0.1

# Global Variables

modem_connected_to_pc=false
notification=false
previously_connected=false
connected_to_internet=false
sleeptime=5s
icon="/usr/share/icons/gnome/22x22/devices/ipod_mount.png"
# Change this according to your preferred package
# package=FlashTimeBased
package=FlashVolumeBased

# modem device
# set this according to your hardware automatic assignment
modem=/dev/ttyACM1

# Functions definitions
function check_modem_status(){
# Return global variable boolean modem_connected
if [ -c $modem ]; then
modem_connected_to_pc=true
else
modem_connected_to_pc=false
fi
}

function toggle_notification(){
# Toggle notification icon on the tray
if $connected_to_internet; then
if ! $previously_connected; then
killall zenity;
zenity --notification --window-icon=$icon --text="Connect" &
previously_connected=true
fi
else
if $previously_connected; then
killall zenity;
zenity --notification --text="Not connected" &
previously_connected=false
fi
fi
}

function connect(){
# Dial out
if ! $connected_to_internet; then
# Check whether wvdial is already running
if [ ! "$( ps aux | grep wvdial | grep conf )" ]; then
# if not: execute it
wvdial $package &
fi
fi
}

function check_connection_state(){
# Return global variable boolean connected_to_internet
# is pppd running?
if [ "$( ps aux | grep pppd | grep modem )" ]; then
connected_to_internet=true
else
connected_to_internet=false
fi
}

# Main function
function main(){
# the app
while (true); do
check_modem_status
check_connection_state
if $modem_connected_to_pc; then
connect
fi
toggle_notification
sleep $sleeptime
done
}

# Finally, execute it
main;

## selesai ---- /usr/local/bin/connectd


Skrip ini akan berfungsi sebagai daemon yang terus menerus memonitor apakah Sony Ericsson P1i sudah terhubung ke Laptop menggunakan kabel. Jika sudah terhubung maka skrip akan langsung melakukan koneksi ke internet. Jika koneksi sukses maka akan terlihat icon di Area Notifikasi pada Taskbar. Untuk menghentikan koneksi kabel boleh langsung dicabut dan icon notifikasi akan berubah menjadi icon segitiga kuning yang menyatakan tak ada koneksi.

Supaya skrip ini dijalankan otomatis setiap kali kita login ke Gnome, kita harus meletakkannya ke dalam Session Manager. Klik System > Preferensi > Sesi dan ikuti instruksi pada layar. Jangan lupa ubah Permission menjadi executable dengan perintah sudo chmod 755 /usr/local/bin/connectd.
Jika ingin segera melihat efeknya sekarang juga tekan Alt-F2 lalu ketik connectd dan klik Run. Hubungkan Sony Ericsson P1i anda dan tunggu beberapa saat sampai terlihat ada icon baru di Tray. Anda sudah terhubung ke internet.

Apakah Skrip ini bisa digunakan untuk modem yang lain? Jawabnya bisa. Caranya anda harus mengubah modem device sesuai nama device modem anda. Caranya hubungkan modem anda ke komputer, buka Terminal, ketikkan dmesg | tail. Perhatikan nama device tty yang baru terdeteksi. Akan terbentuk device baru di folder /dev/ dengan nama seperti yang tertera pada dmesg tadi.
Beberapa nama device yang umum adalah /dev/ttyACM0, /dev/ttyACM1 (seperti pada Sony Ericson P1i), /dev/ttyACM2. Jika memakai koneksi Bluetooth nama device biasanya adalah /dev/rfcomm0, dst. Ubah baris modem=/dev/ttyACM1 pada skrip di atas dengan nama device sesuai hasil deteksi.

Adakah cara lain yang lebih mudah? Untuk anda yang malas dengan perintah baris dan skrip yang membingungkan ini, silahkan install Gnome-PPP dengan perintah sudo apt-get install gnome-ppp, atau melalui Add/Remove Program pada menu. Sesudah terinstall, jalankan Gnome-PPP melalui menu Aplikasi>Internet>Gnome-PPP. Hubungkan modem anda (misalnya Sony Ericsson P1i atau Huawei E222) ke komputer, klik Setup, klik Detect. Kemudian klik Init Strings. Pada kolom Init string2 ketikkan AT+CGDCONT=1, "ip", "telkomsel" jika mau memakai telkom flash Volume-Based, atau ganti dengan "internet" jika mau memakai Time-Based.

Kenapa memakai skrip jika ternyata ada cara yang lebih gampang dengan Gnome-PPP? Jawab: saya malas tiap kali harus klik beberapa kali untuk melakukan koneksi. Lagipula jika koneksi tiba-tiba putus (sering terjadi), saya harus melakukan klik Connect lagi secara manual. Komputer tidak bisa ditinggalkan ketika melakukan download panjang karena tiap kali putus harus intervensi manual. Untunglah Linux penuh dengan kebebasan. Dengan mudah kita membuat sebuah program sederhana dengan peralatan seadanya tapi berfungsi sesuai keinginan kita. Skrip ini akan melakukan koneksi ulang secara otomatis jika koneksi terputus. Warning: hati-hati jika anda memakai paket Time-Based tagihan bisa membengkak, itu sebabnya saya memilih paket Volume-Based sebagai default.

Powered by ScribeFire.

Custom Search