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.

Naik Taksi Termahal

Selama di Jakarta baru Jumat malam kemarin saya bayar ongkos taksi termahal. Saya naik Bluebird dari depan JW Marriot sekitar pukul 18.05. Dari Mega Kuningan rute menuju Tomang adalah lewat Casablanca lalu lurus terus melewati Tanah Abang. Jumat malam kemarin, perjalanan dari Mega Kuningan sampai fly-over Casablanca saya tempuh dalam waktu 1 jam. Macet di sepanjang Casablanca sampai tepat di samping Le Meridien. Dari sejak naik sampai ke Casablanca saya sudah terlelap beberapa kali, kebiasaan tidur di taksi :-p . Di atas fly-over Casablanca, saya lirik argo taksi sebentar ternyata sudah Rp41.000,-

Gila 😮 untuk jarak sedekat itu (dekat untuk ukuran Jakarta) saya membayar ongkos taksi sama besarnya dengan ongkos taksi biasanya dari rumah ke kantor. Kalau saya pulang dari kantor ke rumah biasanya argo taksi menujukkan angka sekitar Rp36.000,- (jarak tempuh sekitar 8 km). Sekarang untuk jarak sekitar 2 km, saya sudah harus membayar empat puluh ribuan. Kalau dihitung dengan acuan kilometer, perjalanan pulang kantor tadi bisa jadi pengalaman naik taksi termahal selama saya tinggal di Jakarta….ah benar-benar macet yang terkutuk. Untungnya sisa perjalanan melewati Tanah Abang dan Tomang bisa ditempuh dengan lancar. Sampai rumah saya bayar taksi sebesar Rp70.000,-

Padahal Jumat pagi saya sudah sedikit senang melihat lalu lintas Jakarta yang cukup lancar . Saya sempat berpikir jangan-jangan ini efek hari kejepit ini. Kamis lalu adalah hari raya Nyepi dan Jumat ini bukan cuti bersama. Saya duga banyak juga pekerja kantoran yang mengambil cuti di hari Jumat ini.  Wajar kalau Jumat pagi lalu lintas lebih lancar dibandingkan hari-hari biasa. Gara-gara melihat macet Jumat malam tadi (bukan cuma melihat tapi merasakan), saya jadi punya teori lain. Jangan-jangan gara-gara hari kejepit, banyak bos/atasan/manager/petinggi kantor yang mengambil cuti. Lalu karena atasannya cuti, karyawan (anak buahnya) banyak yang pulang cepat; semua bergegas pulang secepat-cepatnya, logis kan hal macam ini memicu macet :-p Eh tapi jangan salah…biarpun bos saya cuti & manajer saya pulang cepat, saya tetap pulang tepat waktu 😀