Setelah mendapat notebook baru, sekalian beli modem Smartfren. Iseng-iseng coba plug-in di Ubuntu box. Setelah dicolok ternyata tidak terjadi apa-apa, malah di desktop muncul drive baru…😦

Browsing sana-sini, ternyata modem USB ini bersifat flip-flop. Para vendor hardware sekarang ini tentunya ingin menekan cost, sambil tetap mempertahankan kinerja barang yang dijualnya. Terciptalah USB mode flip-flop, dimana tertanam driver didalamnya di lokasi memory yang bersifat read-only (seperti USB Flash-disc, tapi tidak bisa untuk menyimpan file).

Dengan sedikit pe-de browse isi file di modem tersebut…huaaa….😦 ternyata hanya berisi driver untuk windows saja….

Browsing lagi untuk mencari driver ubuntu, inilah hasilnya:

Pertama kali download package usb-modeswitch untuk USB yang flip-flop

~$ sudo apt-get  install usb-modeswitch

Selanjutnya wvdial untuk modem dialer

~$ sudo apt-get install wvdial

Dilanjut dengan mencolok modem Smartfren CE682 yang pertama kali akan dikenal sebagai CD-ROM

$ dmesg |tail
[56954.437654] scsi: killing requests for dead queue
[56954.437699] scsi: killing requests for dead queue
[56954.437743] scsi: killing requests for dead queue
[56954.437788] scsi: killing requests for dead queue
[56954.437832] scsi: killing requests for dead queue
[56954.443426] sr1: scsi-1 drive[56954.443562] sr 17:0:0:0: Attached scsi CD-ROM sr1
[56954.443644] sr 17:0:0:0: Attached scsi generic sg2 type 5
[56954.809916] ISO 9660 Extensions: Microsoft Joliet Level 1
[56954.817650] ISOFS: changing to secondary root

Lanjutkan dengan mengetikkan perintah:

$ sudo eject /dev/sr1
$ dmesg |tail
[57453.026037] usb-storage: device scan complete
[57453.027115] scsi 18:0:0:0: Direct-Access     SDVDISK  EVDO ReV A       7.00 PQ: 0 ANSI: 0 CCS

Modem sudah terbaca, untuk memastikannya jalankan:

$ lsusb
Bus 002 Device 016: ID 201e:1022 
Bus 002 Device 003: ID 0000:0000
Bus 002 Device 002: ID 8087:0020
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 13ba:0017 Unknown PS/2 Keyboard+Mouse Adapter
Bus 001 Device 003: ID 0cf3:1006 Atheros Communications, Inc.
Bus 001 Device 002: ID 8087:0020
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Sudah terbaca vendor id dan product id : Bus 002 Device 016: ID 201e:1022, walaupun nama vendor belum terbaca tidak menjadi masalah.

Pengaturan selanjutnya adalah penambahan konfigurasi:

$ sudo vim /etc/usb_modeswitch.conf

Tambahkan konfigurasi ini dibagian akhir:

########################################################
#/etc/usb_modeswitch.conf
#
# Smart Haier CE682 (EVDO)
#
########################################################
DefaultVendor = 0x201e
DefaultProduct = 0×1022
TargetVendor = 00x201e
TargetProduct = 0×1022
MessageContent=”5553424312345678c00000008000069f030000000000000000000000000000″

Harap diingat, nilai DevaultVendor dan DevaultProduct harus sesuai dengan hasil lsusb sebelumnya

Lanjutkan dengan pembuatan rule:

$ sudo vim etc/udev/rules.d/99-haier-ce682.rules

yang isinya:

########################################################
# /etc/udev/rules.d/99-zte-ce682.rules
#
# Smart Haier CE682 (EVDO)
#########################################################
SUBSYSTEM==”usb”, SYSFS{idVendor}==”201e”,SYSFS{idProduct}==”1022″,
RUN+=”/usr/sbin/usb_modeswitch –default-vendor 0x201e –default-product 0×1022 –message-content 5553424312345678c00000008000069f030000000000000000000000000000″

Agar kernel linux bisa membaca semua konfigurasi diatas, jalankan perintah:

$ sudo modprobe usbserial vendor=0x201e product=0×1022

Langkah selanjutnya adalah pendeteksian modem dengan software wvdial:

$ sudo wvdialconf
Editing `/etc/wvdial.conf'.
Scanning your serial ports for a modem.
ttyS0: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS0: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS0: ATQ0 V1 E1 -- and failed too at 115200, giving up.Modem Port Scan: S1 S2 S3 WvModem: Cannot get information for serial port.
ttyUSB0: ATQ0 V1 E1 -- OKttyUSB0: ATQ0 V1 E1 Z -- OKttyUSB0: ATQ0 V1 E1 S0=0 -- OK
ttyUSB0: ATQ0 V1 E1 S0=0 &C1 -- OKttyUSB0: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB0: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB0: Modem Identifier: ATI -- Manufacturer: +GMI: China TeleComttyUSB0: Speed 9600: AT -- OK
ttyUSB0: Max speed is 9600; that should be safe.
ttyUSB0: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OKWvModem: Cannot get information for serial port.
ttyUSB1: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baudttyUSB1: ATQ0 V1 E1 -- failed with 9600 baud, next try: 9600 baud
ttyUSB1: ATQ0 V1 E1 -- and failed too at 115200, giving up.WvModem: Cannot get information for serial port.
Found a modem on /dev/ttyUSB0.Modem configuration written to /etc/wvdial.conf.
ttyUSB0: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"

Jangan lupa lakukan perbaikan pada file /etc/wvdial.conf

$ sudo vim /etc/wvdial.conf

tambahkan baris berikut diakhir file:

[Dialer smart]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Stupid Mode = 1
Modem Type = Analog Modem
Command Line = ATDT
ISDN = 0
New PPPD = yes
Phone = #777
Modem = /dev/ttyUSB0
Username = smart
Password = smart
Baud = 460800

jangan lupa untuk menyimpan file yang sudah disunting tadi. Langkah terakhir untuk mencoba dial, lakukan perintah:

$ sudo wvdial smart
> WvDial: Internet dialer version 1.61
–> Cannot get information for serial port.
–> Initializing modem.
–> Sending: ATZ
ATZ
OK
–> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0OK–> Modem initialized.
–> Sending: ATDT#777
–> Waiting for carrier.
ATDT#777
CONNECT 3100000
–> Carrier detected.
Starting PPP immediately.
–> Starting pppd at Sat Nov 26 09:50:26 2011
–> Pid of pppd: 3161
–> Using interface ppp0
–> local IP address 10.254.169.102
–> remote IP address 10.20.31.22
–> primary DNS address 10.17.3.252
–> secondary DNS address 10.17.3.245

Begitu sudah ada ip number yang keluar, seharusnya sudah bisa browsing…🙂

Supaya tidak repot dengan langkah-langkah diatas, buatlah file berekstensi .sh isinya:

#!/bin/bash
sudo eject /dev/sr1
sleep 2
sudo modprobe usbserial vendor=0x201e product=0×1022
sleep 2
sudo wvdial Smart

Simpan dengan nama misalnya smart.sh, jangan lupa ubah permission agar bisa di execute dengan perintah

$ sudo chmod +x smart.sh

Untuk menjalankannya tinggal ketik ./smart.sh atau buat launcher untuk mempermudah..🙂