AlfanLA

~ Perfectionist but Flexible ~

Converting "LOVE" Into Computer Code

Modem 3G + Micro SD 8GB + extRoot di OpenWrt

Ceritanya saya sedang kesengsem neh sama yang namanya OpenWrt, tiap hari otak-atik router TP-Link TL-MR3020 yang sudah dimodifikasi sehingga ber-OS Linux (OpenWrt) setelah pulang kantor. Pada postingan sebelumnya tentang modifikasi TP-Link TL-MR3020 menjadi komputer mini tersebut, saya sudah memberikan tutorial extRoot namun menggunakan flashdisk. Nah, kali ini saya di sini akan memberikan tutorial bagaimana caranya mengaktifkan modem 3G sekaligus menggunakan fasilitas card reader yang terdapat di modem tersebut untuk extRoot secara bersama-sama.

Saya menggunakan modem 3G Huawei E173 yang sudah diberi Micro SD bermerk Toshiba berkapasitas 8GB untuk melakukan extRoot. Tanpa basa-basi lagi, mari kita laksanakan operasi ini.

Partisi Micro SD dan Mematikan Mode CD-ROM Modem

Hal yang pertama dilakukan adalah mempartisi Micro SD 8GB menjadi dua buah, partisi pertama (sda1) 7,75GB sebagai root bertipe ext4 dan partisi kedua (sda2) 256MB sebagai swap. Kemudian mematikan mode virtual CD-ROM yang ada pada modem 3G Huawei E173 supaya mempermudah kita nantinya. Langkah-langkah untuk mematikan mode virtual CD-ROM ini dapat dibaca pada postingan saya sebelumnya.

Install Packages

Setelah langkah pertama dilakukan, modem yang sudah berisi Micro SD jangan terlebih dahulu dicolokkan ke router. Install terlebih dahulu beberapa paket yang dibutuhkan.

$ opkg update
$ opkg install kmod-usb-storage kmod-fs-ext4 block-mount kmod-usb-core kmod-usb-serial kmod-usb-serial-option kmod-usb2 luci-proto-3g

Menambahkan Vendor dan Product ID Modem

Edit file /etc/modules.d/60-usb-serial dan tambahkan beberapa konfigurasi di bawah ini.

$ vi /etc/modules.d/60-usb-serial
usbserial vendor=0x12d1 product=0x1001
usbserial vendor=0x12d1 product=0x1406
usbserial vendor=0x12d1 product=0x140b
usbserial vendor=0x12d1 product=0x140c
usbserial vendor=0x12d1 product=0x1412
usbserial vendor=0x12d1 product=0x141b
usbserial vendor=0x12d1 product=0x1433
usbserial vendor=0x12d1 product=0x1436
usbserial vendor=0x12d1 product=0x14ac
usbserial vendor=0x12d1 product=0x1506

Dan restart terlebih dahulu router-nya.

extRoot

Tancapkan modem yang berisi Micro SD yang sudah siap ke port usb yang ada di router atau Hub. Jika semuanya sesuai, maka akan muncul ttyUSB0, ttyUSB1, ttyUSB2, sda, sda1, dan sda2 di /dev/.

$ ls /dev/

ls /dev/

Untuk ttyUSB0, ttyUSB1, dan ttyUSB2 adalah modem 3G Huawei E173, untuk sda, sda1, dan sda2 adalah Micro SD. Jika ttyUSB0, ttyUSB1, ttyUSB2, dan sda terdeteksi, namun sda1 dan sda2 tidak terdeteksi di /dev/, lakukan perintah berikut ini:

$ blkid /dev/sda >/dev/null 2>/dev/null

Jika sda1 yang betipe ext4 dan sda2 yang akan digunakan untuk swap sudah benar-benar terdeteksi, saatnya melakukan extRoot, lakukan perintah-perintah berikut ini dengan benar.

$ mkdir -p /mnt/sda1
$ mount /dev/sda1 /mnt/sda1
$ mkdir -p /tmp/cproot
$ mount --bind / /tmp/cproot
$ tar -C /tmp/cproot -cvf - . | tar -C /mnt/sda1 -xf -
$ umount /tmp/cproot
$ umount /mnt/sda1
$ /etc/init.d/fstab enable
$ /etc/init.d/fstab start

Ubah isi dari file fstab sesuai gambar yang ada di bawah ini.

$ vi /etc/config/fstab

fstab

Fix extRoot di Modem 3G Saat Coldstart

Sebelum router di-restart, silahkan baca langkah ini dengan seksama. Ini adalah pengalaman yang saya alami dan sempat membuat saya pusing, yaitu ketika saya sudah berhasil melakukan extRoot di atas, namun saat router OpenWrt tersebut melakukan boot pertama kali dari posisi mati (off alias coldstart), extRoot selalu gagal dieksekusi. Lihat dengan perintah dmesg memberikan hasil bahwa sda1 dan sda2 Micro SD tidak pernah terdeteksi saat boot coldstart tersebut, namun ketika router di-restart dengan perintah reboot, sda1 dan sda2 selalu terdeteksi saat boot (warmstart) dan extRoot berjalan dengan semestinya.

Setelah utak-atik berhari-hari, saya menemukan solusi untuk memperbaiki masalah tersebut, yaitu dengan menambah beberapa baris perintah di file /lib/preinit/50_determine_usb_root.

$ vi /lib/preinit/50_determine_usb_root

Dan ketik perintah berikut ini sebelum perintah sleep $extroot_settle_time.

sleep 10
SDAMODEM=`ls /dev | grep -m 1 sda`
case $SDAMODEM in
sda)
blkid /dev/sda >/dev/null 2>/dev/null
sleep 10
;;
esac

Fix Coldstart

Selesai

Restart router-nya dan lihat hasil extRoot dengan perintah df atau mount. Sekarang modem 3G Huawei E173 dapat berfungsi bersama-sama dengan extRoot Micro SD yang terdapat di dalam card reader modem.