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/
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
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
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.