smart

Mengoptimalkan Koneksi Modem Haier Ce 100 (cdma) di Linux

UPDATE: Bila menggunakan kernel 2.6.33 (sekarang masih rc 5) sudah tidak perlu di patch lagi!

Ceritanya sama seperti yang di blognya om imtheface (intinya usbserial lambat, module option lebih cepat tapi perlu di patch sedikit), jadi langkah ngepatch dan rekompile module kernel ikutin cara di blognya si om cuma patch nya di ganti sama ini (bisa juga di ambil dari sini kalau kurang jelas),

--- linux-2.6.30.5/drivers/usb/serial/option.c 2009-08-17 04:19:38.000000000 +0700
+++ linux-2.6.30.5/drivers/usb/serial/option-haier.c 2009-09-03 16:44:04.000000000 +0700
@@ -304,6 +304,9 @@ static int option_resume(struct usb_ser
#define DLINK_VENDOR_ID 0x1186
#define DLINK_PRODUCT_DWM_652 0x3e04+/* HAIER PRODUCTS */
+#define HAIER_VENDOR_ID 0x201e
+#define HAIER_PRODUCT_CE100 0x2009static struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
@@ -523,6 +526,7 @@ static struct usb_device_id option_ids[]
{ USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) },
{ USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) },
{ USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */
+ { USB_DEVICE(HAIER_VENDOR_ID, HAIER_PRODUCT_CE100) }, /* Haier CE100 CDMA*/
{ } /* Terminating entry */
};
MODULE_DEVICE_TABLE(usb, option_ids);

Setelah itu lakukan langkah-langkah seperti di post saya sebelumnya, cuma setelah eject tidak perlu lagi perintah modprobe manual karena modem akan otomatis dikenali kernel, setelah itu langsung ke langkah konfigurasi pppd, konek dan nikmati kecepatan yang lebih baik 🙂

Lampiran:

Koneksi Internet (Smart) dengan Haier Ce 100 (CDMA) di Linux

UPDATE: Di kernel 2.6.33 (sekarang masih rc 5), modem haier menggunakan module option dan tidak perlu di patch lagi (baca:  sudah kedetek)!

Modem ini pertama kali di colokin dikenal sebagai usb-storage, karenanya saya mencoba menggunakan usb_modeswitch untuk memancing interface modemnya, dan ternyata gatot cuy â„¢ mungkin karena Haier menggunakan product id yang sama baik ketika di kenali sebagai usb-storage maupun modem (bisa dilihat ketika di colokkan di Windows).

Jadi bagaimana dong?

  1. Tunggu beberapa saat setelah di colok, lalu coba eject drive yang di mount oleh linux (ingat eject bukan unmout), bisa melalui klik kanan dan pilih eject atau melalui terminal dengan perintah “eject /dev/sr1” (nama dev nya di sesuaikan, kadang /dev/sr0 silahkan lihat output dmesg) .
  2. Jalankan “sudo lsusb -v” dan pastikan Haier dikenali sebagai modem (ada kata-kata ” Qualcomm CDMA Technologies MSM“).
  3. Langkah terakhir untuk mengenali device lakukan, “sudo modprobe usbserial vendor=0x201e product=0x2009” (vendor dan product bisa di lihat dari output perintah lsusb -v tadi), setelah itu ketik perintah “dmesg” dan bila ada output seperti ini “generic converter now attached to ttyUSB0” berarti anda berhasil. Yay silahkan bernapas lega 🙂

Setelah modem di kenali langkah selanjutnya adalah mengkonfigurasi koneksi internet ke smart, untuk itu buat file-file konfigurasi berikut ini:

/etc/ppp/peers/smart:

/dev/ttyUSB0
460800
debug
noauth
defaultroute
noproxyarp
usepeerdns
user smart
novj
novjccomp
connect 'chat -f /etc/ppp/smart-connect'
disconnect 'chat -f /etc/ppp/smart-disco'
logfile /var/log/ppp

/etc/ppp/smart-connect:

ABORT 'BUSY'
ABORT 'NO CARRIER'
ABORT 'ERROR'
'' AT
OK ATZ
OK "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
SAY "Menghubungi Smart Telecom...\n"
OK ATDT#777

/etc/ppp/smart-disco (opsional):

" "  "\K"
" "  "+++ATH0"
SAY  "Disconnected from Smart."

/etc/chap-secret:

smart        *     smart

Setelah itu, untuk koneksi tinggal ketikkan, “sudo pon smart” dan “sudo poff smart” untuk diskonek. Konfigurasi ini sudah saya tes di Archlinux, dan seharusnya bekerja di distro lain asal usbserial di compile sebagai module (pengguna ubuntu baca ini).

Sekian 🙂

nb: Menggunakan usbserial kecepatan  download yang didapat maksimal sekitar 60 KB/s, untuk mendapatkan kecepatan lebih gunakan module option dengan sedikit patch.

edit: Bila malas eject manual, anda bisa memasukan rule udev di bawah ini:

SYSFS{idVendor}=="201e", SYSFS{idProduct}=="2009", RUN+="/usr/bin/eject %k"

Lampiran: