linux

Ekstrak File Zip yang Rusak

Baru sadar tenyata bsdtar bisa di gunakan untuk mengekstrak file zip yang rusak (misalnya karena gagal waktu download)

bsdtar xvf file.zip

Bagi yang pakai Archlinux bsdtar merupakan bagian dari paket libarchive dan sudah terinstal secara default (sebagai dependencies dari pacman). Bagi pengguna distro lain ya silahkan install libarchive 😛

Mengoptimalkan Koneksi Modem Haier Ce 100 (cdma) di Linux

UPDATE: Bila menggunakan kernel 2.6.33 (sekarang masih rc 5) sudah tidak perlu di patch lagi!

Ceritanya sama seperti yang di blognya om imtheface (intinya usbserial lambat, module option lebih cepat tapi perlu di patch sedikit), jadi langkah ngepatch dan rekompile module kernel ikutin cara di blognya si om cuma patch nya di ganti sama ini (bisa juga di ambil dari sini kalau kurang jelas),

--- linux-2.6.30.5/drivers/usb/serial/option.c 2009-08-17 04:19:38.000000000 +0700
+++ linux-2.6.30.5/drivers/usb/serial/option-haier.c 2009-09-03 16:44:04.000000000 +0700
@@ -304,6 +304,9 @@ static int option_resume(struct usb_ser
#define DLINK_VENDOR_ID 0x1186
#define DLINK_PRODUCT_DWM_652 0x3e04+/* HAIER PRODUCTS */
+#define HAIER_VENDOR_ID 0x201e
+#define HAIER_PRODUCT_CE100 0x2009static struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
@@ -523,6 +526,7 @@ static struct usb_device_id option_ids[]
{ USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) },
{ USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) },
{ USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */
+ { USB_DEVICE(HAIER_VENDOR_ID, HAIER_PRODUCT_CE100) }, /* Haier CE100 CDMA*/
{ } /* Terminating entry */
};
MODULE_DEVICE_TABLE(usb, option_ids);

Setelah itu lakukan langkah-langkah seperti di post saya sebelumnya, cuma setelah eject tidak perlu lagi perintah modprobe manual karena modem akan otomatis dikenali kernel, setelah itu langsung ke langkah konfigurasi pppd, konek dan nikmati kecepatan yang lebih baik 🙂

Lampiran:

Koneksi Internet (Smart) dengan Haier Ce 100 (CDMA) di Linux

UPDATE: Di kernel 2.6.33 (sekarang masih rc 5), modem haier menggunakan module option dan tidak perlu di patch lagi (baca:  sudah kedetek)!

Modem ini pertama kali di colokin dikenal sebagai usb-storage, karenanya saya mencoba menggunakan usb_modeswitch untuk memancing interface modemnya, dan ternyata gatot cuy â„¢ mungkin karena Haier menggunakan product id yang sama baik ketika di kenali sebagai usb-storage maupun modem (bisa dilihat ketika di colokkan di Windows).

Jadi bagaimana dong?

  1. Tunggu beberapa saat setelah di colok, lalu coba eject drive yang di mount oleh linux (ingat eject bukan unmout), bisa melalui klik kanan dan pilih eject atau melalui terminal dengan perintah “eject /dev/sr1” (nama dev nya di sesuaikan, kadang /dev/sr0 silahkan lihat output dmesg) .
  2. Jalankan “sudo lsusb -v” dan pastikan Haier dikenali sebagai modem (ada kata-kata ” Qualcomm CDMA Technologies MSM“).
  3. Langkah terakhir untuk mengenali device lakukan, “sudo modprobe usbserial vendor=0x201e product=0x2009” (vendor dan product bisa di lihat dari output perintah lsusb -v tadi), setelah itu ketik perintah “dmesg” dan bila ada output seperti ini “generic converter now attached to ttyUSB0” berarti anda berhasil. Yay silahkan bernapas lega 🙂

Setelah modem di kenali langkah selanjutnya adalah mengkonfigurasi koneksi internet ke smart, untuk itu buat file-file konfigurasi berikut ini:

/etc/ppp/peers/smart:

/dev/ttyUSB0
460800
debug
noauth
defaultroute
noproxyarp
usepeerdns
user smart
novj
novjccomp
connect 'chat -f /etc/ppp/smart-connect'
disconnect 'chat -f /etc/ppp/smart-disco'
logfile /var/log/ppp

/etc/ppp/smart-connect:

ABORT 'BUSY'
ABORT 'NO CARRIER'
ABORT 'ERROR'
'' AT
OK ATZ
OK "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
SAY "Menghubungi Smart Telecom...\n"
OK ATDT#777

/etc/ppp/smart-disco (opsional):

" "  "\K"
" "  "+++ATH0"
SAY  "Disconnected from Smart."

/etc/chap-secret:

smart        *     smart

Setelah itu, untuk koneksi tinggal ketikkan, “sudo pon smart” dan “sudo poff smart” untuk diskonek. Konfigurasi ini sudah saya tes di Archlinux, dan seharusnya bekerja di distro lain asal usbserial di compile sebagai module (pengguna ubuntu baca ini).

Sekian 🙂

nb: Menggunakan usbserial kecepatan  download yang didapat maksimal sekitar 60 KB/s, untuk mendapatkan kecepatan lebih gunakan module option dengan sedikit patch.

edit: Bila malas eject manual, anda bisa memasukan rule udev di bawah ini:

SYSFS{idVendor}=="201e", SYSFS{idProduct}=="2009", RUN+="/usr/bin/eject %k"

Lampiran:

pon poff telkomsel flash unlimited

Berhubung ada yang tanya ya saya tulis, letakkan baris di bawah ini di /etc/ppp/peers/telkomsel

/dev/ttyUSB0
460800
debug
noauth
defaultroute
noproxyarp
usepeerdns
novj
novjccomp
connect 'chat -f /etc/ppp/chat-flash'

letakkan baris di bawah ini di /etc/ppp/chat-flash

ABORT   'BUSY'
ABORT   'NO CARRIER'
ABORT   'ERROR'
''      AT
OK      ATZ
OK      "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
OK      AT+CGDCONT=1,"IP","Internet"
SAY     "Menghubungi telkomnyet flash unlimited APN Internet...\n"
OK      ATDT*99***1#

selesai, ketik pon untuk connect, poff untuk disconnect
uh.. sedikit tambahan belakangan ini kalau menggunakan apn Internet, telkomsel memberi kita ip yang depannya 114 (dulunya 221), dan entah kenapa apabila saya dapat ip ini sering sekali tidak dapat mengakses beberapa situs di luar. Solusinya ? ya connect-disconnect sampai dapet 221.
sedikit penolong untuk meng-otomatisasi connect-disconnect sampai dapat 221:

#!/bin/bash
while true
do
pon
sleep 18
headip=$(ifconfig ppp0 | awk -F '[ :.]*' '/addr:/{print $4}')
if [ $headip = 221 ]; then
break
fi
poff
sleep 5
done

echo "yess... $headip"
jalankan dan tinggal tidur, mandi, pacaran, dll…