HSDPA Di Ubuntu (part 2)

Tulisan ini boleh dibilang sebagai lanjutan dari tulisan saya sebelumnya “HSDPA Di Ubuntu“. Di tulisan sebelumnya saya membahas tentang bagaimana menggunakan modem Option Globaltrotter Connect di Ubuntu. Kali ini saya akan menulis tentang modem Option juga tapi dengan tipe modem yang berbeda. Kebetulan saya sedang pegang modem HSDPA milik kantor, modem Option Icon 7.2 EL. Gambarnya seperti berikut ini :

Kali ini saya tes modem ini dengan Ubuntu di Lenovo saya. Petunjuk instalasinya saya dapat dari sini. Berikut langkah-langkah yang saya lakukan :

1. Cek apakah modem sudah dikenali oleh Ubuntu sebagai USB device :

tedy@lenovo:~$ lsusb
Bus 005 Device 003: ID 0bda:0158 Realtek Semiconductor Corp. Mass Stroage Device
Bus 005 Device 002: ID 5986:0141 Acer, Inc
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 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 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 0af0:6901 Qualcomm, Inc.
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
tedy@lenovo:~$

2. Tanpa konfigurasi apa-apa, modem ini akan dikenali sebagai USB storage (seperti USB flash disk). Supaya bisa berfungsi sebagai modem, kita harus mengatur Ubuntu supaya memperlakukan modem ini sebagai USB serial. Untuk itu kita perlu mengambil sebuah pre-compiled program icon_switch.c dari sini.

3. Setelah itu kita perlu mengedit file tersebut untuk mendaftarkan idProduct & idVendor dari modem ini :

tedy@lenovo:~$ vi icon_switch.c
# cukup edit bagian berikut ini untuk mengganti idProduct & idVendor
if (dev->descriptor.idVendor == 0x0af0 && dev->descriptor.idProduct == 0x6901) {

4. Karena file  icon_switch.c masih berupa pre-compiled program, maka kita perlu menyiapkan environment untuk melakukan kompilasi. Yang dibutuhkan adalah paket libusb-dev dan libusb++-dev seperti terlihat pada contoh di bawah ini :

tedy@lenovo:~$ sudo apt-get install libusb-dev libusb++-dev
[sudo] password for tedy:
Reading package lists... Done
Building dependency tree
Reading state information... Done
libusb-dev is already the newest version.
libusb++-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

5. Proses kompilasi dilakukan dengan perintah seperti berikut ini :

tedy@lenovo:~$ cc -l usb -o icon_switch icon_switch.c

6. Hasil kompilasinya adalah icon_switch; file tersebut perlu kita salin ke dalam /usr/sbin/ :

tedy@lenovo:~$ sudo cp icon_switch /usr/sbin/

7. Tahap berikutnya adalah membuat rules untuk mengotomatisasi proses switching dari mode USB storage ke USB serial. Caranya seperti berikut ini :

tedy@lenovo:/etc/udev/rules.d$ vi 10-local.rules
BUS=="usb",SYSFS{idProduct}=="1000",SYSFS{idVendor}=="05c6",RUN+="/usr/sbin/icon_switch"
BUS=="usb",SYSFS{idProduct}=="6901",SYSFS{idVendor}=="0af0",RUN+="/sbin/modprobe usbserial vendor=0x0af0 product=0x6901 maxsize=4096"

8. Langkah berikutnya adalah memodifikasi (re-compile) driver serial, untuk itu kita perlu menyiapkan paket-paket berikut ini untuk proses kompilasi :

tedy@lenovo:/etc/udev/rules.d$ sudo apt-get install build-essential linux-source
Reading package lists... Done
Building dependency tree
Reading state information... Done
build-essential is already the newest version.
linux-source is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

9.  Berikut ini adalah langkah-langkah untuk meng-compile ulang driver serial :

tedy@lenovo:/etc/udev/rules.d$ cd /usr/src/
tedy@lenovo:/usr/src$ sudo tar xjf linux-source-2.6.27.tar.bz2

tedy@lenovo:/usr/src$ cd linux-source-2.6.27/drivers/usb/serial/
tedy@lenovo:/usr/src/linux-source-2.6.27/drivers/usb/serial$ sudo vi usb-serial.c
#tambahkan baris berikut ini :
static ushort maxSize = 0;
#ganti baris berikut ini :
buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
#jadi seperti ini:
buffer_size = (endpoint->wMaxPacketSize > maxSize)?endpoint->wMaxPacketSize:maxSize;
#tambahkan baris berikut ini :
module_param(maxSize, ushort,0);
MODULE_PARM_DESC(maxSize,"User specified USB endpoint size");
tedy@lenovo:/usr/src/linux-source-2.6.27/drivers/usb/serial$ sudo make -C /lib/modules/`uname -r`/build M=`pwd`
make: Entering directory `/usr/src/linux-headers-2.6.27-7-generic'
CC [M] /usr/src/linux-source-2.6.27/drivers/usb/serial/usb-serial.o
CC [M] /usr/src/linux-source-2.6.27/drivers/usb/serial/generic.o
CC [M] /usr/src/linux-source-2.6.27/drivers/usb/serial/bus.o
CC [M] /usr/src/linux-source-2.6.27/drivers/usb/serial/ezusb.o
LD [M] /usr/src/linux-source-2.6.27/drivers/usb/serial/usbserial.o
........
........
........
LD [M] /usr/src/linux-source-2.6.27/drivers/usb/serial/usbserial.ko
CC /usr/src/linux-source-2.6.27/drivers/usb/serial/visor.mod.o
LD [M] /usr/src/linux-source-2.6.27/drivers/usb/serial/visor.ko
CC /usr/src/linux-source-2.6.27/drivers/usb/serial/whiteheat.mod.o
LD [M] /usr/src/linux-source-2.6.27/drivers/usb/serial/whiteheat.ko
make: Leaving directory `/usr/src/linux-headers-2.6.27-7-generic'
tedy@lenovo:/usr/src/linux-source-2.6.27/drivers/usb/serial$ sudo cp usbserial.ko /lib/modules/2.6.27-7-server/kernel/drivers/usb/serial/usbserial.ko
tedy@lenovo:/usr/src/linux-source-2.6.27/drivers/usb/serial$ sudo depmod -a

10.  Setelah selesai saya harus me-restart komputer terlebih dulu :

tedy@lenovo:/usr/src/linux-source-2.6.27/drivers/usb/serial$ reboot

Setelah komputer restart, saya baru menyambungkan modem ke notebook. Di /var/log/messages saya bisa melihat Ubuntu saya sudah mengenali modem tersebut sebagai modem GSM. Lihat contohnya seperti berikut ini :

tedy@lenovo:~$ tail -f /var/log/messages
Mar 19 20:25:58 lenovo kernel: [ 201.272143] usb 1-1: new full speed USB device using uhci_hcd and address 4
Mar 19 20:25:58 lenovo kernel: [ 201.437727] usb 1-1: configuration #1 chosen from 1 choice
Mar 19 20:25:59 lenovo kernel: [ 202.018523] usbcore: registered new interface driver usbserial
Mar 19 20:25:59 lenovo kernel: [ 202.021919] usbserial: USB Serial support registered for generic
Mar 19 20:25:59 lenovo kernel: [ 202.025064] usbcore: registered new interface driver usbserial_generic
Mar 19 20:25:59 lenovo kernel: [ 202.025087] usbserial: USB Serial Driver core
Mar 19 20:25:59 lenovo kernel: [ 202.056566] usbserial: USB Serial support registered for GSM modem (1-port)
Mar 19 20:25:59 lenovo kernel: [ 202.057504] option 1-1:1.0: GSM modem (1-port) converter detected
Mar 19 20:25:59 lenovo kernel: [ 202.061537] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
Mar 19 20:25:59 lenovo kernel: [ 202.065018] option 1-1:1.1: GSM modem (1-port) converter detected
Mar 19 20:25:59 lenovo kernel: [ 202.068822] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
Mar 19 20:25:59 lenovo kernel: [ 202.072324] option 1-1:1.2: GSM modem (1-port) converter detected
Mar 19 20:25:59 lenovo kernel: [ 202.076305] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
Mar 19 20:25:59 lenovo kernel: [ 202.117374] usbcore: registered new interface driver option
Mar 19 20:25:59 lenovo kernel: [ 202.117394] option: USB Driver for GSM modems: v0.7.2

Di taskbar kanan atas, Ubuntu memberi notifikasi seperti berikut ini :

Saya bisa dengan mudah menambahkan modem dengan mengklik tombol “Configure” pada notifikasi yang muncul tersebut. Saat diklik, sistem akan menampilkan jendela baru untuk menambahkan modem seperti gambar di bawah ini :

Proses penambahan modem cukup mudah, tinggal klik “Forward” sampai muncul tampilan seperti di bawah ini :

Karena modem ini berisi SIM card XL, saya jadi pilih Excelcomindo (XL) pada pilihan yang ada. Setelah menekan “Forward”, yang muncul adalah tampilan seperti di bawah ini :

Proses penambahan sudah selesai, tinggal klik “Apply”.

Untuk mulai menggunakan modem, saya tinggal klik kanan pada tombol “Network Connection” di taskbar kanan atas. Di sana sudah muncul pilihan untuk connect ke jaringan XL.

Saat sudah tersambung dengan internet lewat layanan HSDPA XL, akan muncul notifikasi seperti berikut ini :

Oh ya…saat proses koneksi dimulai, saya sempat melihat tampilan /var/log/messages seperti berikut ini :

tedy@lenovo:~$ tail -f /var/log/messages
Mar 19 21:05:54 lenovo pppd[7178]: Plugin /usr/lib/pppd/2.4.4/nm-pppd-plugin.so loaded.
Mar 19 21:05:54 lenovo kernel: [ 2597.342166] PPP generic driver version 2.4.2
Mar 19 21:05:54 lenovo pppd[7178]: pppd 2.4.4 started by root, uid 0
Mar 19 21:05:54 lenovo pppd[7178]: Using interface ppp0
Mar 19 21:05:54 lenovo pppd[7178]: Connect: ppp0 <--> /dev/ttyUSB0
Mar 19 21:05:54 lenovo pppd[7178]: CHAP authentication succeeded
Mar 19 21:05:54 lenovo pppd[7178]: CHAP authentication succeeded
Mar 19 21:05:54 lenovo kernel: [ 2597.805939] PPP BSD Compression module registered
Mar 19 21:05:55 lenovo kernel: [ 2598.026752] PPP Deflate Compression module registered
Mar 19 21:05:58 lenovo pppd[7178]: Could not determine remote IP address: defaulting to 10.64.64.64
Mar 19 21:05:58 lenovo pppd[7178]: local  IP address 10.233.73.204
Mar 19 21:05:58 lenovo pppd[7178]: remote IP address 10.64.64.64
Mar 19 21:05:58 lenovo pppd[7178]: primary   DNS address 202.152.254.245
Mar 19 21:05:58 lenovo pppd[7178]: secondary DNS address 202.152.254.246

Untuk memutus koneksi internet, saya tinggal klik pada pilihan “Disconnect” seperti terlihat pada tampilan seperti berikut ini :

Kecepatan koneksinya HSDPA XL ini cukup lumayan. Tes membuka video di Youtube cukup lancar, bisa mengimbangi kualitas koneksi Speedy saya.

4 thoughts on “HSDPA Di Ubuntu (part 2)

  1. Hi, teddy. Pertama sangat berterima kasih tipnya untuk cara pasang modem 3g pada ubuntu. tapi sy belum barhasil, maka mau tanya lagi.
    Saya pakai ubuntu 9.04 dan indosat 3.5g MF 636. Modem udah dibaca dan ada tanda ‘connected’ di taskbar(lampu modem nyala). Masalahnya firefox tidak bisa buka website. cuma ada tanda ‘look up….’ setelah itu ‘address not found’.
    Saya kira masalah setting dalam network connection.
    bisa tahu settingan benar? termasuk DNS servers.

    thanks!

    joshua

  2. @ joshua : coba saat sudah connect jalankan command2 berikut :

    # ifconfig -a
    # cat /etc/resolv.conf
    # nslookup http://www.google.com

    Kalau nslookup sudah bisa mendapatkan IPnya Google berarti masalahnya adalah koneksi Indosat Anda terlalu jelek sampai-sampai tidak bisa browsing.

  3. Trim’s tips-nya, Mohon bantuannnya untuk setting D-LINK DWM-652 3.5G expressCard di Ubuntu 9.04 kernel 2.6.30. Modem ketika disambungkan ke port usb, tdk dikenal dan hang bila diberikan perintah lsusb, juga hang klo shutdown dan booting. Padahal ketika kernel 2.6.28 yg sy gunakan modem terbaca CD-ROM.

    Tks
    Sobirin

  4. artikel yng menarik 🙂

    saya belum berhasil pada Option N.V. Qualcomm MSM6275 (PCMCIA) di Ubuntu 9.04 kernel 2.6.30

Leave a Reply