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.

Blade On the Heart

Anda yang membaca tulisan ini dan mengerti bahasa Mandarin pasti tahu apa arti karakter/huruf di samping ini. Jadi ceritanya kemarin rekan saya Joni memberi nasihat yang bagus untuk saya. Dia bilang ada 1 huruf China yang cocok untuk saya…huruf persis yang ada pada gambar di samping ini. Huruf itu adalah huruf ren katanya dibaca “jen“, bingung juga bagaimana menulis huruf ‘e’ dengan ‘topi’ di atasnya. Dalam bahasa Mandarin kalau tidak salah ada 4 macam suara (satu tulisan dengan 4 cara pengucapan, masing-masing punya arti sendiri). Secara literal, huruf ‘ren’ tersebut berarti pedang yang menancap di hati. Huruf ‘ren’ tersebut terdiri dari 2 kata. Bagian yang atas (yang berbentuk seperti M, berarti pedang), sementara bagian yang bawah (yang terlihat seperti W, berarti hati). Kamus Mandarin online Zhongwen (dibaca “cung wen”) menjelaskan kata ‘ren‘ artinya “blade in the heart” 😮

Dalam konteks nasihat Joni pada saya, ‘ren’ diartikan sebagai menahan diri. Huruf-huruf atau kata dalam bahasa Mandarin memang penuh dengan filosofi. Sebuah kata dapat terbentuk dari gabungan beberapa kata, dengan gabungan tersebut terbentuk sebuah makna baru. Memang hebat kebudayaan China itu, pantas diacungi jempol kebudayaan mereka sudah maju sekian abad sebelum Masehi dan penuh dengan ajaran filosofi.

Ya kemarin Joni memang sedang menasihati saya soal “menahan diri”. Awalnya kita sedang bicara soal menabung. Orang yang boros seperti saya memang layak dinasihati untuk menabung ;)) . Pesan moral yang saya dapat mungkin artinya lebih baik menahan diri dulu untuk kebaikan saya di masa depan. Mulai belajar menabung (diikuti hidup hemat tentunya) memang tidak mudah. Apa yang dimaksud dalam kata ren tadi mungkin bisa menggambarkan bagaimana sulitnya mulai menabung. Mengekang keinginan, belajar bersabar, menahan diri tidak konsumtif, bukan sesuatu yang gampang bahkan bisa menyakitkan (tapi bukan sesuatu yang mustahil). Menurut kamus Zhongwen kata ‘ren’ juga dapat diartikan sebagai endure (sabar). Ah memang keren huruf Mandarin yang satu ini…dalam artinya. Tiap kali mulai tidak sabaran, tiap kali mulai tidak bisa menahan diri, tinggal ingat saja ada pedang yang menancap di hati…terasa sakit tapi harus tetap bertahan.

Nah tadi sempat mikir juga bagaimana cara mengetik aksara Mandarin di Ubuntu. Dulu saya sempat menulis tentang bagaimana menulis aksara kanji/Mandarin di Windows, tulisan itu ada di sini. Googling sebentar sampai bertemu dengan panduan ini. Saya ringkas langkahnya seperti berikut ini :

  1. Instal paket-paket berikut ini :
    tedy-laptop:/# sudo apt-get install scim-qtimm im-switch scim-pinyin
    
  2. Atur cara input dengan perintah im-switch :
    tedy-laptop:/ # im-switch -z all_ALL -s scim
    
  3. Logoff dulu dari Ubuntu, setelah login kembali Anda akan menjumpai icon bebentuk keyboard di bagian notification bar (di Ubuntu by default ada di bagian kanan atas layar).
  4. Klik icon tersebut lalu pilih Chinese Simplified untuk mulai mengetik aksara Mandarin. Untuk balik lagi ke mode teks biasa silakan pilih English Keyboard. Gambar huruf di atas saya ketik di OpenOffice.

Jangan terlalu percaya pada penjelasan saya soal huruf Mandarin & cara pengucapannya…lah wong saya gak bisa bahasa Mandarin kok ;)) Saya cuma terkesan saja dengan huruf Mandarin yang itu. Tapi Anda boleh percaya pada penjelasan saya tadi soal bagaimana mengetik aksara Mandarin di komputer berbasis Linux 😀 Tambahan informasi, di situs ini Anda bisa lihat bagaimana cara menulis karakter Mandarin (garis demi garis tidak boleh salah urutannya).

Thanks Pak Jon buat nasihatnya kemarin

HSDPA Di Ubuntu

Sejak hari Sabtu kemarin, saya mencoba menyambungkan modem HSDPA rekan saya dengan Ubuntu. Baru tadi sore saya sukses menyambungkan modem tersebut. Sudah banyak referensi di Google mengenai cara menggunakan modem HSDPA di Linux (khususnya Ubuntu) tapi tidak ada yang sukses membantu saya. Referensi yang saya temui lebih banyak menggunakan model Huawei sebagai contoh kasusnya. Sedangkan modem yang ada di tangan saya adalah modem keluaran Qualcomm, namanya Option (atau Globaltrotter Connect). Modem ini menggunakan interface USB. Modem ini adalah modem yang dijual sepaket dengan Telkomsel Flash. Tapi di pasaran saya lebih banyak melihat orang membeli Telkomsel Flash yang dijual satu paket dengan modem Huawei.

Di dalam modem ini disertakan aplikasi Globaltrotter Connect, sayangnya aplikasi ini adalah aplikasi Windows. Dengan adanya aplikasi ini, pengguna Windows dapat dengan mudah menggunakan modem ini untuk berinternet. Bila modem ini ditancapkan ke port USB komputer yang menggunakan Windows, aplikasi di dalamnya langsung bekerja otomatis. Aplikasi tersebut akan langsung menginstalkan dirinya ke dalam Windows. Tunggu beberapa menit sampai muncul jendela baru untuk connect ke jaringannya Telkomsel. Tidak perlu ada driver tambahan lainnya. Nah jadi masalah ketika modem ini ditancapkan pada komputer berbasis Linux. Saat disambungkan ke port USB, Ubuntu saya mengenalinya sebagai sebuah USB storage. Sudah banyak tutorial di Internet yang saya coba tapi semuanya gagal. Walaupun demikian Ubuntu sebenarnya sudah mengenali USB tersebut. Buktinya dari output perintah lsusb sudah terlihat nama produk modem ini :

tedy-laptop:/ # sudo lsusb -v
..............
..............
Bus 004 Device 013: ID 0af0:6971 Option
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 255 Vendor Specific Protocol
bMaxPacketSize0 64
idVendor 0x0af0 Option
idProduct 0x6971
bcdDevice 0.00
iManufacturer 1 Option N.V.
iProduct 2 Globetrotter HSDPA Modem

iSerial 4 Serial Number
bNumConfigurations 1

..............
..............

Baru tadi sore saya menemukan forum yang membahas soal modem Option Globaltrotter ini. Di forum itu dijelaskan bahwa modem seperti ini harus menggunakan driver hso.

Langsung lah saya coba cara-cara yang dijelaskan di sana. Langkah-langkahnya seperti berikut ini :

1. Ambil dulu driver hso di sini, lalu ekstrak; seperti berikut ini contohnya :

tedy@tedy-laptop:~$ tar zxvf hso-1.9.tar.gz
hso_26-v1.9/
hso_26-v1.9/stop.cht
hso_26-v1.9/ports.sh
hso_26-v1.9/hso_connect.sh
hso_26-v1.9/Makefile
hso_26-v1.9/connect.sh
hso_26-v1.9/setpwr.sh
hso_26-v1.9/init.cht
hso_26-v1.9/CHANGELOG
hso_26-v1.9/README
hso_26-v1.9/hso.c
hso_26-v1.9/dial.cht
tedy@tedy-laptop:~$ cd hso_26-v1.9/
edi@edi-laptop:~/hso_26-v1.9$ ls
CHANGELOG dial.cht hso_connect.sh Makefile README stop.cht
connect.sh hso.c init.cht ports.sh setpwr.sh

2. Compile driver tersebut seperti contoh di bawah ini :

tedy@tedy-laptop:~/hso_26-v1.9$ sudo make
[sudo] password for tedy:
mkdir -p /home/tedy/hso_26-v1.9/tmp/.tmp_versions
make -C /lib/modules/2.6.27-7-server/build M=/home/tedy/hso_26-v1.9 MODVERDIR=/home/tedy/hso_26-v1.9/tmp/.tmp_versions modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.27-7-server'
CC [M] /home/tedy/hso_26-v1.9/hso.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/tedy/hso_26-v1.9/hso.mod.o
LD [M] /home/tedy/hso_26-v1.9/hso.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.27-7-server'
tedy@tedy-laptop:~/hso_26-v1.9$

tedy@tedy-laptop:~/hso_26-v1.9$ sudo make install
mkdir -p /home/tedy/hso_26-v1.9/tmp/.tmp_versions
make -C /lib/modules/2.6.27-7-server/build M=/home/tedy/hso_26-v1.9 MODVERDIR=/home/tedy/hso_26-v1.9/tmp/.tmp_versions modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.27-7-server'
Building modules, stage 2.
MODPOST 1 modules
make[1]: Leaving directory `/usr/src/linux-headers-2.6.27-7-server'
modprobe -r hso || true
install -d /lib/modules/2.6.27-7-server/kernel/drivers/net/wwan/
install -m 644 -c hso.ko /lib/modules/2.6.27-7-server/kernel/drivers/net/wwan/
/sbin/depmod -a 2.6.27-7-server
tedy@tedy-laptop:~/hso_26-v1.9$

3. Untuk mencegah supaya modem tidak dikenali sebagai usb storage biasa, saya harus menginstal Ozerocdoff. Ambil source-nya di sini lalu instal seperti contoh berikut ini :

tedy@tedy-laptop:~$ tar zxvf udev.tar.gz
udev/
udev/Makefile
udev/ozerocdoff.o
udev/hso.udev
udev/README
udev/ozerocdoff
udev/ozerocdoff.c
udev/ozerocdoff.8
udev/10-wwan-quirk.fdi
udev/osetsuspend
udev/hso-suspend.conf
udev/osethalproperty
udev/osetsuspend.8
udev/hal-serial-hsotype
udev/10-wwan-hso-preprobe.fdi
udev/ofindhsx
tedy@tedy-laptop:~$
cd udev/

tedy@tedy-laptop:~/udev$ sudo make install
install -d /usr/sbin
install -d /etc/udev/rules.d
install ozerocdoff /usr/sbin
cp hso.udev /etc/udev/rules.d/51-hso-udev.rules
install -d /usr/share/hal/fdi/preprobe/20thirdparty
cp 10-wwan-hso-preprobe.fdi /usr/share/hal/fdi/preprobe/20thirdparty
install -d /usr/share/hal/fdi/information/20thirdparty
cp 10-wwan-quirk.fdi /usr/share/hal/fdi/information/20thirdparty
install -d /usr/lib/hal/scripts/
install hal-serial-hsotype /usr/lib/hal/scripts/
install -d /etc
install osetsuspend /usr/sbin
cp hso-suspend.conf /etc
tedy@tedy-laptop:~/udev$

4. Supaya mudah saya juga perlu menginstal hsoconnect (aplikasi GUI untuk memudahkan setup koneksi). Selain hsoconnect, saya juga perlu menginstal hsolink. Keduanya dapat diambil di sini dan di sini.

tedy@tedy-laptop:~$ sudo dpkg -i hsolink_1.0.118-1_i386.deb
Selecting previously deselected package hsolink.
(Reading database ... 203111 files and directories currently installed.)
Unpacking hsolink (from hsolink_1.0.118-1_i386.deb) ...
Setting up hsolink (1.0.118-1) ...
Post install completed

Processing triggers for man-db ...
tedy@tedy-laptop:~$ sudo dpkg -i hsoconnect-py2.5_1.1.83_all.deb
Selecting previously deselected package hsoconnect-py2.5.
(Reading database ... 203119 files and directories currently installed.)
Unpacking hsoconnect-py2.5 (from hsoconnect-py2.5_1.1.83_all.deb) ...
Setting up hsoconnect-py2.5 (1.1.83) ...
Processing triggers for man-db ...
tedy@tedy-laptop:~$

5. Setelah semua selesai diinstal, baru saya tancapkan modem ke port USB. Jika modem sudah bisa “dipegang” oleh driver hso, di /var/log/messages akan muncul pesan-pesan seperti berikut ini (juga bisa dilihat interface baru /dev/ttyHS0) :

tedy-laptop:/ # tail -f /var/log/messages
Mar 9 21:04:42 tedy-laptop kernel: [14778.280084] usb 4-1: new full speed USB device using uhci_hcd and address 10
Mar 9 21:04:42 tedy-laptop kernel: [14778.446957] usb 4-1: configuration #1 chosen from 1 choice
Mar 9 21:04:42 tedy-laptop kernel: [14778.448977] scsi9 : SCSI emulation for USB Mass Storage devices
Mar 9 21:04:43 tedy-laptop kernel: [14779.750120] usb 4-1: USB disconnect, address 10
Mar 9 21:04:45 tedy-laptop kernel: [14781.280113] usb 4-1: new full speed USB device using uhci_hcd and address 11
Mar 9 21:04:45 tedy-laptop kernel: [14781.446963] usb 4-1: configuration #1 chosen from 1 choice
Mar 9 21:04:45 tedy-laptop kernel: [14781.449891] hso0: Disabled Privacy Extensions
^C
tedy-laptop:/ #
ls -lh /dev/ttyHS*
crw-rw---- 1 root dialout 252, 0 2009-03-09 21:04 /dev/ttyHS0
crw-rw---- 1 root dialout 252, 1 2009-03-09 21:04 /dev/ttyHS1
crw-rw---- 1 root dialout 252, 2 2009-03-09 21:04 /dev/ttyHS2
tedy-laptop:/ #

6. Buka aplikasi  hsoconnect seperti terlihat pada gambar di bawah ini :

7. Saya harus mengatur dulu beberapa parameter Telkomsel Flash. Caranya adalah pada jendela hsoconnect klik Profile, lalu Edit Connection. Telkomsel Flash unlimited menggunakan APN=internet (tanpa username & password). Sementara Telkomsel Flash volume based, APN yang digunakan adalah “flash“. Lihat contohnya di bawah ini.

8. Pada jendela utama hsoconnect klik Connect untuk mulai berinternet 🙂 Saat saya sudah bisa terhubung ke Internet dengan Telkomsel Flash, perintah ifconfig menghasilkan keluaran seperti berikut ini :

tedy-laptop:/ # ifconfig hso0
hso0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:114.121.189.94 P-t-P:114.121.189.94 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1486 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:116 (116.0 B) TX bytes:524 (524.0 B)

Ubuntu saya mendapat IP 114.121.189.94. File /etc/resolv.conf juga sudah ter-update dengan baik (file ini berisi alamat IP DNS server yang dipakai oleh Telkomsel Flash).

tedy-laptop:/ # cat /etc/resolv.conf
#Created by hsolinkcontrol
nameserver 202.3.210.11
nameserver 202.3.208.11
tedy-laptop:/ #

Yup selesai, sekarang bisa internetan dengan modem HSDPA walaupun tidak pakai Windows lagi…lega nya 😀 Yang masih belum bisa malah bagaimana menyambungkan ponsel Nokia 6585 sebagai modem CDMA 🙁  Next time deh saya ngoprek lagi.

My Passport Essential

Awal Maret ini saya dapat mainan baru 😀 Saya dapat hadiah harddisk eksternal Western Digital. Hadiah dari rekan saya Pak Edi, gara-gara saya membuatkan file server di kantornya. Produk keluaran Western Digital ini nama produknya adalah My Passport Essential. Harga memang berbanding lurus dengan kualitas. Dibandingkan dengan harddisk eksternal saya dulu, WD Passport ini jauh lebih keren. Dari segi tampilan saja casing WD terlihat lebih kokoh, lebih elegan. WD Passport juga dijual lengkap dengan soft case, seperti tempat kamera digital. Di dalamnya sudah disertakan pula beberapa aplikasi, salah satunya adalah aplikasi untuk mem-backup data dari Microsoft Outlook……hmm ga tertarik 😀 Tapi sayang juga kalau dihapus, jadi saya copy saja ke komputer siapa tahu kapan-kapan dibutuhkan. Hmm jadi ingat dulu Kang Ramdhan yang duluan pakai harddisk persis seperti ini.

Berikut foto mainan baru saya :

Sampai hari ini belum saya utak-atik, tapi sudah sempat dipinjam Budy rekan saya untuk mem-backup sementara PCnya. Hari ini baru saya sentuh lagi. Kapasitasnya besar cocok sekali untuk menyimpan hasil foto-foto saya. Harddisk portabel saya sebelumnya sudah megap-megap hampir penuh. Malam ini saya iseng mencari tahu bagaimana cara memformat harddisk menjadi partisi NTFS di Ubuntu. Biasanya di Ubuntu saya pakai gparted untuk urusan partisi, tapi  gparted belum support NTFS. Dari Google saya dapat info kalau saya harus install dulu aplikasi yang namanya  ntfsprogs. Untung ada di reponya Ubuntu. Begitu selesai instalasi, ada tambahan format baru di gparted, format NTFS sudah tersedia di sana. Tapi saya malah tidak jadi pakai gparted untuk memformat WD Passport ini. Saya pilih pakai mkfs.ntfs. Seperti ini contohnya :

tedy-laptop:/ #  lsusb
Bus 007 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 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 003: ID 08ff:2580 AuthenTec, Inc. AES2501 Fingerprint Sensor
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 1058:0704 Western Digital Technologies, Inc.
Bus 001 Device 002: ID 046d:09b2 Logitech, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
tedy-laptop:/ #

tedy-laptop:/ #  sudo apt-get install ntfsprogs
[sudo] password for tedy:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libntfs10
The following NEW packages will be installed:
libntfs10 ntfsprogs
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/391kB of archives.
After this operation, 950kB of additional disk space will be used.
Do you want to continue [Y/n]? y
WARNING: The following packages cannot be authenticated!
libntfs10 ntfsprogs
Install these packages without verification [y/N]? y
Selecting previously deselected package libntfs10.
(Reading database ... 255326 files and directories currently installed.)
Unpacking libntfs10 (from .../libntfs10_2.0.0-1ubuntu2_i386.deb) ...
Selecting previously deselected package ntfsprogs.
Unpacking ntfsprogs (from .../ntfsprogs_2.0.0-1ubuntu2_i386.deb) ...
Processing triggers for man-db ...
Setting up libntfs10 (2.0.0-1ubuntu2) ...


Setting up ntfsprogs (2.0.0-1ubuntu2) ...
Processing triggers for libc6 ...
ldconfig deferred processing now taking place
tedy-laptop:/ #

tedy-laptop:/ #  sudo mkfs.ntfs -L tedy-wd /dev/sdb1
Cluster size has been automatically set to 4096 bytes.
Initializing device with zeroes: 38%

Astaga ternyata lama sekali format harddisk segede ini 😮 . Ditinggal tidur saja lah.

Ps : Thanks Pak Edi hadiahnya mantap kali :))

Hasil tes kecepatan baca WD Passport ini (lebih cepat daripada PenDrive Sense saya dulu):

wd-passport test speed

Instalasi RedHat Linux Via Network

Kalau biasanya saya menginstal Linux dengan cara booting dari CD media instalasinya, kali ini saya mencoba menginstal Linux dengan cara booting dari network. Caranya saya harus  membuat sebuah server yang menyediakan media booting bagi PC lain yang terhubung dengannya. Di lingkungan Linux (dalam hal ini saya pakai Red Hat Linux) ada mekanisme Kickstart Installation.

Lewat Google saya menemukan link tentang instalasi Linux lewat network, berikut adalah panduan yang saya pakai selama utak-atik :

http://www.stanford.edu/~alfw/PXE-Kickstart/PXE-Kickstart.html#toc12

Prinsip bodoh-bodohannya bagaimana mekanisme kickstart adalah seperti ini :

“………….PC yang akan diinstal “dipaksa” untuk booting via network, dia akan mencari DHCP server yang menyediakan alamat IP. Kickstart server diatur supaya bila ada request dari PC tersebut (dia tahu dari MAC address si PC), server akan merespon dengan memberikan alamat IP tertentu. Ok setelah PC mendapat IP, dia akan mencoba menggunakan boot media yang ada pada kickstart server. Proses ini menggunakan protokol TFTP. Setelah boot media berhasil digunakan oleh PC, PC akan mencari bahan-bahan instalasi. Bahan-bahan instalasi ini akan disediakan oleh kickstart server melalui sharing NFS. Selanjutnya proses instalasi akan berjalan otomatis karena di dalam kickstart server sudah disediakan pula aturan-aturan instalasi (bagaimana partisi harddisk, apa passwordnya, aplikasi apa yang perlu diinstal, dsb)………..”

Ada beberapa hal yang perlu saya jelaskan sebelum menuliskan langkah-langkah instalasinya :

  1. Semua konfigurasi ini dijalankan oleh user root.
  2. PC yang akan dipakai sebagai installation server menggunakan sistem operasi Red Hat Linux 5.1. Untuk selanjutnya sebut saja server ini sebagai kickstart-server.
  3. PC kosong yang perlu diinstal selanjutnya kita sebut kickstart-client.

Langkah-langkah yang harus saya lakukan pada kickstart-server adalah seperti berikut ini :

1. Mount DVD Red Hat Linux (saya  pilih Red Hat Linux Enterprise). Pada contoh ini saya menggunakan file ISO image RHEL 5.1

[root@aptserver ~]# mount -o loop /home/tedy/RHEL_5-1.iso /media/iso
mount: /home/tedy/RHEL_5-1.iso already mounted on /media/iso

2. Buat sebuah direktori baru yang akan menyimpan media instalasi. Selanjutnya kita sebut direktori ini sebagai direktori-kickstart.

[root@aptserver ~]# mkdir -p /export/cdrom

3. Salin isi DVD RHEL ke dalam  direktori-kickstart, kali ini saya menggunakan rsync :

[root@aptserver ~]# rsync -rtv /media/iso/ /export/cdrom/
building file list ... done
./
.discinfo
EULA
GPL
README-as.html
README-bn.html
README-de.html
..............
..............
..............
isolinux/rescue.msg
isolinux/splash.lss
isolinux/vmlinuz

sent 2987057878 bytes  received 52700 bytes  11083898.25 bytes/sec
total size is 2986502132  speedup is 1.00

4. Share  direktori-kickstart dengan menggunakan NFS. Caranya adalah dengan mendaftarkan direktori tersebut ke dalam file  /etc/exports seperti pada contoh berikut ini :

[root@aptserver cdrom]# cat /etc/exports
/export/cdrom/      192.168.1.20/255.255.255.0 (ro)
[root@aptserver cdrom]#

Kita juga mengatur komputer mana saja yang boleh mengakses NFS share direktori tersebut. Pada contoh di atas, yang boleh mengakses hanyalah komputer dengan alamat IP 192.168.1.20. Oh ya, client hanya boleh mengakses direktori tersebut secara read only. Setelah konfigurasi selesai baru kita mulai menjalankan service NFS server seperti berikut ini :

[root@aptserver cdrom]# service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
[root@aptserver cdrom]# service nfs status
rpc.mountd (pid 2460) is running...
[root@aptserver cdrom]# showmount -e
Export list for aptserver:
/export/cdrom 192.168.1.20/255.255.255.0

5. kickstart-client akan mencari media boot yang tersedia di jaringan melalui protokol TFTP (trivial file transfer protocol). Buat sebuah direktori baru yang akan berfungsi sebagai boot directory, selanjutnya kita sebut direktori-TFTP.

[root@aptserver ~]# mkdir /tftpboot/
[root@aptserver ~]# mkdir /tftpboot/pxelinux.cfg/

6. Copy kernel image ke dalam direktori-TFTP :

[root@aptserver ~]# cp /export/cdrom/images/pxeboot/initrd.img /tftpboot
[root@aptserver ~]# cp /export/cdrom/images/pxeboot/vmlinuz /tftpboot

7. Copy file pxelinux.0 ke dalam direktori TFTP. File pxelinux.0 dapat diambil di dalam direktori-kickstart atau bisa juga diambil di dalam /usr/lib/syslinux/  :

[root@aptserver ~]# cp /export/cdrom/syslinux-3.73/core/pxelinux.0 /tftpboot/

8. Buat kickstart profile di dalam direktori-TFTP.  Contohnya seperti berikut ini :

[root@aptserver ~]# cat /tftpboot/pxelinux.cfg/default.netks-7.2
default linux
serial 0,9600n8
label linux ks=192.168.1.5:/export/cdrom/
kernel vmlinuz
append ksdevice=eth0 console=ttyS0,38400 console=tty0 load_ramdisk=1 initrd=initrd.img
network ks=nfs:192.168.1.5:/export/cdrom/ks.cfg
[root@aptserver ~]#

9. Buat softlink dari kickstart profile tadi. Pada contoh di bawah ini, link yang dibuat adalah  C0A80114. Kombinasi itu berasal dari alamat IP 192.168.1.20 yang diubah ke dalam bentuk hexadecimal : 192 -> C0, 168 -> A8, 1 -> 01, 20 -> 14. IP ini adalah alamat IP yang akan dipakai oleh  kickstart-client, akan dibahas di langkah selanjutnya.

[root@aptserver pxelinux.cfg]# ln -s default.netks-7.2 C0A80114
[root@aptserver pxelinux.cfg]# ls -lh
total 8.0K
lrwxrwxrwx 1 root root  17 Jan 31 04:30 C0A80114 -> default.netks-7.2
-rw-r--r-- 1 root root  38 Jan 31 02:04 default
-rw-r--r-- 1 root root 222 Jan 31 05:01 default.netks-7.2

10. Tahap berikutnya adalah menginstal TFTP server . Pada contoh ini saya menggunakan atftpd sebagai TFTP server. Oh ya karena paket atftpd tidak tersedia di dalam DVD instalasi Red Hat, jadi saya harus download dulu.

[root@aptserver ~]# wget http://www.silfreed.net/download/repo/packages/atftp/atftp-0.7-5.fc8.i386.rpm
--04:18:14--  http://www.silfreed.net/download/repo/packages/atftp/atftp-0.7-5.fc8.i386.rpm
Resolving www.silfreed.net... 66.59.109.136, 2002:423b:6d88::1
Connecting to www.silfreed.net|66.59.109.136|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 83279 (81K) [application/x-rpm]
Saving to: `atftp-0.7-5.fc8.i386.rpm'

100%[====================================================================================>] 83,279   28.0K/s   in 2.9s

04:18:18 (28.0 KB/s) - `atftp-0.7-5.fc8.i386.rpm' saved [83279/83279]

[root@aptserver ~]# rpm -i atftp-0.7-5.fc8.i386.rpm
warning: atftp-0.7-5.fc8.i386.rpm: Header V3 DSA signature: NOKEY, key ID ed00d312
error reading information on service atftp: No such file or directory
error: %post(atftp-0.7-5.fc8.i386) scriptlet failed, exit status 1
[root@aptserver ~]#
[root@aptserver ~]# rpm -ivh atftp-0.7-5.fc8.i386.rpm
warning: atftp-0.7-5.fc8.i386.rpm: Header V3 DSA signature: NOKEY, key ID ed00d312
Preparing...                ########################################### [100%]
package atftp-0.7-5.fc8 is already installed
[root@aptserver ~]#

11. Setelah TFTP server terinstal, yang harus dilakukan adalah melakukan konfigurasi seperti berikut ini :

[root@aptserver ~]# /usr/sbin/atftpd --daemon --no-multicast --group nobody --tftpd-timeout 0 -m 1000 /tftpboot/

Dengan perintah di atas, kita memberitahu TFTP server untuk menggunakan /tftpboot/ sebagai direktori TFTP.

12. Saat mulai proses booting dari network, kickstart-client akan meminta alamat IP dari kickstart-server. Oleh karenanya, selain menjalankan TFTP server,  kickstart-server juga berfungsi sebagai DHCP server. Untuk menjalankan servis DHCP di Red Hat Linux, kita harus mengatur file /etc/dhcpd.conf terlebih dulu. Lihat contohnya sebagai berikut :

[root@aptserver Server]# cat /etc/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
ddns-update-style interim;
ignore client-updates;
default-lease-time 600;
max-lease-time 7200;
deny unknown-clients;
not authoritative;
option domain-name "tedytirta.com";
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
allow bootp;
allow booting;
subnet 192.168.1.0 netmask 255.255.25.0 {
range 	192.168.1.18 192.168.1.21;
option routers		192.168.1.1;
option subnet-mask	255.255.255.0;
}
group {
next-server 192.168.1.5;
filename "gpxelinux.0";
host JumpstartClient {
hardware ethernet 08:00:27:E4:57:BB;
fixed-address 192.168.1.20;
}
}
[root@aptserver Server]#

Di dalam file/etc/dhcpd.conf kita mendaftarkan MAC address dari kickstart-client supaya bisa memperoleh IP address. Selain itu pada contoh di atas, saya juga mendefinisikan bahwa kickstart-client akan menggunakan alamat IP 192.168.1.20. Setelah file /etc/dhcpd.conf selesai diatur, baru kita bisa menjalankan DHCP server seperti terlihat pada contoh berikut ini :

[root@aptserver Server]# service dhcpd start
Starting dhcpd:                                            [  OK  ]
[root@aptserver Server]#

13. Langkah terakhir adalah membuat sebuah file konfigurasi. File ini mendeskripsikan proses instalasi yang harus dijalankan oleh kickstart-client (bagaimana partisi harddisk, apa password rootnya, aplikasi apa yang perlu diinstal, alamat IP yang harus dipakai, dsb). File ini disimpan di dalam  direktori-kickstart. Dengan adanya file ini tidak perlu lagi ada intervensi user pada saat instalasi, kita cukup boot kickstart-client lewat network dan tunggu sampai instalasi selesai. Makanya penting sekali mengatur file ini, file ini mendeskripsikan segala detail proses instalasi. Lihat contohnya berikut ini :

[root@aptserver cdrom]# cat /export/cdrom/ks.cfg
# Kickstart file automatically generated by anaconda.
install
text
nfs --server 192.168.1.5 --dir /export/cdrom
key --skip
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto=static --ip=192.168.1.231 --netmask=255.255.255.0 --gateway=192.168.1.1
rootpw --iscrypted $1$.dZrkeXj$CLB4rgZWpI7bzX5W5NINS/
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
reboot
selinux --enforcing
timezone --utc Asia/Jakarta
bootloader --location=mbr --driveorder=hda --append="acpi=off rhgb quiet"
clearpart --all --drives=hda --initlabel
part /boot --fstype ext3 --size=100 --ondisk=hda --asprimary
part / --fstype ext3 --size=1024 --grow --ondisk=hda --asprimary
part swap --size=128 --grow --size=256 --ondisk=hda --asprimary
%packages
@mysql
@editors
@system-tools
@text-internet
@legacy-network-server
@dns-server
@dialup
@core
@base
@ftp-server
@network-server
@java
@smb-server
@base-x
@kde-desktop
@development-libs
@web-server
@printing
@mail-server
@server-cfg
@sql-server
@admin-tools
@development-tools
@graphical-internet
audit
kexec-tools
bridge-utils
device-mapper-multipath
dnsmasq
vnc-server
#xorg-x11-utils
xorg-x11-server-Xnest
xorg-x11-server-Xvfb
-compiz-kde
-knetworkmanager
-amarok
imake
-sysreport
mc
festival
libgnome-java
libgtk-java
libgconf-java
kexec-tools
%post
useradd -d /home/tedy -m -p tedy123 tedy
mv /etc/motd /etc/motd.orig
echo "" >> /etc/motd
echo "========================================" >> /etc/motd
echo " Kickstart Client Server" >> /etc/motd
echo "========================================" >> /etc/motd
echo "" >> /etc/motd
[root@aptserver cdrom]#

Pada contoh di atas, password root yang saya pakai dalam bentuk terenkripsi. Supaya mudah, saya salin saja password kickstart-server (lihat dari file  /etc/passwd ).

Ok sampai di sini semua konfigurasi kickstart-server sudah selesai. Tinggal tes, lihat hasil yang saya dapat :

Dalam contoh ini  kickstart-client yang saya pakai adalah sebuah virtul mesin (dibuat dengan Sun VirtualBox). Saya masuk BIOSnya lalu saya set supaya boot via network. Dan lihat proses instalasi berjalan otomatis sampai selesai. Saya tinggal tunggu sampai muncul halaman login…..ah senangnya 😀 Proses ini berguna sekali kalau ingin menginstal Linux ke dalam beberapa PC sekaligus.

Wah ternyata tulisan ini panjang sekali, lega juga bisa selesai menulisnya di blog ini. Padahal sudah lama juga saya melakukan tes instalasi kickstart. Ok sekarang saatnya berangkat ke kantor :-p