Category Archives

76 Articles

Akses WiFi Ala Debian Wheezy

Tulisan ini varian dari tulisan saya sebelumnya. Sesuai keinginan saya kalau saya sedang tidak bermain DoTA 2, saya mau mengoprek versi distro lain. Siapa tahu ada yang kesulitan.

Menyiapkan Penggerak

Saya menggunakan perangkat adapter WIFI USB LinkSys WUSB54GC.

$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 13b1:0020 Linksys WUSB54GC v1 802.11g Adapter [Ralink RT73]
Bus 002 Device 002: ID 80ee:0021 VirtualBox USB Tablet

Menurut WIKI Debian, saya harus menambahkan cabang non-free. Maafkan saya, Mbah Stallman. Saya harus mengubah /etc/apt/sources.list menjadi:

deb http://kambing.ui.ac.id/debian/ wheezy main contrib non-free
deb-src http://kambing.ui.ac.id/debian/ wheezy main contrib non-free

deb http://kambing.ui.ac.id/debian-security/ wheezy/updates main contrib non-free
deb-src http://kambing.ui.ac.id/debian-security/ wheezy/updates main contrib non-free

Ya, intinya, saya menambahkan kata non-free di belakang setiap baris penyedia repositori. Adapter WIFI saya membutuhkan binari firmware yang tidak tersedia kode sumbernya. Ya, nasib…

sudo apt-get update

Pasang binari firmware yang dibutuhkan:

sudo apt-get install firmware-ralink

Selanjutnya memasang perkakas yang dibutuhkan.

Jaringan

Yang pertama kita akan memasang dahulu firewall, baru perkakas yang lain. Ingat! Firewall harus dijalankan pertama kali sebelum sebuah antarmuka jaringan berjalan.

Memasang iptables

Cara pasangnya biasa, tapi saya menambahkan satu paket lagi. Paket iptables-persistent membuat aturan IPTables yang ada tersimpan permanen. Sehingga, aturan tersebut akan dimuat kembali saat Debian dijalankan ulang.

sudo apt-get install iptables iptables-persistent

Kalau ditanyakan apakah mau menyimpan aturan IPv4 dan IPv6, jawab saja “YES”.

Aktifkan penerusan IPv4.

sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.d/99-sysctl.conf

Baris pertama adalah cara yang dianjurkan untuk langsung mengaktifkan sebuah parameter di kernel. Baris kedua untuk menyimpan konfigurasi itu secara permanen.

Selanjutnya, aktifkan IP Masquerade pada eth0 untuk membuat NAT.

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Selanjutnya mengonfigurasi antarmuka jaringan

Antarmuka Jaringan

Sejujurnya, karena kita baru memasang firmware, kemungkinan kita harus menyalakan ulang Debian kita. Sebelum itu, siapkan konfigurasi jaringan untuk antarmuka nirkabel kita.

allow-hotplug wlan0
iface wlan0 inet static
        address 10.10.0.1
        netmask 255.255.255.0

Setelah beberapa baris ini ditambahkan, selanjutnya memasang perkakas-perkakas yang diperlukan

Perkakas

Seperti artikel sebelumnya, kita akan memasang isc-dhcp-server dan hostapd.

Memasang isc-dhcp-server

Pasang isc-dhcp-server.

sudo apt-get install isc-dhcp-server

Buat aturannya seperti pada artikel sebelum ini.

ddns-update-style none;
log-facility local7;
subnet 10.10.0.0 netmask 255.255.255.0 {
    range 10.10.0.2 10.10.0.32;
    option domain-name-servers 8.8.8.8;
    option routers 10.10.0.1;
}

Selanjutnya memasang aplikasi pengautentikasi jaringan WIFI.

Memasang hostapd

Pasang hostapd.

sudo apt-get install hostapd

Buat konfigurasi /etc/hostapd/hostapd.conf

interface=wlan0
driver=nl80211
ssid=AP Lo Nyambung2
hw_mode=g
ieee80211d=1
country_code=ID  ### 802.11d harus ada kode negara
channel=3     ### Channel 3
wmm_enabled=1 ### QoS
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=s4nD1Al4yFtW
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Perhatikan bahwa baris ieee80211h = 1 tidak ada. Aplikasi hostapd pada Debian belum mendukung itu sepertinya.

Terakhir

Muat ulang sistem operasi Debian. Seharusnya kalau tidak ada halangan mau pun rintangan, semua akan terkonfigurasi secara otomatis. Gambar ada di artike sebelumnya.

Bacaan Lebih Lanjut

Membuat WIFI Sendiri dengan hostapd, dhcpd, dan nftables

Membuat WIFI Sendiri dengan hostapd, dhcpd, dan nftables

Access point configuration

Access point configuration

Saya hendak membuat sebuah jaringan nirkabel. Jaringan nirkabel itu terhubung ke sebuah komputer yang berfungsi sebagai router. Setiap akses dari perangkat-perangkat dalam jaringan tersebut dienkapsulasi dalam NAT dan dikirim ke Internet/jaringan lainnya.

Komputer yang saya gunakan adalah GNU/Linux Gentoo dengan spesifikasi sebagai berikut:

  • Kernel Linux 3.19-pf1
  • Systemd 219

Saya pun tertarik menggunakan nftables karena dia yang akan menggantikan iptables di masa mendatang. Perkakas nftables pertama kali ada di Linux 3.13. Jadi, ya, lumayan relatif baru.

Aktifkan IP Forwarding

Setiap kali mau memakai NAT, jangan lupa mengaktifkan IP Forwarding di kernel. Lihat dulu kalau dia aktif:

$ sudo sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0

Kalau nilainya 0, berarti belum aktif. Aktifkan:

sudo sysctl -w net.ipv4.ip_forward=1

Supaya permanen, tambahkan ke konfigurasi. Ingat! Sistem ini menggunakan systemd. Jadi, berkasnya ada di /etc/sysctl.d

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.d/99-sysctl.conf

Ini kalau tadi sebelumnya IPv4 belum menyala. Kalau sudah, lewati saja. Tapi, biasanya distro-distro bakunya mematikan fitur ini.

nftables

Ada beberapa langkah yang dilakukan untuk memasang nftables:

  1. Memasang kernel yang sudah mendukung nftables.
  2. Memasang perkakas nftables.
  3. Memasang unit systemd.

Modul Kernel

Saya tidak tahu Anda menggunakan kernel versi apa. Tapi, seandainya kernel tersebut di atas 3.13, kemungkinan ada. Kalau saya kebetulan mengompilasi sendiri kernel saya. Jadinya, saya aktifkan nftables pada bagian:

-> Networking support
  -> Networking options
    -> Network packet filtering framework (Netfilter)
      -> Core Netfilter Configuration

Lalu saya centang saja semua yang berbau nf_tables di konfigurasi seperti terlihat pada gambar.

I just opt-in every "nf_tables" in Core Netfilter Configuration

I just opt-in every “nf_tables” in Core Netfilter Configuration

Setelah saya kompilasi dan pasang kernel saya. Lalu saya masuk ke sistem dengan menggunakan kernel tersebut. Selanjutnya saya memasang perkakas nftables untuk bisa memanipulasi tabel nftables.

Perkakas

Saya memasang nftables dengan cara berikut:

sudo emerge -av net-firewall/nftables

Atau gunakan pemaket dari distro kesayangan Anda masing-masing. Untuk Debian dan turunannya, ada bacaan menarik mengenai cara cepat membuat perkakas ini.

Jika sudah, ada beberapa contoh penggunaan nftables yang menarik, misalnya:

  • Melihat seluruh isi tabel:
    nft list ruleset
  • Menghapus seluruh tabel:
    nft flush ruleset
  • Menyimpan seluruh tabel ke berkas konfigurasi:
    nft list ruleset > /var/lib/nftables/rules-save
  • Memuat konfigurasi dari berkas konfigurasi:
    nft -f /var/lib/nftables/rules-save

Saya mengikuti tata letak berkas di Gentoo. Dia menaruh aturan iptables, nftables, ebtables, dan lain-lain di direktori /var/lib. Kalau Debian menaruhnya di /etc. Anda terserah mau taruh di mana, yang penting konsisten.

Inisialisasi Aturan nftables

Awal-awalnya nftables masih kosong. Saya menggunakan aturan yang telah disediakan gentoo untuk IPv4 NAT. Gentoo saat ini menaruh berbagai aturan siap pakai di /etc/nftables.

Mengapa saat ini? Karena biasanya aturan siap pakai ditaruh di /usr/share. Mungkin saja bilamana nftables sudah stabil, aturan-aturan ini dipindahkan ke sana. Ya, sudah, pakai saja:

sudo nft -f /etc/nftables/ipv4-nat

Supaya Anda tidak penasaran, isi berkas itu sebenarnya cuma aturan biasa:

#!/sbin/nft -f

table nat {
    chain prerouting    { type nat hook prerouting priority -150; }
    chain postrouting   { type nat hook postrouting priority -150; }
}

Mirip-miriplah dengan tutorial nftables NAT yang resmi.

Lalu tambahkan aturan yang mentranslasi semua paket jaringan dari wlan0 ke eth0.

sudo nft add rule nat postrouting ip saddr 10.10.0.0/24 meta oif eth0 snat 192.168.0.5

Ganti 192.168.0.5 dengan IP kartu ethernet Anda. Lihat gambar awal mengenai skema jaringan yang hendak dibangun.

Padanan di iptables

Aturan ini padanannya di iptables seperti ini:

sudo iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j SNAT --to 192.168.0.5

Lalu mengapa tidak menggunakan iptables saja biar sederhana? Judul artikel ini belajar nftables. Lagipula, sebenarnya lebih sederhana nftables, hanya saja ia belum terintegrasi dengan distro-distro yang ada saat ini. Dia masih baru, bahkan kernel yang mendukung belum masuk.

Sebelum ini saya biasanya menggunakan perintah berikut untuk iptables:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Nanti saya coba di Wheezy, deh. Kalau tidak malas, tapinya. Untuk saat ini jangan lupa untuk mematikan NAT di iptables supaya tidak kacau!

sudo rmmod iptable_nat

Menyimpan Aturan nftables

Kalau sudah selesai, seharusnya aturan nftables akan sebagai berikut:

$ sudo nft list ruleset
table ip nat {
    chain prerouting {
         type nat hook prerouting priority -150;
    }

    chain postrouting {
         type nat hook postrouting priority -150;
         ip saddr 10.10.0.0/24 oif eth0 snat 192.168.0.5
    }
}

Nah, kalau di Gentoo, dia sudah menyediakan skrip initnya. Sayangnya cuma untuk OpenRC. Kita bisa memanfaatkan skrip itu untuk menyimpan aturan NAT:

sudo /etc/init.d/nftables save

Atau cara manualnya:

sudo mkdir -p /var/lib/nftables
sudo nft list ruleset | sudo tee /var/lib/nftables/rules-save

Selanjutnya membuat aturan systemd supaya dijalankan otomatis.

Aturan systemd untuk nftables

Belum ada aturan untuk nftables. Ada seseorang yang berbaik hati untuk membuat skrip untuk systemd. Tetapi, saya memilih untuk membuat sendiri.

Skrip orang itu membuat nftables sebagai layanan. Tetapi, saya pikir seharusnya perilaku nftables sama seperti skrip ALSA dan iptables. Ia hanya perlu dijalankan sekali saja. Itu sebabnya, sama seperti kedua subsistem, saya memecah nftables menjadi tiga berkas aturan.

Aturan /usr/lib/systemd/system/nftables.service

[Unit]
Description=Store and restore nftables firewall rules
Documentation=man:nftables(8)

[Install]
Also=nftables-store.service
Also=nftables-restore.service

Aturan /usr/lib/systemd/system/nftables-restore.service

[Unit]
Description=Restore nftables firewall rules
# if both are queued for some reason, don't store before restoring 🙂
Before=nftables-store.service
# sounds reasonable to have firewall up before any of the services go up
Before=network.target
Conflicts=shutdown.target

[Service]
Type=oneshot
ExecStart=/sbin/nft -f /var/lib/nftables/rules-save

[Install]
WantedBy=basic.target

Aturan /usr/lib/systemd/system/nftables-store.service

[Unit]
Description=Store nftables firewall rules
Before=shutdown.target
DefaultDependencies=No

[Service]
Type=oneshot
ExecStart=/bin/sh -c "/sbin/nft list ruleset > /var/lib/nftables/rules-save"

[Install]
WantedBy=shutdown.target

Selanjutnya, pasang ketiga layanan tersebut:

sudo systemctl enable nftables

Selesai untuk nftables, selanjutnya mengonfigurasi antarmuka jaringan.

Mengonfigurasi Antarmuka Jaringan

Sudah menjadi aturan umum kalau firewall berjalan sebelum antarmuka jaringan diaktifkan. Dengan memulai firewall terlebih dahulu, tidak ada jeda yang bisa dipakai untuk masuk. Tidak ada waktu antara menjalankan antarmuka jaringan dengan menyalakan firewall. Itu sebabnya, nftables dipasang pertama kali sebelum antarmuka jaringan.

Kalau Anda pengguna destop, kemungkinan sudah ada NetworkManager. Untuk konfigurasi minimal, NetworkManager biasanya tidak dipasang. Antarmuka jaringan harus dipasang dengan cara lain.

Saya gagal menggunakan metode systemd-networkd. Kalau saya menggunakan infrastruktur itu, firewall (nftables/iptables) tidak ada yang berjalan! Mungkin saya ada yang kurang. Entahlah, yang pasti saya mengonfigurasi statik dengan cara lain saja.

Antarmuka eth0

Gentoo menggunakan pendekatan yang sama dengan Arch Linux. Mereka menggunakan systemd untuk menjalankan skrip Gentoo. Dengan demikian, konfigurasi Gentoo yang lama bisa dibaca. Ini konfigurasi lama saya di  /etc/conf.d/net

dns_servers=( "8.8.8.8" )

config_eth0="192.168.0.5 netmask 255.255.255.0"
routes_eth0="default via 192.168.0.1"

Cara mengaktifkan layanan adalah dengan membuat tautan simbolik dari net@.service ke net@eth0.service.

sudo ln -s /usr/lib/systemd/system/net@{,eth0}.service

Kalau Anda tidak percaya diri dengan menggunakan enumerasi BASH, bentuk lain dari perintah itu adalah

sudo ln -s /usr/lib/systemd/system/net@.service /usr/lib/systemd/system/net@eth0.service

Setelah itu, pasang layanan ini ke systemd agar dijalankan pada waktu komputer baru menyala.

sudo systemctl enable net@eth0

Kalau Debian, seperti biasa ada di /etc/network/interfaces. Jadi, mungkin systemd tidak terlalu dibutuhkan.

Antarmuka wlan0

Saya menggunakan Linksys WUSB54GC. Kemampuan yang dimiliki:

    Supported interface modes:
         * IBSS
         * managed
         * AP
         * AP/VLAN
         * WDS
         * monitor
         * mesh point

Dia bisa menjadi Access Point (AP)!

Implementasi yang kita pilih merupakan implementasi statik. Kita bisa dengan aman berasumsi bahwa IP yang dipakai tidak akan berubah.

Saya tadinya ingin membuat seperti antarmuka Ethernet. Tapi, konfigurasi gagal karena RFKill selalu memblokir wlan0 dengan soft block. Saya pun memutuskan untuk membuat sebuah layanan kecil untuk menjalankan wlan0 di /usr/lib/systemd/system/ap-static.service

[Unit]
Description=Static WLAN0 as an Access Point
Documentation=man:rfkill(8) man:ip(8)
After=network.target
After=time-sync.target

[Service]
Type=oneshot
RemainAfterExit=yes 
ExecStart=/usr/sbin/rfkill unblock all
ExecStart=/bin/ip addr add 10.10.0.1/24 dev wlan0
ExecStart=/bin/ip link set wlan0 up

[Install]
WantedBy=multi-user.target

Seperti biasa, pasang layanan ini:

sudo systemctl enable ap-static

Untuk antarmuka nirkabel sudah selesai. Saatnya memasang layanan yang akan mengonfigurasi klien WIFI.

Layanan Konfigurator WIFI

Ada dua layanan utama yang dipakai untuk tutorial kali ini. Keduanya masing-masing bisa diganti dengan yang lain. Namun, saat ini saya menggunakan dua layanan ini karena keduanya dapat dikembangkan untuk kebutuhan kompleks.

hostapd
Hostapd adalah aplikasi penyedia Access Point. Dia menyediakan autentikator, mengatur antarmuka WIFI, dan sejenisnya. Selain memiliki autentikator internal, hostapd dapat terhubung ke Radius dan mendukung ACS.
DHCPd
DHCPd adalah penyedia layanan DHCP. Layanan ini yang mengatur kepemilikan IP dan sejenisnya kepada klien. Sebenarnya masih ada udhcpd yang lebih sederhana. Yah, namanya juga belajar.

Mari konfigurasi keduanya.

Layanan hostapd

Setiap distro umum memiliki paket hostapd. Saya sendiri di Gentoo mengunakan hostapd versi:

$ sudo hostapd -v
hostapd v2.3
User space daemon for IEEE 802.11 AP management,
IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
Copyright (c) 2002-2014, Jouni Malinen <j@w1.fi> and contributors

Pertama-tama, konfigurasikan AP yang hendak kita buat. Berikut contohnya pada /etc/hostapd/hostapd.conf

# WiFi Hotspot
interface=wlan0
driver=nl80211
# Access Point
ssid=AP Lo Nyambung2
hw_mode=g
ieee80211d=1
country_code=ID  ### 802.11d/h harus ada kode negara
# WiFi Channel:
ieee80211h=1  
channel=3     ### Channel 3
wmm_enabled=1 ### QoS
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=s4nD1Al4yFtW
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Saya menyalin skrip layanan systemd hostapd yang disediakan oleh Gentoo menjadi /usr/lib/systemd/system/hostapd-wlan0.service. Alasan saya supaya kalau ada pembaharuan sistem, skrip ini tidak berubah. Lagipula, saya mengubah agar layanan berjalan setelah ap-static.service sudah berjalan. Isinya:

[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
After=network.target
After=ap-static.service

[Service]
ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd.conf

[Install]
WantedBy=multi-user.target

Setelah itu, pasang layanan ini.

sudo systemctl enable hostapd-wlan0

Selesai.

Layanan dhcpd

Seperti saya bilang, sebenarnya DHCPd agak mubazir. Tapi, berhubung sistem ringan, saya pasang saja. Oh, iya, kalau di Debian, nama paketnya isc-dhcp-server.

Gentoo:

sudo emerge -av net-misc/dhcp

Debian dan turunannya:

sudo apt-get install isc-dhcp-server

Setelah terpasang, buat berkas konfigurasi /etc/dhcp/dhcpd.conf

ddns-update-style none;
log-facility local7;
subnet 10.10.0.0 netmask 255.255.255.0 {
    range 10.10.0.2 10.10.0.32;
    option domain-name-servers 8.8.8.8;
    option routers 10.10.0.1;
}

Jangkauan IP tidak saya buat jauh karena pun jumlah maksimal klien yang terhubung ke AP tidak begitu banyak. Lain cerita kalau misalnya DHCPd kita pakai juga untuk yang lain.

Seperti biasa, saya menyalin berkas systemd DHCPd dan menamainya menjadi /usr/lib/systemd/system/dhcpd4-wlan0.service

[Unit]
Description=DHCPv4 Server Daemon
Documentation=man:dhcpd(8) man:dhcpd.conf(5)
After=ap-static.service

[Service]
ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcp -group dhcp --no-pid

[Install]
WantedBy=multi-user.target

Terakhir, pasang layanan DHCPd:

sudo systemctl enable dhcpd4-wlan0

Selesai.

Terakhir

Matikan dan kemudian hidupkan kembali komputer yang dipakai sebagai AP. Kalau benar, maka otomatis layanan ini akan berjalan.

Example on working AP.

Example on working AP from my phone.

Tamat.

Peramban Baru Vivaldi
Vivaldi browser change color like chameleon.

Peramban Baru Vivaldi

Phoronix mengumumkan tentang Vivaldi, sebuah peramban baru. Vivaldi dibangun oleh mantan CEO Opera dengan tujuan membangkitkan fitur-fitur Opera seperti dahulu. Fitur seperti mendengar para kontributor dan pengguna.

Seperti peramban baru lainnya, Vivaldi dibangun dengan menggunakan Chromium. Setelah beberapa kali mencoba, saya menemukan beberapa fitur unik:

  • Penggunaan papan ketik didukung. Pintasan-pintasan papan ketik cukup kuat untuk para pengguna mahir. Setidaknya itu yang saya lihat dari daftar pintasan papan ketik.
  • Warna dasar peramban berubah mengikuti situs yang dikunjungi. Ini menimbulkan efek immersive experience.
  • Tampilan sederhana.

Yak, kira-kira TL;DR-nya seperti itu.

Cara Pasang

Vivaldi menyediakan paket RPM dan Debian untuk dipasang. Silakan gunakan cara yang disarankan pada masing-masing sistem operasi Anda. Berhubung saya menggunakan Gentoo, cara saya berbeda. Saya asumsikan Anda sudah mengunduh berkas Debian Vivaldi_TP_1.0.83.38-1_amd64.deb (versi terbaru saat penulisan). Silakan ganti dengan versi yang lain.

Ekstraksi Vivaldi.

ar p Vivaldi_TP_1.0.83.38-1_amd64.deb \
  tar xvfJ -

Lalu pindahkan ke sistem.

sudo mv opt/vivaldi /opt
sudo mv usr/bin/vivaldi-browser /usr/bin

Jangan lupa sandbox Chromium harus punya setuid.

sudo chmod 4755 /opt/vivaldi/vivaldi-sandbox

Selesai.

Cuplikan

Tidak enak tanpa cuplikan. Omong-omong, saya ubah-ubah sedikit sebelum ambil cuplikan. Saya menyesuaikan tata letak dengan Opera saya yang dulu.

 

Tahu Gejrot, WebP, dan GIMP

Tahu Gejrot, WebP, dan GIMP

Tahu Gejrot

Tahu Gejrot

Gambar Tahu Gejrot saya ambil dengan menggunakan kamera belakang LG G2 saya. Saya lalu melakukan proses lebih lanjut:

  1. Memotong dimensi gambar menjadi 1944×1944 piksel.
  2. Mengaktifkan efek National Geographic, menunya ada di:
    Filters ► Generik ► National Geographic
  3. Simpan sebagai PNG.

Ukuran gambar yang dihasilkan adalah 6,4MB! Cukup besar. Saya pun tertarik dengan WebP yang dikenalkan oleh Google. Dia menyediakan pustaka siap pakai,

libwebp

. Pustaka ini menyediakan perkakas

cwebp

untuk mengonversi gambar dari format lain.

Jalankan

cwebp

berikut:

cwebp -resize 1080 1080 tahu-gejrot-national-geographic.png -o tahu-gejrot-national-geographic-resized.webp

Saya mengecilkan dimensi gambar menjadi 1080×1080 piksel. Ukuran berkas menjadi 169KB.

Publikasi Daring

WordPress 4.0 belum mendukung WebP. Saya harus melakukan beberapa langkah agar gambar ini bisa diunggah ke situs ini:

  1. Memperbolehkan ekstensi berkas
    .webp
    untuk dapat diunggah pada
    Upload Settings
    .
  2. Menambah MIME untuk WebP dengan menggunakan plugin
    WP Add MIME Type
    .

Walaupun saya dapat mengunduh berkas ini, ada masalah karena WordPress tidak dapat menampilkan dengan benar. WordPress memperlakukan gambar tak dikenal ini sebagai gambar dengan ukuran 1×1.

Untuk mengatasi ukuran yang tidak benar, saya lalu mengubah mode penyunting dari Visual ke Text. Pada mode Text, saya memodifikasi tag IMG dengan mengubah dimensinya sesuai gambar (

width="1080" height="1080"

). Ketika saya klik

Save Draft

, dimensi kapsi pun otomatis berubah mengikuti gambar.

Kesimpulan

Nampaknya WebP sudah siap digunakan. Saya tidak melakukan perubahan apa pun pada sisi peladen. Namun, beberapa perangkat lunak seperti WordPress masih belum bisa mengolah format gambar ini secara alami. Berita bagusnya, WordPress dapat dibuat untuk mem-bypass kekurangan itu.

Perkakas yang Digunakan

Berikut daftar perkakas yang digunakan.

National Geographic ScriptFu

Unduh kumpulan skrip yang mengandung National Geographic:

wget https://github.com/elsamuko/gimp-elsamuko/archive/master.zip
unzip master.zip

Sebelum lanjut, Anda harus mengetahui di mana letak direktori untuk meletakkan skrip GIMP. Caranya, pergi ke

Edit ► Preferences ►Folders ► Scripts

Nah, saya memilih untuk memindahkan skrip-skrip tersebut ke direktori yang ada di rumah saya.

mv gimp-elsamuko-master/scripts/* ~/.gimp-2.8/scripts/

Agar GIMP dapat langsung menggunakan skrip-skrip tersebut, pilih

Filters ► Script-Fu ► Segarkan Skrip 

cwebp

Untuk memasangnya di Debian/Ubuntu/BlankOn dan sejenisnya:

apt-get install libwebp

Kalau Gentoo:

emerge -av media-libs/libwebp
Memasang Owncloud Versi GIT

Memasang Owncloud Versi GIT

Sebelum Memulai

Beberapa hal ini silakan dilakukan terlebih dahulu berdasarkan tulisan sebelum ini:

  1. Membuat basisdata pada bagian Menyiapkan Basisdata.
  2. Membuat pengguna dan rumah pada bagian Menyiapkan Rumah.
  3. Menyiapkan PHP-FPM dan NGINX pada bagian Menyiapkan Konfigurasi Peladen.

Sehingga, berikut ini konfigurasi yang sudah dibuat:

  • Basisdata: awansendiribd
  • Login: awani
  • Rumah: /srv/awani

Selanjutnya bagian utama tulisan ini.

Mengunduh Versi GIT

Sebenarnya tidak perlu sudo bila mau masuk sebagai pengguna awani. Tapi, saya berasumsi Anda sebagai siapa saja pun bisa. Pasang semua:

sudo -u awani -g awani git clone https://github.com/owncloud/core.git /srv/awani/app
sudo -u awani -g awani git clone https://github.com/owncloud/apps /srv/awani/app/apps2
sudo -u awani -g awani git clone https://github.com/owncloud/tasks.git /srv/awani/app/apps/tasks
sudo -u awani -g awani git clone https://github.com/owncloud/documents.git /srv/awani/app/apps/documents
sudo -u awani -g awani git clone https://github.com/owncloud/activity.git /srv/awani/app/apps/activity
sudo -u awani -g awani git clone https://github.com/owncloud/bookmarks.git /srv/awani/app/apps/bookmarks
sudo -u awani -g awani git clone https://github.com/owncloud/contacts.git /srv/awani/app/apps/contacts
sudo -u awani -g awani git clone https://github.com/owncloud/3rdparty /srv/awani/app/3rdparty
sudo -u awani -g awani git clone https://github.com/owncloud/templateeditor.git /srv/awani/app/apps/templateeditor
sudo -u awani -g awani git clone https://github.com/owncloud/chat.git /srv/awani/app/apps/apps/chat

Dua baris terakhir opsional, tetapi kalau saja mau dikembangkan bisa saja. Selanjutnya, silakan lanjutkan biasa saja.

Selesai.

Memasang Viber untuk Gentoo GNU/Linux

Memasang Viber untuk Gentoo GNU/Linux

Viber adalah sebuah produk komunikasi seperti BBM, WhatsApp, dan sebagainya. Viber menyediakan aplikasi untuk dijalankan di destop. Asyiknya, destop termasuk juga GNU/Linux.

Viber menyediakan dua paket, paket Debian dan RPM. Untungnya, setelah saya periksa, pustaka yang disertakan oleh Viber dikompilasi secara statik. Artinya, GNU/Linux selain Debian, Redhat, dan sejenisnya dapat menggunakan Viber.

Mari Memasang

Unduh di laman unduh Viber untuk GNU/Linux.

wget http://download.cdn.viber.com/cdn/desktop/Linux/viber.deb

Pasang ke sistem Anda:

ar p viber.deb data.tar.gz | sudo tar xvfz - -C/

Paket Viber memasang dirinya sendiri ke /opt/viber dan beberapa ikon ke direktori standar. Selanjutnya, buat tautan ke binari Viber agar mudah dieksekusi.

sudo ln -sf /opt/viber/Viber /usr/local/bin/Viber

Selesai dan siap digunakan.

Memperketat Keamanan Situs

Memperketat Keamanan Situs

Pendahuluan

Halo, jumpa lagi di hari Jumat!

Karena isu keamanan akhir-akhir ini semakin ketat, saya merasakan perlunya pembelajaran kepada masyarakat Indonesia mengenai penggunaan enkripsi yang tepat. Entahlah, mungkin ini juga karena saya meneliti Owncloud terlalu jauh. Atau mungkin ini sekedar tulisan menambah kuota tulisan saya di blog. Ilmu memang untuk dibagi.

Orang pasti sudah tahu tentang BEAST, CRIME, dan HEARTBLEED. BEAST adalah proof-of-concept serangan terhadap enkripsi TLSv1.0 yang menyebabkan sebuah domain dapat dibajak dari implementasi TLS v1.0 yang buruk di sistem operasi. Lalu, ada CRIME yang menyerang implementasi kompresi HTTP pada TLS dan SPDY. Yang menghebohkan berikutnya adalah HEARTBLEED yang menyerang implementasi cacat OpenSSL pada implementasi ekstensi TLS heartbeat.

Yang terakhir dan teranyar adalah POODLE, eksploit terhadap SSLv3 yang menyebabkan sekarang ini orang dipaksa untuk mematikan SSLv3. Ya, kecuali Anda menggunakan IE6/7 pada Windows XP yang belum diperbaharui, sebenarnya SSLv3 sudah lama tidak diperlukan. Bahkan, sebaiknya Anda memaksa peramban Anda langsung menggunakan TLS v1.2.

Ekstensi AES-NI

Tapi… tapi… bukankah menggunakan enkripsi membuat peladen kurang responsif?

Itu dulu! Sekarang, ‘kan, sudah ada ekstensi AES-NI pada prosesor x86. Jadi, enkripsi dilakukan secara langsung oleh CPU. Saya melakukan eksperimen kecil untuk memperlihatkan perbedaan operasi biasa dan menggunakan AES-NI.

Operasi biasa menggunakan instruksi CPU normal.

$ OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-128-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128-cbc for 3s on 16 size blocks: 34349970 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 8984170 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 2337382 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 589989 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 74022 aes-128-cbc's in 3.00s
OpenSSL 1.0.1i 6 Aug 2014
built on: Fri Aug  8 06:23:32 WIB 2014
options:bn(64,64) rc4(8x,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx) 
compiler: x86_64-pc-linux-gnu-gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -O2 -pipe -march=native -mtune=native -fomit-frame-pointer -flto=8 -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block -ftree-vectorize -fno-strict-aliasing -Wa,--noexecstack
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-cbc     183199.84k   191662.29k   199456.60k   201382.91k   202129.41k

Sedangkan berikut operasi menggunakan instruksi AES-NI.

$ openssl speed -elapsed -evp aes-128-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128-cbc for 3s on 16 size blocks: 99416661 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 27157194 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 7746016 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 2005119 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 253147 aes-128-cbc's in 3.00s
OpenSSL 1.0.1i 6 Aug 2014
built on: Fri Aug  8 06:23:32 WIB 2014
options:bn(64,64) rc4(8x,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx) 
compiler: x86_64-pc-linux-gnu-gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -O2 -pipe -march=native -mtune=native -fomit-frame-pointer -flto=8 -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block -ftree-vectorize -fno-strict-aliasing -Wa,--noexecstack
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-cbc     530222.19k   579353.47k   660993.37k   684413.95k   691260.07k

Berikut tabel hasilnya:

Instruksi CPU Tipe 16-bit 64-bit 256-bit 1024-bit 8192-bit
AES-NI aes-128-cbc 530222,19 579353,47 660993,37 684413,95 691260,07
Normal 183199,84 191662,29 199456,6 201382,91 202129,41
Performa 2,8942284557 3,0227827811 3,313970909 3,3985701667 3,4198886248
Total Performa AES-NI 3,2098881874

Tampak bahwa dalam kasus ini, penggunakan AES-NI pada OpenSSL meningkatkan performa 3 kali lipat.

Dukungan AES-NI

Untuk mengetahui apakah prosesor peladen Anda mendukung AES-NI, silakan lihat dengan:

$ cat /proc/cpuinfo  | grep aes
flags           : ... aes ...

Kalau didukung, akan ada tulisan ‘aes’. Biasanya, sih, untuk prosesor AMD dan Intel yang baru [baca: keluaran tahun-tahun ini] sudah mendukung instruksi AES-NI. Kalau pun belum, bisa langsung saja mengompilasi OpenSSL dengan menggunakan instruksi SSE4 atau AVX. Ya, tapi itu di luar cakupan tulisan ini agar tidak terlalu rumit.

Untuk Debian Wheezy, OpenSSL 1.0.1e yang digunakan akan secara otomatis mendeteksi AES-NI. Tidak perlu mengompilasi sendiri untuk versi Debian tersebut. Untuk sistem operasi yang lain, silakan konsultasi kepada Mbah Gugel.

Bila Anda menggunakan KVM atau Proxmox, pastikan Anda menggunakan tipe CPU Host. Cara lain adalah pastikan instruksi AES-NI diperbolehkan untuk KVM.

Konfigurasi NGINX

Karena OpenSSL transparan, maka tidak ada yang perlu dipusingkan oleh NGINX untuk menggunakan AES-NI. NGINX hanya perlu memberitahukan protokol enkripsi yang dipakai untuk HTTPS.  Untuk itu, perhatikan contoh konfigurasi NGINX:

server {
        listen   80;
        listen  [::]:80 ipv6only=on;
        server_name  www.contoh.aja;
        server_name_in_redirect on;
        port_in_redirect on;

        access_log  /var/log/nginx/normal.access.log;
        error_log  /var/log/nginx/normal.error.log;

        ## redirect http to https ##
        rewrite        ^ https://$server_name$request_uri? permanent;
}

server {
        listen   443 ssl spdy;
        listen [::]:443 ipv6only=on ssl spdy;

        server_name  www.contoh.aja;
        server_name_in_redirect on;
        port_in_redirect on;

        ssl  on;
        ssl_certificate /etc/nginx/ssl.cert;
        ssl_certificate_key /etc/nginx/ssl.key;
        
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers         "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
        ssl_prefer_server_ciphers on;
        ssl_session_cache   shared:SSL:10m;
        ssl_session_timeout 10m;

        access_log  /var/log/nginx/ssl.access.log;
        error_log  /var/log/nginx/ssl.error.log;

        ## HERE PHP ENGINE AND OTHER REWRITE RULES ##
}

Saya akan mencoba menjelaskan beberapa bagian yang penting. Saya mengasumsikan Anda sudah tahu mengonfigurasi NGINX secara dasar sehingga saya tak perlu menjelaskan semuanya. Atau, setidaknya Anda bisa mencari langsung di Internet.

Saya sengaja tidak menyertakan aturan FastCGI PHP dan aturan-aturan rewrite untuk mengurangi kompleksitas kode. Ada banyak tutorial dasar untuk menyertakan aturan FastCGI. Lagipula, untuk aturan-aturan rewrite tergantung kepada aplikasi yang kita gunakan (Drupal, WordPress, dsb.).

Yak, langsung saja.

Mendengar di IPv4 dan IPv6

Berikut sintaksis agar NGINX mendengar semua antarmuka jaringan (IPv4 dan IPv6).

listen   80;
listen  [::]:80 ipv6only=on;

Ada alasan mengapa mengaktifkan dual stack. Universitas Indonesia (UI) sudah sejak lama memiliki satu blok (/16) IPv4 kelas B. Karena termasuk historical member dari IANA, UI juga beruntung mendapatkan satu blok /48 IPv6. Itu sebabnya, hampir semua peladen UI sudah memiliki IPv6 sendiri berikut IPv4 publik.

Mengarahkan Semua ke HTTPS

Berikut sintaksis untuk mengarahkan koneksi HTTP ke HTTPS.

rewrite        ^ https://$server_name$request_uri? permanent;

Ada tutorial lama yang menyampur koneksi HTTPS dan HTTP. Hal ini tidak sesuai dengan prinsip keamanan. Bila memang situs ingin aman sepenuhnya, maka harus semuanya harus menggunakan HTTPS. Konten campuran (berisi HTTP dan HTTPS) tidak disarankan dan beberapa peramban akan cerewet tentang itu.

Mengaktifkan SPDY

Berikut sintaksis agar NGINX menggunakan SSL (HTTPS) dengan SPDY.

listen   443 ssl spdy;
listen [::]:443 ipv6only=on ssl spdy;

Untuk akselerasi HTTPS, Google mengembangkan teknik SPDY. Hampir semua peramban modern mendukung protokol SPDY. Saya pernah membahas ini.

Mengaktifkan SSL

Baris-baris inilah yang mengaktifkan enkripsi HTTPS (SSL).

ssl  on;
ssl_certificate /etc/nginx/ssl.cert;
ssl_certificate_key /etc/nginx/ssl.key;

Baris ssl_certificate mengarahkan ke berkas sertifikat peladen. Ada tiga jenis skenario untuk berkas sertifikat peladen:

  1. Untuk menambah legitimasi, biasanya sertifikat ditandatangani oleh Certificate Authority (CA) yang sudah diakui. StartSSL menyediakan layanan ini dengan gratis. Kalau mau yang murah ada RapidSSL atau Komodo. Kalau mau lebih bonafide, gunakan VeriSign. Mereka ini biasanya sertifikat utamanya (root certificate) sudah dipasang di sistem operasi/peramban. Root certificate adalah sertifikat CA yang dipakai untuk melegitimasi sertifikat sebuah server.
  2. Ada juga organisasi yang membuat root certificate sendiri. Biasanya, mereka memasang sendiri root certificate ke sistem operasi/peramban pengguna. Ada banyak tutorial tentang itu, terutama Windows Server dan UNIX.
  3. Yang paling jamak digunakan di tutorial-tutorial biasanya menggunakan sertifikat yang ditandatangani sendiri (self-signed).

Silakan pilih skenario yang terbaik. Untuk situs bisnis biasanya menggunakan CA pihak ketiga (poin 1). Namun, untuk Intranet biasanya menggunakan poin 2.

Baris berikutnya ssl_certificate_key mengarahkan berkas kunci privat peladen. Pastikan berkas ini hanya bisa diakses baca-saja oleh root (0400).

Parameter Tambahan

Berikut parameter tambahan yang opsional. Parameter-parameter ini yang memperkuat enkripsi situs.

Hanya Gunakan TLS

Protokol SSLv3 sudah tamat semenjak POODLE beberapa hari yang lalu. Banyak yang menyarankan untuk mematikan protokol ini. Ya, berhubung protokol ini sudah sangat lama, wajar saja. Lagipula, hanya IE6/7 yang menggunakan Windows XP SP3 yang belum ditambal saja yang terpengaruh. Sisanya, dunia sudah mengenal TLS sejak lama.

Ya sudah, cukup aktifkan semua versi protokol TLS saja.

ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;

Protokol TLS pun sebenarnya tidak begitu aman. Kalau mau paranoid, hanya aktifkan TLSv1.2 saja. Tentu saja, ini mengurangi jumlah pengunjung dan peramban yang bisa mengakses situs kita.

Gunakan SHA256 AES-GCM dengan Forward Secrecy dan RC4 Sebagai Cadangan

Semenjak tahun 2011, SHA1 dianggap sudah tidak aman lagi. Lebih parah lagi, Google akan mempenalti situs-situs yang masih menggunakan SHA1 pada 1 Januari 2017. Artinya, semua situs yang masih memakai sertifikat dengan tanda tangan SHA1 akan dianggap tidak aman oleh produk-produk Google.

Bila Anda masih baru mau memasang sertifikat, gunakan sertifikat dengan tanda tangan SHA256. Atau kalau lebih bagus lagi, gunakan SHA387. Tetapi, untuk SHA387 masih jarang dan lagi mahal.

Ada banyak protokol pertukaran kunci dan saya tidak mau terlalu detail. Saat ini protokol yang aman dari gangguan adalah AES-GCM dan RC4. Protokol RC4 sudah lama dan relatif aman. Sedangkan GCM masih relatif baru, sehingga beberapa peramban lama tidak mendukung.

[Lama itu hitungannya 10 s.d. 20 tahun yang lalu, ya, kawan-kawan.]

Saat ini RC4 disarankan untuk ditinggalkan. Bukan berarti dia tidak aman. Sudah ada metodenya, tetapi untuk bisa membobol RC4 saat ini memerlukan sumber daya yang sangat besar. Jadi, RC4 relatif cukup aman.

Penggunaan AES-GCM disarankan oleh karena adanya instruksi AES-NI yang mempercepat percepat perhitungan.  Teknik ini peningkatan implementasi dari AES-CBC dengan menggunakan instruksi perangkat keras. Itu sebabnya, AES-CBC disarankan ditinggalkan.

Berikut instruksinya.

ssl_ciphers         "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";

Oh, iya, satu lagi. Dalam konfigurasi ini diaktifkan mode Forward Secrecy yang ada di TLSv1.2.

Mengaktifkan Urutan Enkripsi Di Sisi Server

Instruksinya:

ssl_prefer_server_ciphers on;

Instruksi ini mengakibat peladen akan menyuruh klien untuk menggunakan metode enkripsi yang diinginkan sesuai dengan urutan. Ini mengurangi kemungkinan klien yang sudah mendukung TLSv1.2 malah menggunakan versi terdahulu karena konfigurasi perambannya. Hal ini bisa memitigasi terhadap serangan BEAST.

Menyimpan Sesi SSL

Instruksinya:

ssl_session_cache   shared:SSL:10m;
ssl_session_timeout 10m;

Untuk keperluan optimasi, NGINX dapat menyimpan sesi SSL pada tembolok. Ada dua jenis yang didukung. Yang pertama, tembolok tersebut disimpan oleh NGINX sehingga bisa diakses oleh sesama proses-proses pekerja NGINX. Yang kedua, per pekerja menggunakan tembolok yang disediakan oleh OpenSSL. Disarankan untuk menggunakan tembolok NGINX saja.

Menurut NGINX, 1 MB mampu menampung 4000 sesi. Konfigurasi ini menggunakan 10MB sehingga kira-kira ada 40000 sesi yang didukung. Setiap sesi ini disimpan selama 10 menit saja. Silakan dikonfigurasikan sesuai kemampuan peladen Anda.

Terakhir

Setelah semua selesai, silakan menyalakan ulang NGINX. Mari saya rekap untuk Anda:

  1. Gunakan SPDY untuk mempercepat koneksi HTTPS.
  2. Gunakan kunci dengan algoritma SHA256 atau lebih yang sudah divalidasi oleh CA.
  3. Gunakan protokol TLS teranyar dengan AES-GCM dengan RC4 sebagai cadangan.
  4. Gunakan tembolok untuk mengoptimasi penggunaan TLS.

Anda pun sudah memiliki peladen yang cukup handal. Anda bisa mempelajari teknik-teknik tambahan lain mengenai SSL, misalnya menggunakan OCSP.

Terakhir, Anda perlu mengedukasi pengguna Anda agar tidak memberikan sandi kepada siapa pun dan mengganti sandi secara periodik, misalnya 6 bulan sekali. Percuma punya infrastruktur yang handal tanpa pengguna yang paham.

Nota Bene

Gunakan pihak ketiga untuk menguji SSL. Saya menggunakan perkakas dari Qualys SSL Lab. Contoh hasil pengujian konfigurasi SSL pada Blog Staff UI.

SSL Labs test on Blog Staff UI. Yeah, we need to upgrade into SHA256. The certificate is issued not long ago.

SSL Labs test on Blog Staff UI. Yeah, we need to upgrade into SHA256. The certificate is issued not long ago.

Bacaan Lebih Lanjut

Owncloud: Solusi Perangkat Lunak Bebas

Owncloud: Solusi Perangkat Lunak Bebas

Untuk memenuhi kuota menulis, saya akan menulis mengenai pemasangan Owncloud. Ini bukan karena Snowden yang memberitahukan untuk menghindari menggunakan Facebook, Google, dan Twitter. Tetapi, karena saya memang sedang iseng tentang perangkat lunak ini. Coba ada yang meminta untuk mencoba sesuatu yang lain, saya pasti menulis tentang itu.

Berbeda dengan konfigurasi biasa, saya menggunakan NGINX sebagai peladen HTTP dan PHP-FPM sebagai penyedia PHP. Hal ini karena ada WAF yang bisa dikonfigurasi nantinya apa bila Anda mau membuat ini serius. Ada banyak tambahan yang bisa dibuat dari Owncloud.

Yak, tanpa banyak basa-basi, mari kita memasang. Saya asumsikan Anda telah memasang NGINX dan MySQL pada peladen Anda. Saya juga mengasumsikan Anda menggunakan Debian atau turunannya (BlankOn atau Ubuntu).

Menyiapkan Basisdata

Pertama-tama, siapkan basisdata terlebih dahulu, masuk ke dalam terminal MySQL sebagai Administrator:

sudo mysql --defaults-file=/etc/mysql/debian.cnf

Buat basisdata dan berikan hak akses ke klien Owncloud:

CREATE DATABASE awansendiribd;
GRANT ALL PRIVILEGES ON awansendiribd.* TO 'megawan'@'localhost' IDENTIFIED BY 'week^u2heoQuuv]ah9sah]B~ahShie?t';
FLUSH PRIVILEGES;
QUIT;

Saya menggunakan pwgen untuk membuat sandi yang aman:

pwgen -y 32

Anda bisa buat sendiri sandi Anda, ganti nama basisdata, dan nama klien basisdata yang akan digunakan. Hal ini agar Owncloud Anda bisa aman. Belajarlah untuk aman.

Menyiapkan Rumah

Pada konfigurasi kali ini, saya menggunakan pengguna tersendiri untuk Owncloud. Bukan pengguna baku www-data, tetapi yang berbeda — Anda pun bisa berbeda dari tutorial ini. Caranya:

sudo adduser --home /srv/awani --disabled-password awani

Saya membedakan instalasi Owncloud dengan datanya. Mari buat kedua direktori tersebut.

sudo -u awani mkdir /srv/awani/{app,data}

Selanjutnya, unduh dan pasang Owncloud. Pada penulisan ini, yang terbaru adalah Owncloud 7.0.2. Silakan cek versi terbaru yang mungkin sudah ada saat Anda mencoba ini lagi di masa mendatang.

wget https://download.owncloud.org/community/owncloud-7.0.2.tar.bz2 -O- | \
sudo -u awani tar xvfj - -C /srv/awani/app --strip 1

Sesuaikan dengan direktori Anda sendiri.

Menyiapkan konfigurasi Peladen

Ada dua yang perlu disiapkan:

  1. Peladen PHP-FPM untuk konfigurasi PHP5.
  2. Peladen NGINX untuk HTTPS.

Sekarang konfigurasi PHP-FPM.

Konfigurasi PHP-FPM

Buat berkas konfigurasi /etc/php5/fpm/pool.d/owncloud yang berisi:

[owncloud]
;; I'm using Socket-based connection because it's safer.
;; Set only Owncloud user
user = awani
group = awani
listen = /tmp/php5-awan-awan.sock
listen.owner = awani
listen.group = awani
listen.mode = 0660

;; Set default server pools
pm = dynamic
pm.max_children = 20 
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 5 

;; Set PHP5 logging
chdir = /
php_admin_value[error_log] = /var/log/fpm-php.awan-awan.log
php_admin_flag[log_errors] = on

;; Longer execution time and bigger upload size.
php_admin_value[max_execution_time] = 300 
php_admin_value[upload_tmp_dir] = /tmp
php_admin_value[upload_max_filesize] = 16G
php_admin_value[post_max_size] = 16G

Jumlah peladen itu tidak saya rubah. Silakan Anda sesuaikan dengan kebutuhan dan kemampuan mesin Anda. Berkas yang bisa diunggah pun sampai 16GB. Secara teori, sih, berkat Menkominfo yang mau turun, tidak mungkin ada berkas sebesar itu yang diunggah.

Setelah selesai, aktifkan Owncloud dan muat ulang PHP-FPM Anda.

sudo invoke-rc.d php5-fpm restart

Sekarang saatnya mengonfigurasi NGINX.

Konfigurasi NGINX

Asal Anda tahu, CA yang beredar di pasaran masih menggunakan enkripsi 1024-bit dan 2048-bit. Kalau pun ada yang 4096-bit, mereka menjual sertifikat dengan harga mahal. Itu sebabnya, saya menggunakan sertifikat yang ditandatangani sendiri.

Sedikit tambahan, Debian dan distro GNU/Linux terbaru lainnya menolak menyertakan CA yang masih 1024-bit. Makanya tempo hari kita gagal memasang Origin. Hal ini karena Origin masih menggunakan CA yang 1024-bit. Ya, itulah nasib keamanan sebatas ilusi.

Membuat Sertifikat Ditandatangani Sendiri (Self-signed Certificate)

Mari membuat sertifikat yang bisa ditandatangani sendiri:

sudo openssl req -newkey rsa:4096 -sha512 -x509 -days 3650 -nodes -out /etc/nginx/awan-awan.pem -keyout /etc/nginx/awan-awan.key

Selanjutnya membuat konfigurasi NGINX.

Membuat Konfigurasi NGINX

Buat berkas konfigurasi /etc/nginx/sites-available/owncloud dengan isi sebagai berikut:

## REDIRECT ALL HTTP TO HTTPS
server {
        listen 80;
        server_name awan.contoh.aja; # CHANGE THE HOSTNAME!
        return 301 https://$server_name$request_uri;  # enforce https
}

## HTTPS
server {
        listen 443 ssl;
        server_name awan.contoh.aja; # CHANGE THE HOSTNAME!

        keepalive_timeout   70;

        ## DISABLE SSLv3 only TLS!
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers         AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
        ssl_certificate     awan-awan.pem;
        ssl_certificate_key awan-awan.key;
        ssl_session_cache   shared:SSL:10m;
        ssl_session_timeout 10m;

        # Path to the root of your installation
        root /srv/awani/app;

        client_max_body_size 16G; # set max upload size
        fastcgi_buffers 64 4K;

        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

        ## REWRITE FOR BETTER CLEAN URL
        rewrite ^/f/(.*)$       /public.php?service=files&t=$1;

        index index.php;
        error_page 403 /core/templates/403.php;
        error_page 404 /core/templates/404.php;

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
                deny all;
        }

        location / {
                # The following 2 rules are only needed with webfinger
                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
                rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

                rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
                rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

                rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

                try_files $uri $uri/ index.php;
        }

        #Path to default data directory
        location ~ ^/srv/awani/data/ {
            internal;
            root /;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
                try_files $1 = 404;

                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$1;
                fastcgi_param PATH_INFO $2;
                fastcgi_param HTTPS on;
                fastcgi_pass unix:/tmp/php5-awan-awan.sock;
        }

        # Optional: set long EXPIRES header on static assets
        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                expires 30d;
                # Optional: Don't log access to assets
                access_log off;
        }
}

Perhatikan kalau saya menghapus SSLv3 dari muka bumi. Setahu saya, hanya IE6 yang masih menggunakan SSLv3. Peramban modern sudah mendukung TLS. Bahkan, kalau mau lebih aman, silakan hapus selain TLSv1.2 agar aman dari gangguan SHARK.

Jalankan ulang NGINX.

 sudo ngxensite owncloud 
sudo invoke-rc.d nginx restart

Sekarang saatnya memulai pemasangan.

Menyiapkan Konfigurasi Owncloud

Setelah semua berjalan sebagai mana mestinya, saatnya membuka peramban dan mengarahkan ke alamat yang telah dibuat. Nanti ada wisaya yang berisi satu halaman konfigurasi pengguna awal (Administrator), letak data, dan konfigurasi basisdata. Saya malas membuat cuplikannya, lebih baik saya arahkan saja.

Bagian pertama adalah membuat Administrator Owncloud.

Create an admin account

  • superman
  • r4NdomP4$sW()Rd

Bagian berikutnya adalah direktori menaruh data.

Data folder

  • /srv/awani/data

Lalu konfigurasi MySQL.

Configure the database

  • megawan
  • week^u2heoQuuv]ah9sah]B~ahShie?t
  • awansendiribd
  • localhost

Setelah itu semua selesai, lalu tekan tombol Finish Setup.

Tunggu sebentar dan hasilnya Anda siap untuk masuk.

Owncloud Login page

Owncloud Login page

Selamat mencoba dan bereksplorasi! Mohon bagi-bagi ilmu kalau ada yang baru.

Bacaan Lebih Lanjut

Deadlight pada WINE dengan Menggunakan PlayOnLinux
WINE Is Not Emulator

Deadlight pada WINE dengan Menggunakan PlayOnLinux

Sebelum Ini

Ada beberapa syarat untuk dapat Memasang Deadlight.

  1. Sudah memasang PlayOnLinux.
  2. Sudah membeli/berniat membeli Deadlight dari STEAM. Saya tak sudi membantu pembajakan.
  3. Rasa haus mau belajar dan bermain.
  4. Semua dimulai dari Halaman Depan.
    PlayOnLinux front page

    PlayOnLinux front page

Selanjutnya proses pemasangan sederhana, kok. Intinya ada tiga kegiatan:

  1. Memasang WINE
  2. Memasang Lingkungan WINE untuk Steam.
  3. Memasang Steam
  4. Memainkan Deadlight

Gampang, bukan?

Memasang WINE

Untuk memasang WINE gunakan langkah seperti berikut.

  1. Dari Halaman Depan, buka menu Tools ⇒ Manage Wine versions
  2. Pastikan Anda ada di tab Wine versions (x86) untuk Wine 32-bit. Kebanyakan permainan masih memakai pustaka 32-bit.
    PlayOnLinux-WINE version Installer - 01 Pick Version

    PlayOnLinux-WINE version Installer – 01. Pick Version

  3. Pada tab tersebut, pada bagian Available Wine versions: pilihlah versi 1.7.24-LeagueOfLegendsCSMT dan tekan tombol “>” untuk dipasang.Saya tidak tertarik kepada LoL. Tetapi, teknologi CSMT membuat instruksi OpenGL berjalan secara paralel sehingga menghasilkan gambar lebih cepat.
  4. Terakhir, wisaya akan menanyakan konfirmasi Anda. Langsung saja Next.
PlayOnLinux-WINE version Installer - 00 Intro

PlayOnLinux-WINE version Installer – 00. Intro

 

Saya tidak sempat mengambil cuplikan proses pemasangan karena prosesnya di tempat saya terlalu cepat. Bukannya mau menyombongkan diri, tapi memang demikian. Setelah ini pun Wine yang kita inginkan telah tersedia.

Memasang Lingkungan WINE untuk Steam

Sekarang saatnya memasang Steam:

  1. Dari Halaman Utama pilih tombol Configure untuk membuka PlayOnLinux configuration
  2. Pada laman PlayOnLinux configuration, pilih tombol New untuk membuat sebuah lingkungan Wine baru. Menarik sekali kalau PlayOnLinux menamakan sebuah lingkungan Wine sebagai sebuah Virtual Drive.
    PlayOnLinux Configure page

    PlayOnLinux Configure page

  3. Pada laman Virtual Drive creator, tinggal Next saja.
    PlayOnLinux VirtualDrive creator

    PlayOnLinux VirtualDrive creator

  4. Seperti yang disebutkan sebelumnya, permainan Windows banyak menggunakan pustaka 32-bit. Maka, demi menjaga kompabilitas tinggi, langsung saja kita konfigurasikan Wine kita untuk lingkungan 32-bit.
    PlayOnLinux's Virtual Drive: Choose Architecture type

    PlayOnLinux’s Virtual Drive: Choose Architecture type

  5. Pilih Wine versi 1.7.24-LeagueOfLegendsCSMT.
    PlayOnLinux's Virtual Drive: Choose WINE Version

    PlayOnLinux’s Virtual Drive: Choose WINE Version

  6. Masukkan nama Lingkungan Wine yang baru dibuat.
    PlayOnLinux's Virtual Drive: Enter Wine's Environment name

    PlayOnLinux’s Virtual Drive: Enter Wine’s Environment name

  7. Sudah selesai.

Selanjutnya tutorial dimulai dari halaman PlayOnLinux configuration. Sebagai contoh, lingkungan WINE yang dipakai adalah “steamjp”. Iya, saya kurang kreatif dalam memberi nama. 🙂

Memasang Steam

Dari laman PlayOnLinux configuration, pilih lingkungan Wine yang baru saja kita pasang (contohnya, “steamjp”, lalu:

  1. Dengan “steamjp” terpilih, buka tab Install Components dan cari dan pilih Steam.
    PlayOnLinux configuration - Install Component - Steam

    PlayOnLinux configuration ⇒ Install Component ⇒ Steam

  2. Pilih tombol Install untuk memasang. Nanti PlayOnLinux akan menjalankan instalasi Steam. Pasang Steam seperti biasa. Oh, iya! Supaya gampang, saya memasang Steam pada direktori C:\Steam agar mudah diakses.
  3. Selesai.

Setelah itu, saatnya memainkan Deadlight.

Memainkan Deadlight

Pertama-tama, jalankan Steam pada lingkungan WINE. Ada setidaknya dua cara untuk menjalankan Steam:

  1. Cara keren dengan Command Line.
  2. Cara biasa dengan pemilih berkas.
  3. Cara unik dengan Task Manager.

Cara Keren

Cara keren dengan Command Line:

  1. Cara keren dengan menggunakan Command Line. Dapat dibuka dari tab Wine, pilih Command Prompt
    PlayOnLinux configuration - Wine - Command Line

    PlayOnLinux configuration ⇒ Wine ⇒ Command Line

  2. Dari Command Line, masuk ke direktori Steam dan jalankan Steam.exe.
    PlayOnLinux: Run Steam from command line

    PlayOnLinux: Run Steam from command line

Cara Biasa

Agar lebih mudah, sebaiknya Anda buat pintasan agar mudah diakses. Caranya, dari tab General pilih Make a new shortcut for this virtual drive untuk membuat tautan.

Selanjutnya, untuk menggunakan cara biasa dengan pemilih berkas:

  1. Buka tab Miscellaneous dan pilih Run a .exe file in this virtual drive
    PlayOnLinux: Run Steam from Miscellaneous

    PlayOnLinux: Run Steam from a file chooser

  2. Pilih Steam.exe untuk dieksekusi dan pilih Open.
    PlayOnLinux: Select Steam.exe to execute it.

    PlayOnLinux: Select Steam.exe to execute it.

  3. Steam pun berjalan.

Selesai.

Cara Unik

Steam pun dapat digunakan dengan menggunakan Task Manager. Bagi Anda yang terbiasa di Windows, Task Manager biasanya dinyalakan dengan kombinasi tombol CTRL+ALT+DEL. Untuk dapat menjalankan Task Manager:

  1. Buka tab Wine dan pilih Task manager
  2. Dari Task Manager, FileNew Task (Run…)
  3. Pilih Steam.exe dan jalankan.

Saya sengaja tidak bikin cuplikan karena gambarnya sama saja dengan Task Manager di Windows. Cuma, bedanya ini berjalan di GNU/Linux

Terakhir

Saya menggunakan MESA dari GIT dengan tambalan dari grup IXIT untuk Gallium Direct3D tracker (fitur ini tidak terpakai). Selain itu, spesifikasi komputer saya cukup tinggi:

  • AMD FX(tm)-8350 Eight-Core Processor @ 4GHz.
  • MSI 990FXA-GD80 dengan BIOS AMI versi 13.4.
  • Patriot Division 4 Viper Xtreme, 16GB (4x4GB) 1866 MHz
  • AMD Radeon HD 5770 (Juniper) dengan memori 256MB.

Selanjutnya, saya memakai konfigurasi grafis tinggi.

Deadlight's Display Settings

Deadlight’s Display Settings

Hasilnya? Tidak ada patah-patah sama sekali. Berikut galeri yang menyertai.

 

Memasang PlayOnLinux di GNU/Linux

Memasang PlayOnLinux di GNU/Linux

PlayOnLinux front page

PlayOnLinux front page

Cara paling gampang adalah dengan memasang dari repositori:

$ sudo apt-get install playonlinux

atau

$ sudo emerge -aq playonlinux

Selesai.

Versi Terbaru

Untuk versi terbaru, dapat menggunakan yang dari GIT. Saya sarankan untuk sudah memasang PlayOnLinux yang sudah ada di distro terlebih dahulu. Hal ini agar paket-paket ketergantungannya dipasang.

Jika sudah, langsung saja kloning repo GIT-nya:

$ git clone https://github.com/PlayOnLinux/POL-POM-4 playonlinux
Cloning into 'playonlinux'...
remote: Counting objects: 43849, done.
remote: Compressing objects: 100% (110/110), done.
remote: Total 43849 (delta 58), reused 0 (delta 0)
Receiving objects: 100% (43849/43849), 62.93 MiB | 982.00 KiB/s, done.
Resolving deltas: 100% (23122/23122), done.
Checking connectivity... done.

Nanti kalau mau memainkannya tinggal:

$ ./playonlinux/playonlinux

Atau sesuaikan dengan tempat Anda berada. Selesai!

Yak, sudah. Kok, bengong? Kurang panjang? 😛

Pengalaman Memperbaharui LG G2 Versi Saya
Super Android, recharge!

Pengalaman Memperbaharui LG G2 Versi Saya

[themify_box style=”yellow warning rounded shadow”]SEMUA INI DAPAT MERUSAK TELEPON ANDA, LG G2. SAYA TIDAK BERTANGGUNG JAWAB ATAS RUSAKNYA TELEPON ANDA. RISIKO TANGGUNG SENDIRI![/themify_box]

Setelah mencoba-coba beberapa AOSP, LG G2 saya menjadi rusak dan tidak dapat digunakan. Saya pun mengembalikan ROM LG G2 saya ke kondisi awal seperti yang saya ceritakan sebelumnya. Saya pun mencoba mengulangi menjalankan apa yang telah saya lakukan sebelumnya. Namun, kali ini saya coba jalankan versi mudah dan terintegrasi dalam satu entri agar mudah dibaca keseluruhan.

Diasumsikan kondisi awal adalah LG G2 dengan ROM Kit Kat (4.4.2) asli dari pabrikan (D80220B).

Unduh Terlebih Dahulu

Agar memudahkan tutorial ini, sebaiknya Anda sudah mengunduh berkas-berkas yang diperlukan dalam tutorial ini agar sekali jalan. Berkas-berkas itu, antara lain:

  1. D802_AutoRec.apk
  2. KK_Baseband_D802.zip
  3. CloudyG3_1.3.zip
  4. LG_G3_BIONIC.zip
  5. LG_G3_DALVIK.zip
  6. QuickWindow_Fix_V2.zip
  7. LGMessage_fix.zip

Saya berharap sebelum memulai, pastikan bahwa berkas-berkas ini sudah diunduh ke LG G2 Anda.

Memasang Recovery ROM

Sumber bacaan: AutoRec: Kit Kat Recovery Installer

Untuk dapat memasang Recovery ROM yang telah terkustomisasi perlu dilakukan dua proses secara berurutan:

  1. Memasang izin admin (rooting/jailbreaking) pada LG G2.
  2. Memasang ROM Recovery yang telah terkustomisasi. Saya menggunakan Philz Recovery ROM.

Memasang Izin Admin

Memasang izin admin (rooting/jailbreaking) adalah proses penjebolan perangkat agar dapat menjalankan tindakan yang membutuhkan kewenangan admin (root/Administrator/super user). Pada umumnya perusahaan pembuat perangkat telepon mematikan fungsi ini. Untuk dapat memodifikasi telepon, maka fungsi ini perlu diaktifkan.

ROOT LG G2 dapat dilakukan dengan menggunakan ioroot seperti yang dijelaskan pada tulisan saya yang lalu.

Memasang ROM Recovery Terkustomisasi

Untuk memasang ROM Recovery dapat menggunakan AutoRec, sebuah aplikasi yang dibuat oleh cloudyfa, seorang pengembang di Forum XDA. Sayangnya, APK aplikasi ini tak dapat ditaruh di Google Play. Android umumnya tidak secara baku mengizinkan APK selain dari Google Play Store dipasang ke perangkat. Selanjutnya mengaktifkan pemasangan dari luar Google Play Store.

Mengaktifkan Pemasangan Di Luar Google Play Store

Sebelum memasang AutoRec, pastikan LG G2 Anda dapat memasang APK dari sumber selain Google Play Store. Caranya:

  1. Masuk ke Pengaturan
  2. Pada bagian Umum pilihlah Pengamanan
  3. Pada bagian Pengamanan, pastikan pilihan Sumber tak dikenal tercentang.
    I know this is a LG G3 settings, but it is the same as LG G2.

    I know this is LG G3 settings, but it is the same as LG G2. Tick the “Unknown sources”

Setelah itu, lanjutkan dengan memasang AutoRec.

Memasang AutoRec

Pasang APK AutoRec dari Forum XDA, caranya:

  1. Pergi ke halaman unduhan AutoRec dan unduh D802_AutoRec.apk ke LG G2 Anda.
  2. Buka berkas yang sudah diunduh dengan menggunakan Pengelola File dan pilih APK tersebut untuk menjalankan aplikasi.
    Click the AutoRec APK to install it

    Click the AutoRec APK to install it

  3. Pilih Instal ketika keyakinan Anda dipertanyakan.
    Click Install to proceed

    Click Install to proceed

  4. Setelah selesai, buka aplikasi dengan menekan Buka.
    Click Open to open AutoRec after installing it.

    Click Open to open AutoRec after installing it.

Sekarang saatnya menjalankan AutoRec.

Menjalankan AutoRec

AutoRec melakukan proses-proses berikut ini; 1) memasang versi aboot.img terdahulu yang bisa digunakan untuk memasang ROM terkustomisasi; 2) memasang TWRP, salah satu ROM Recovery yang terkustomisasi. Berikut caranya:

  1. Pada saat pertama kali menjalankan aplikasi akan ditanyakan izin menjalankan AutoRec sebagai admin.
    Click Allow to allow AutoRec runs as super user.

    Click Allow to allow AutoRec runs as super user.

  2. Kalau ditanya apakah Anda benar-benar mau melakukannya, pilih saja YES.
    Select YES for confirmation.

    Select YES to confirm custom recovery installation.

  3. AutoRec akan memasang Loki (semacam pemintas agar ROM Terkustomisasi dapat dipasang). Selanjutnya, pilih Flash Recovery untuk memasang TWRP.
    AutoRec running lokifying and install a custom kernel.

    AutoRec running lokifying and install a custom kernel.

  4. Setelah memasang TWRP, akan ditanyakan untuk melanjutkan masuk ke Recovery (TWRP) atau keluar dari aplikasi. Pilih To recovery untuk masuk TWRP atau pilih exit untuk keluar.

Selanjutnya memasang Philz Touch Recovery.

(Opsional) Memasang Philz Touch Recovery

Sumber bacaan: Philz Touch 6 Recovery How to Install

TWRP Main Menu

TWRP Main Menu

Sebenarnya menggunakan TWRP pun sudah bisa. Tapi, banyak yang menyarankan untuk memasang Philz Touch Recovery untuk LG G2. Hal ini karena Philz merupakan TWRP yang dimodifikasi untuk perangkat LG G2.

  1. Masuk ke Recovery LG G2. Caranya, entah dengan cara: 1) menyolok ke komputer dan mengetik “adb reboot recovery” dari komputer;2) dengan menu di AutoRec tadi; atau3) dengan menyalakan kembali sambil menahan tombol Daya dan Volum Turun.
  2. Di TWRP tekan tombol Install.
  3. Pilih install zip from sdcard.
  4. Pilih philz_touch_6.48.4-d802.zip.
  5. Seret jari Anda pada tombol Swipe to flash untuk memasang Philz Touch Recovery.
    Swipe your finger on the blue button and drag your finger to the right.

    Swipe your finger on the blue button and drag your finger to the right.

  6. Setelah itu, tekan tombol kembali sampai ke menu utama TWRP.
  7. Terakhir, untuk masuk ke Philz, pilihlah Reboot dan lalu pilih Recovery.

Maka apa bila tak ada aral melintang, maka sistem akan masuk ke Philz Touch Recovery.

Philz Touch 6 Recovery 6.48.4 main menu

Philz Touch 6 Recovery 6.48.4 main menu

Selanjutnya memasang ROM dan konfigurasi yang saya suka.

Memasang ROM Kesukaan Saya

Setelah memasang ROM Recovery yang terkustomisasi, saatnya memasang ROM LG G2 yang menurut saya bagus. Dari awal saya memiliki Android, saya selalu menganggap sistem operasi bawaan pabrik biasanya lambat, penuh aplikasi yang tak dibutuhkan, dan lawas. Dari Nexian Journey (A890)Sony Ericsson Xperia Mini Pro (Mango/SK17i), bahkan sampai iRobot (WM8505) yang dibelikan teman di Shenzhen tak pernah lepas dari modifikasi.

Untuk LG G2, setelah saya coba-coba beberapa ROM, saya pun berkesimpulan bahwa CloudyG3 paling optimal untuk kebutuhan saya. Tentunya, versi yang saya pasang bukan versi yang begitu saja. Saya memodifikasi beberapa bagian dari CloudyG3. Saya menambahkan: 1) pustaka Bionic dan Dalvik teroptimasi; dan 2) QuickWindow (aplikasi LG G2) untuk menggantikan Quick Circle (aplikasi LG G3).

Urutan memasang ROM dengan konfigurasi kesukaan saya secara garis besar dapat dijabarkan, yaitu:

  1. Menghapus seluruh partisi (System, Data, Cache, Dalvik Cache) kecuali Internal Storage sebelum memasang ROM.
  2. Memasang Baseband Kit Kat.
  3. Memasang CloudyG3 1.3.
  4. Memasang Bionic dan Dalvik.
  5. Memasang QuickWindow.
  6. Masuk ke sistem dan mengubah Dalvik menjadi ART.

Memasang CloudyG3

Sumber bacaan: CloudyG3 1.3

CloudyG3 adalah sebuah ROM untuk LG G2. Pengembangnya mengambil ROM LG G3 dan mengonversi ROM tersebut agar dapat dijalankan ke LG G2. Dengan menggunakan CloudyG3 sebenarnya seperti menyulap LG G2 menjadi LG G3. Cuma bedanya, ROM terkustomisasi ini lebih ringan dan teroptimasi.

Saya sudah pernah membahas cara memasang CloudyG3 dengan TWRP. Kali ini saya mencoba membahasnya dengan menggunakan Philz. Asumsi saya, kita sedang berada di halaman utama Philz. Berikut langkahnya.

Hapus Semua Partisi, Kecuali Internal Storage

Internal Storage itu adalah partisi yang terlihat ketika kita mencolokkan LG G2 ke komputer atau perangkat lain. Biasanya, kita mengunduh dan menaruh berkas-berkas ke situ, termasuk ROM. Itu sebabnya, cukup sisakan partisi itu dan hapus yang lainnya. Sebab, partisi yang lainnya akan diisi dengan sistem baru dari ROM yang kita pilih.

Cara hapus:

  1. Dari menu utama, pilih Wipe Data/Factory Reset
    Select Wipe Data/Factory Reset to delete all the partitions, except Internal Partition

    Select Wipe Data/Factory Reset to delete all the partitions, except Internal Partition

  2. Pilih Clean to Install a New ROM
    Clean to Install a New ROM

    Select Clean to Install a New ROM

  3. Pilih Yes, I will install a new ROM!
    Yes, I will install a new Rom!

    Select Yes, I will install a new Rom!

Setelah proses penghapusan sistem berhasil, kembali ke halaman depan Philz dengan memilih tombol kembali. Selanjutnya, demi menghemat tulisan ini, saya tak tampilkan cuplikan menu halaman depan Philz.

Pasang Baseband Kit Kat (Stock oleh CloudyFA)

Baseband adalah sebuah partisi khusus yang berisi informasi radio dan konfigurasi pabrik yang digunakan di telepon. Baseband penting untuk setiap ROM. Ada kalanya ROM berdasarkan AOSP atau Cyanogen menggunakan baseband yang berbeda dengan baseband bawaan perangkat.

Cara pasang:

  1. Dari menu utama pilih Install Zip
    Select Install Zip to install the ROMS.

    Select Install Zip to install the ROMS.

  2. Pilih Choose zip from /sdcard
    Choose zip from /sdcard

    Select Choose zip from /sdcard

  3. Pilih KK_Baseband_D802.zip
    Pick KK_Baseband_D802.zip

    Pick KK_Baseband_D802.zip

    Pemasangan
  4. Pilih Yes – Install  KK_Baseband_D802.zip
    Yes - Install KK_Baseband_D802.zip

    Select Yes – Install KK_Baseband_D802.zip

Selanjutnya pasang CloudyG3.

Memasang CloudyG3

Cara pasangnya sama dengan memasang Baseband, yakni:

  1. Dari menu utama pilih Install Zip
  2. Pilih Choose zip from /sdcard
  3. Pilih CloudyG3_1.3.zip
    Select CloudyG3_1.3.zip

    Select CloudyG3_1.3.zip

  4. Pilih Yes – Install CloudyG3_1.3.zip

Hmm… semakin lama saya semakin malas membuat cuplikan. Kira-kira sampai poin ini pemasangan komponen yang lain hanya repetisi saja. Begitu, deh. 🙂

Memasang Pustaka Teroptimasi

Dipindahkan ke artikel tersendiri.

Selanjutnya memilih ART.

Mengaktifkan ART

Ada di artikel sebelum ini.

Intinya:

  1. Pilih Pengaturan ⇒ Umum ⇒ Opsi pengembang
  2. Pilih Pilih waktu operasi
  3. Pilih Pakai ART
  4. Nyalaulangkan LG G2 dan tunggu agak lama.

Selanjutnya memasang Quick Window.

Memasang QuickWindow

Sumber bacaan: [MOD]QuickWindow Apps for G3 Ported Roms

LG membuat QuickCircle untuk perangkat LG G3-nya dan QuickWindow untuk LG G2-nya. Kedua aplikasi ini berguna untuk menampilkan layar kecil ketika tutup telepon (tambahan yang dapat dibeli) menutup perangkat. Dengan menggunakan tutup khusus ini, pengguna tak perlu membuka teleponnya untuk mengakses beberapa informasi.

Sayangnya, tutup telepon ini berbeda bentuk antara QuickCircle dan QuickWindow. Saya juga tak tertarik membeli tutup khusus untuk QuickCircle. Itu sebabnya, saya perlu mengganti aplikasi QuickCircle dengan QuickWindow agar sesuai dengan tutup telepon yang saya miliki.

(Opsional) Memasang ZIP QuickWindow

Sayangnya, ketika saya sudah panjang lebar menjelaskan, ternyata CloudyG3 versi 1.3 sudah menyertakan QuickWindow. Ya, sudah, tetap saja memasang QuickWindow demi kepuasan batin.

 

  1. Dari menu utama pilih Install Zip
  2. Pilih Choose zip from /sdcard
  3. Pilih QuickWindow_Fix_V2.zip
  4. Pilih Yes – Install QuickWindow_Fix_V2.zip

Selanjutnya, pasang QuickWindow Message Fix:

 

  1. Dari menu utama pilih Install Zip
  2. Pilih Choose zip from /sdcard
  3. Pilih LGMessage_fix.zip
  4. Pilih Yes – Install LGMessage_fix.zip

Selanjutnya memasang aplikasi-aplikasi yang kompatibel.

Memasang Aplikasi-aplikasi QuickWindow

Sumber bacaan: Quick Circle Apps

Aplikasi QuickWindow yang dipasang masih sedikit. Untungnya, ada pengembang di XDA yang membuat aplikas-aplikasi tambahan untuk memperkaya QuickCircle/QuickWindow. Silakan saja diunduh dari Google Play Store. Nanti dapat dipilih maksimal 6 dari aplikasi-aplikasi tersebut.

Cara mengubahnya dari:

  1. Pilih Pengaturan ⇒ Umum ⇒ Aksesoris
  2. Pilih Casing QuickCircle ⇒ Pilih aplikasi
  3. Beri tanda centang untuk maksimal 6 aplikasi yang tersedia untuk aktif di QuickCircle.
  4. Pilih Simpan

Nantinya yang muncul pada QuickWindow adalah ikon-ikon dari aplikasi yang kita telah pilih.

Optimasi Baterai

Untuk bisa tahu keunggulan ROM ini perlu penyesuaian beberapa hari. Hal ini karena sistem operasi mempelajari kelakuan pemakai perangkat. Untuk mengaktifkan fitur ini, silakan:

  1. Pilih Pengaturan ⇒ Umum ⇒ Baterai
  2. Aktifkan Pengisian daya pintar dengan memberi tanda centang.
    Enable smart charging based on our behavior.

    Enable smart charging based on our behavior.

Kata Terakhir

Yak, demikian akhirnya. Panjang dan lama sekali waktu yang diperlukan untuk menulis ini. Saya sendiri sudah mencoba mengulang memasang ini dari awal. Memang, beberapa konfigurasi hilang. Tapi, saya menemukan banyak hal baru.

Hasilnya? Ya, selain banyak fitur, terutama pada pemakaian normal saya bisa mendapatkan waktu aktif lebih dari 1 hari! Cuplikan tersedia!

Battery usage with several social media and two email accounts active.

Battery usage with several social media and two email accounts active.

Beberapa media sosial yang saya aktifkan, misalnya: Telegram, WhatsApp, LINE, BBM, Twitter, dan Instagram. Ada 2 akun surel yang aktif pula. Semua itu saya aktifkan sinkronisasi akunnya. Hasilnya, tetap irit.

Selamat mencoba dan berhati-hatilah.

 

 

 

 

Bacaan Lebih Lanjut

Alternatif Mengubah cue/bin Menjadi FLAC

Alternatif Mengubah cue/bin Menjadi FLAC

Saya terkejut ketika saya membandingkan FLAC yang saya hasilkan dengan teknik sebelumnya ternyata sedikit berbeda dengan WAV dan data mentah CD. Hal ini dikonfirmasi juga oleh beberapa tulisan. Awalnya, banyak yang mengira ini efek plasebo karena sampai saat ini belum terbukti. Tapi, telinga berkata lain.

Kendati demikian, saya tetap memilih FLAC karena FLAC adalah format terbuka yang didukung oleh banyak perangkat. Saya, sih, mau coba menggunakan Wavpack, APAC, atau ALAC. Tapi, berhubung format-format tersebut eksotis, ya, saya urungkan niat.

Saya pun sekarang mengubah teknik saya dan benar-benar menggunakan bchunk. Untuk kesederhanaan, saya menggunakan contoh CD 2 dari Ultimate Worship 2014 yang saya miliki seperti artikel sebelumnya. Persiapan pun sama seperti artikel sebelumnya. Hanya langkah intinya yang berubah sedikit.

Inti Tulisan Ini

Pertama-tama, gunakan bchunk untuk memisahkan PCM mentah menjadi WAV:

bchunk -v -w "Various - Ultimate Worship 2014 [Disc 2].bin" tmp.cue out

Setelah itu, gunakan FLAC untuk mengubah WAV menjadi FLAC. Saya menggunakan konfigurasi baku saja tanpa embel-embel.

flac *.wav

Sisipkan tag ke dalam semua berkas FLAC.

cuetag.sh tmp.cue *.flac

Tambahkan tag-tag lainnya:

metaflac --set-tag='DISCTOTAL=2' --set-tag='DISC=2' --set-tag='album_artist=Various Artists' --import-picture-from=front.jpg out*.flac

Ganti nama berkas FLAC dengan yang lain:

lltag --yes --no-tagging --rename '%n. %a - %t' `ls out*.flac`

Selesai sudah!

Kata Terakhir

Anda sudah dapat memindahkan berkas-berkas FLAC tersebut. Hapus saja berkas-berkas WAV yang telah terbuat. Hasil FLAC ini jauh lebih baik dari sebelumnya.

Oh, iya, catatan terakhir. Komputer yang saya gunakan telah saya set ALSA-nya untuk menggunakan 44,1KHz bukan 48KHz seperti umumnya. Ini karena saya selalu mendengarkan lagu dari CD yang saya beli.

 

Mengubah cue/bin Menjadi Berkas-berkas FLAC

Mengubah cue/bin Menjadi Berkas-berkas FLAC

Saya lupa memasang penggerak CD pada komputer saya. Celakanya lagi, penggerak CD portabel yang biasa saya gunakan rusak. Saya pun terpaksa menggunakan komputer teman yang menggunakan Windoze.

Untungnya, komputer ini kurang mumpuni untuk mengekstrasi CD dengan menggunakan Exact Audio Grabber. Saya pun cari akal untuk membuat ISO dengan aplikasi gratis. Alhasil, saya pun memasang ImgBurn.

Sayangnya, ImgBurn dan aplikasi-aplikasi gratisan lainnya yang saya coba menghasilkan dua berkas CUE dan BIN (cue/bin). Saya pun terpaksa mentransfer dua berkas per CD ke komputer saya.

Memasang Peralatan yang Diperlukan

Ada 4 sekumpulan aplikasi yang dibutuhkan:

  • bchunk
  • shntool
  • cuetools
  • lltag

Untuk Debian/Ubuntu/BlankOn:

sudo apt-get install bchunk shntool cuetools lltag

Untuk Gentoo:

sudo USE="alac flac mac shorten wavpack sox extras" emerge app-cdr/bchunk media-sound/shntool app-cdr/cuetools media-sound/lltag

Jangan lupa pengonversi berkas FLAC (dan WAVPACK bila perlu).

Cara Debian/Ubuntu/BlankOn:

sudo apt-get install flac wavpack

Cara Gentoo:

sudo emerge media-libs/flac media-sound/wavpack

Seharusnya cara Gentoo tidak perlu karena sudah diset untuk dipasang pada pemasangan 4 aplikasi sebelumnya. Sekarang saatnya beraksi!

Ubah Cue/Bin Menjadi Berkas-berkas FLAC yang Terpisah

Sebagai contoh, saya menggunakan CD 2 dari album 2014 Ultimate Worship Edition. CD ini belum ada di FreeDB, tetapi memiliki CD TEXT yang lengkap! Jauh berbeda dengan CD Audio produksi lokal yang kadang suka asal saja membuatnya. Berikut berkas yang saya miliki:

  • Various – Ultimate Worship 2014 [Disc 2].bin
  • Various – Ultimate Worship 2014 [Disc 2].cue
  • Various – Ultimate Worship 2014 [Disc 2].cdt

Proses awal sebelum memulai konversi adalah proses penyuntingan.

Menyunting Berkas CUE

 

CD TEXT tidak sempurna. Dia terkadang tidak berisi informasi yang benar. Sebagai contoh, dalam kasus CD kompilasi, biasanya berisi berikut:

  TRACK 01 AUDIO
    TITLE "The Flood"
    PERFORMER "Various"
    ISRC US25L1300817
    INDEX 01 00:00:00

Saya pun mengubah isi PERFORMER menjadi penyanyi yang sebenarnya sehingga isi berkas CUE menjadi:

  TRACK 01 AUDIO
    TITLE "The Flood"
    PERFORMER "Soul Survivor"
    ISRC US25L1300817
    INDEX 01 00:00:00

Salah satu bagian yang sulit dari menyunting berkas ini adalah ketika ada lebih dari satu penyanyi (featuring). Sepertinya tidak ada konsensus untuk penulisan tag. Beberapa menyarankan untuk mengikuti tulisan di iTunes atau Amazon. Namun, banyak pula yang membuat tagnya sendiri. Saya, sih, sebisa mungkin mengikuti CD TEXT.

Agar lebih mudah, saya mengganti berkas nama CUE menjadi lebih pendek:

cp "Various - Ultimate Worship 2014 [Disc 2].cue" tmp.cue

Mari masuk ke intinya.

Inti Tulisan Ini

Pertama-tama, konversi CD Audio menjadi satu berkas FLAC:

flac --endian=little --channels=2 --bps=16 --sample-rate=44100 --sign=signed --force-raw-format Various\ -\ Ultimate\ Worship\ 2014\ \[Disc\ 2\].bin -o 2014uw-cd2.flac

Pecah-pecah berkas FLAC menjadi berkas-berkas terpisah:

shnsplit -f tmp.cue -o "flac flac -s -8 -o %f -" 2014uw-cd2.flac

Isi berkas-berkas FLAC tersebut dengan tag-tag yang tersedia di dalam CUE.

cuetag.sh tmp.cue split-track*.flac

Tambahkan beberapa tag yang belum ada. Contohnya, saya menambahkan nomor cakram, jumlah cakram, dan artis album diset sebagai “Various Artists”.

metaflac --set-tag='DISCTOTAL=2' --set-tag='DISC=2' --set-tag='album_artist=Various Artists' split-track*.flac

Oh, iya, lupa. Sekalian taruh juga gambar albumnya kalau punya.

metaflac --import-picture-from=front.jpg split-track*.flac

Terakhir, ubah nama berkas menjadi sesuatu yang lebih bermakna. Saya lebih suka namanya “[Nomor Trek]. [Penyanyi] – [Judul Lagu]”. Anda mungkin bisa berbeda dengan saya. Berikut cara yang saya lakukan:

lltag --yes --no-tagging --rename '%n. %a - %t' `ls split-track*.flac`

Yak, terakhir tinggal pindahkan lagu-lagu tersebut ke tempat yang sebenarnya.

Demikian.

Bacaan Lebih Lanjut

OCR Bagi Pemalas

OCR Bagi Pemalas

Kata Larry Wall kemalasan adalah sebuah kebijaksanaan. Saya terkena kemalasan itu. Saya malas membaca surat resmi yang didigitalisasi dengan dipindai menjadi PDF. Saya malas membaca surat-surat itu berulang-ulang hanya demi mendapatkan nomor surat.

Prekondisi

Saya butuh perkakas untuk kemalasan saya ini. Saya butuh OCR yang bisa dipakai untuk tinggal menyalin informasinya dan memasukkan ke dalam KM. Saya ketemu Tesseract.

sudo emerge app-text/tesseract app-text/ghostscript-gpl

atau

sudo apt-get install tesseract ghostscript

atau cara yang lain yang Anda ketahui.

Tindakan

Ubah PDF menjadi TIFF (atau PNG pun sebenarnya bisa):

ghostscript -o document.tiff -sDEVICE=tiffgray -r720x720 -g6120x7920 -sCompression=lzw document.pdf

Baca berkas TIFF:

tesseract document.tiff hasil-scan -l id

Selesai.

Terakhir

Ini edisi kemalasan maka penjelasan kurang. Ya, mau dikata apa? Silakan konsultasi ke Mbah Gugel.

Bacaan Lebih Lanjut

Firefox menggunakan PepperFlash

Firefox menggunakan PepperFlash

Adobe Flash yang dipasang untuk Mozilla Firefox dan seluruh peramban yang mendukung NPAPI hanya versi 11.2. Untuk versi 14+ hanya dirilis dalam PepperFlash yang hanya didistribusikan di Google Chrome. PepperFlash menggunakan Pepper Plugins API (PPAPI), API yang dikembangkan oleh Google.

Untungnya ada Fresh Player Plugin. Fresh Player Plugin merupakan sebuah ekstensi NPAPI yang menjembatani penggunaan PepperFlash. Pengguna Mozilla jadi bisa menggunakan Adobe Flash terbaru.

Mari kita pasang!

Memasang Fresh Player Plugin

Saya menggunakan cara yang disebutkan oleh (Rinat Ibragimov, 2014). Namun ada beberapa yang saya tambahkan setelah saya melihat isi kode sumber Fresh Player Plugin.

Persiapan

Untuk Debian, Ubuntu, dan turunannya, jangan lupa memasang berkas-berkas pengembangan:

sudo apt-get install cmake pkg-config libasound2-dev liburiparser-dev \
     libglib2.0-dev libconfig-dev libpango1.0-dev libxinerama-dev \
     libegl1-mesa-dev libevent-dev libgtk+2.0-dev libgles2-mesa-dev

Untuk Gentoo, (B)LFS, dan yang lainnya, pastikan saja Mesa dikompilasi dengan OpenGL, EGL, dan GLES2.

Unduh Kode Sumber

Unduh berkas-berkas yang ada di GIT:

git clone https://github.com/i-rinat/freshplayerplugin.git
cd freshplayerplugin

Atau kalau tidak punya GIT bisa unduh langsung.

wget https://github.com/i-rinat/freshplayerplugin/archive/master.zip
unzip master.zip
cd freshplayerplugin-master

Saya asumsikan berikutnya Anda sudah masuk ke direktori kode sumber.

Mari Kompilasi

Konfigurasikan dan buat:

mkdir bangun && cd bangun
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make -j3

Sesuaikan “-j3” dengan 2n+1 jumlah prosesormu atau tidak usah pakai parameter tersebut. Parameter “-DCMAKE_BUILD_TYPE=RelWithDebInfo” akan mengompilasi ekstensi ini dengan informasi debug. Saya, sih, tidak pakai. Toh, saya tidak ingin menelusuri penggunaan ekstensi ini.

Pasang

Ekstensi ini cukup dipasang seperti memasang ekstensi Firefox lainnya. Ada dua berkas yang harus dipasang. Kalau mau dipasang di sistem sehingga pengguna lain juga bisa menggunakannya,

cara Debian:

sudo cp libfreshwrapper-nacl.so libfreshwrapper-nacl.so /usr/lib/firefox/plugins

cara Gentoo

sudo cp libfreshwrapper-nacl.so libfreshwrapper-nacl.so /usr/lib/nsplugins/plugins

Atau kalau untuk dipakai kalangan sendiri:

cp libfreshwrapper-nacl.so libfreshwrapper-nacl.so ~/.mozilla/plugins

Konfigurasi

Sebelum bisa menggunakan Pepper Flash, Fresh Player Plugin harus diarahkan ke tempat Pepper Flash berada. Berikut konfigurasi yang dibuat. Gunakan penyunting teks kesukaan Anda, kalau saya langsung di terminal.

cat > freshwrapper.conf << EOF
# Configuration options for FreshPlayerPlugin

# This configuration file is optional. Wrapper will search for it first
# in ~/.config/freshwrapper.conf, then in /etc/freshwrapper.conf.
# If wrapper fails to find configuration, it will use default values

# Audio buffer is used to continuously provide sound adapter with data.
# Values too low may lead to buffer underruns and stuttering. Values
# too high will lead to noticeable latency. Usually plugin selects size
# on its own, but you may override bounds here

# lower bound for audio buffer size, in milliseconds
audio_buffer_min_ms = 20

# higher bound of audio buffer size, in milliseconds
audio_buffer_max_ms = 500

# Xinerama screen used to acquire fullscreen window geometry
xinerama_screen = 0

# Path to the Pepper Flash plugin
pepperflash_path = "/opt/google/chrome/PepperFlash/libpepflashplayer.so"

# "Command-line" arguments for Flash
flash_command_line = "enable_hw_video_decode=1,enable_stagevideo_auto=1"

# experimental: enable 3d and stage 3d
exp_enable_3d = 0
EOF

Isi berkas ada di baris 2 s.d. 29. Berkas ini dapat dipasang,

global:

sudo cp freshwrapper.conf /etc

lokal:

cp freshwrapper.conf ~/.config

Jangan lupa mengganti “pepperflash_path” bila Anda menggunakan plugin yang berbeda. Misalnya pada Gentoo, Anda memasang “chrome-binary-plugins” yang ada di direktori berikut:

pepperflash_path = /usr/lib64/chromium-browser/PepperFlash/libpepflashplayer.so

Atau kalau Anda seperti saya mengambil langsung PepperFlash secara manual, Anda dapat mengubah jadi:

pepperflash_path = /usr/local/lib/PepperFlash/libpepflashplayer.so

Terakhir

Matikan Flash Player yang disediakan untuk Mozilla (11.2). Cukup gunakan versi yang dari Fresh Player Plugin (14.0). Muat ulang Firefox dan silakan bersenang-senang! 🙂

Latar Belakang Masalah Adobe Flash

Salah satu motto saya untuk membuat sistem tidak hancur adalah dengan meniadakan Adobe Flash dari komputer. Bayangkan, masakkan memori 16GB tidaklah cukup dan sering kali sistem berhenti berespons. Namun, ada beberapa alasan untuk mengapa harus menggunakan Flash:

  1. Beberapa situs gagal berfungsi, misalnya Albino Black Sheep.
  2. Banyak video Youtube yang tidak menawarkan resolusi di atas 360p, terutama yutuber Indonesia. Mereka mengunggah tanpa mempersiapkan video HTML5 dengan resolusi tinggi. Padahal, saya menggunakan monitor 44″. Saya harus menggunakan Flash untuk melihat resolusi tinggi.
  3. Kalau saya mau, memang tidak boleh?

Hal ini diperparah dengan Adobe hanya merilis versi 11.2 untuk GNU/Linux. Adobe bilang versi ini hanya akan ditambal bila ada celah keamanan. Jadi, tidak ada tambahan performa atau fitur baru. Kalau mau, harus menggunakan Adobe Pepper Flash. Sayangnya, Pepper Plugins API (PPAPI) yang dipakai Adobe Pepper Flash hanya ada di Chromium dan turunannya.

Mozilla menolak untuk menggunakan PPAPI. Menurut (Robert O'Callahan, 2010), PPAPI adalah sebuah duplikasi API yang sudah ada dalam Web API. Web API adalah standar terbuka yang seharusnya diimplementasi oleh seluruh peramban.

Terkesan seperti NIH Syndrome. Tapi ada alasan bagus mengapa Mozilla masih menolak PPAPI. Salah satunya adalah karena API yang ditawarkan masih berubah-ubah. API yang volatil ini mengakibatkan peramban alternatif harus berusaha mengejar implementasi terbaru.

Bukan Sekedar Firefox

Mungkin untuk gampangnya, saya bisa saja menggunakan Chromium dan turunannya seperti Google Chrome dan Opera Developer saja. Mereka yang didukung oleh Adobe secara resmi. Namun, ada alasan teknis selain filosofis mengapa tetap Firefox.

Kalau secara filosofis, Mozilla sebagai pemegang Firefox berkomitmen terhadap jejaring yang terbuka (open web). Kita tentunya tidak ingin di masa depan konten dan bagaimana konten dapat diakses dimonopoli oleh sekelompok korporasi. Hal ini akan menurunkan derajat kemanusiaan.

Tentu bagi Anda yang pragmatis tentu tidak begitu memperhatikan filosofi ini. Namun, salah satu keunggulan Mozilla Firefox adalah keterbukaan. Dengan keunggulan ini, ia dikompilasi untuk menggunakan pustaka sistem. Dengan demikian, pustakanya akan selalu terjaga dan bagus, tidak menggunakan versi yang lawas.

Saya menggunakan GNU/Linux Gentoo yang selalu terbaharui. Beberapa situs favorit saya menggunakan karakter huruf Asia Timur. Situs seperti Daum Naver dan Nico-nico Douga juga salah satunya. Dan percaya atau tidak, blog-blog berbahasa Mandarin menyediakan informasi jauh lebih lengkap mengenai kompilasi optimal sistem berprosesor MSM7230 misalnya.

Saya juga kebetulan anak baik, saya takkan mengunjungi situs Rusia mengenai Haxx0r. Tapi, Cyrillic sangat dibutuhkan juga untuk mengerti di mana tombol mengunduh plugin OSS4 misalnya. Ya, intinya dukungan Internasionalisasi jauh lebih bagus di Firefox daripada peramban-peramban Chromium.

Seperti yang Anda lihat pada gambar, Google Chrome saya dapat menampilkan Hangul setelah saya:

  1. Memasang fonta Baemuk.
  2. Memasang ekstensi Chrome Advanced Font Settings.
  3. Menyalakan kembali peramban.

Opera Developer belum mendukung internasionalisasi sama sekali. Di gambar ini terlihat Firefox langsung bisa mendukung karakter Hangul. Ini makanya saya lebih memilih menggunakan Firefox.

Daftar Pustaka

Rinat Ibragimov (2014, July 30). ppapi2npapi compatibility layer. GitHub. Retrieved July 08, 2014 from GitHub: https://github.com/i-rinat/freshplayerplugin.^
Robert O'Callahan (2010, April 30). Thoughts on Pepper. mailman at mozilla. Retrieved July 08, 2014 from mailman at mozilla: https://mail.mozilla.org/pipermail/plugin-futures/2010-April/000088.html.^
Adobe Flash untuk Opera 24 GNU/Linux
Opera Developer

Adobe Flash untuk Opera 24 GNU/Linux

Basa-basi

Saya asumsikan Opera 24 dipasang seperti cara sebelum ini. Karena ini versi pengembang, Opera belum bisa menyalakan Adobe Flash. Itu sebabnya, akhir-akhir ini komputer saya stabil.

Saya mau membuang kestabilan itu demi eksperimen. Opera 24 dibangun di atas Chromium. Artinya, secara infrastruktur dia sudah menyediakan fasilitas Adobe Flash versi PPAPI (PepperFlash). Ini versi yang akan selalu diperbaharui oleh Adobe. Dan inilah cara jantan menyalakan PepperFlash Opera 24.

Pemasangan

Ada tiga bagian dalam pemasangan, memasang PepperFlash, membuat skrip pembungkus, dan membuat konfigurasi.

Memasang PepperFlash

PepperFlash didapatkan dari Chromium/Google Chrome. Kalau sudah memasang perangkat lunak tersebut, silakan saja salin direktori PepperFlash beserta isinya. Namun, saya asumsikan Anda belum memasang Chromium/Google Chrome.

Unduh Google Chrome dari saluran Unstable. Mengapa versi itu? Sebagai pengingat saja dan gaya-gayaan.

wget https://dl.google.com/linux/direct/google-chrome-unstable_current_amd64.deb

Ekstraksi PepperFlash ke /usr/local/lib/

ar p google-chrome-unstable_current_amd64.deb data.tar.lzma \
 | sudo tar xvfJ - -C/ ./opt/google/chrome-unstable/PepperFlash --xform='s,\(/opt/google/chrome-unstable/\),/usr/local/lib/,'

Selanjutnya membuat sebuah skrip tambahan.

Membuat Skrip Tambahan

Pada versi awal opera-developer merupakan tautan ke binari Opera. Saat ini saya akan membuat opera-developer sebagai skrip pembungkus. Ubah direktori jika Anda mengubah posisi instalasi.

Gunakan penyunting teks favorit Anda, kalau saya gunakan langsung:

cat > opera-developer << EOF
#!/bin/bash

# Allow the user to override command-line flags, bug #357629.
# This is based on Debian's opera-developer-browser package, and is intended
# to be consistent with Debian.
for f in /etc/opera-developer/*; do
    [[ -f ${f} ]] && source "${f}"
done

# Prefer user defined OPERA_USER_FLAGS (from env) over system
# default OPERA_FLAGS (from /etc/opera-developer/default).
OPERA_FLAGS=${OPERA_USER_FLAGS:-"$OPERA_FLAGS"}

if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then
    # Running as root with HOME owned by root.
    # Pass --user-data-dir to work around upstream failsafe.
    OPERA_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/opera-developer
        ${OPERA_FLAGS}"
fi

# Set the .desktop file name
export OPERA_DESKTOP="opera-developer.desktop"

exec -a "opera-developer" "/usr/local/lib/x86_64-linux-gnu/opera-developer/opera" --extra-plugin-dir=/usr/lib64/nsbrowser/plugins ${OPERA_FLAGS} "$@"
EOF

Ini skrip diambil dari skrip Chromium dan diubah secara barbar. Untuk saat ini, NPAPI (plugin-plugin Firefox) tidak lagi didukung oleh Chromium. Jadi, sepertinya menambah direktori NPAPI tidak perlu. Tapi saya terlalu malas untuk menghapusnya.

Mari pindahkan dan buat supaya bisa dieksekusi.

chmod +x opera-developer
sudo cp opera-developer /usr/local/bin

Nah, sekarang kita perlu mengatur OPERA_FLAGS.

Membuat Konfigurasi Tambahan

Saatnya membuat konfigurasi tambahan. Gunakan penyunting teks kesayangan atau seperti saya langsung dari terminal.

cat > default << EOF
# Default settings for chromium. This file is sourced by /usr/local/bin/opera-developer

# Options to pass to opera-developer
OPERA_FLAGS=" --ppapi-flash-path=/usr/local/lib/PepperFlash/libpepflashplayer.so --ppapi-flash-version=14.0.0.125"
EOF

Mari buat direktori /etc/opera-developer untuk berkas konfigurasi tersebut. Lalu, pindahkan ke sana.

sudo mkdir -p /etc/opera-developer
sudo cp default /etc/opera-developer/default

Selesai.

Kata Terakhir

Jalankan Opera dan akhirnya Adobe Flash pun berjalan. Sistem pun kembali tak stabil. FTW!

sed Membuang Sebuah Pola Hingga Baris Tertentu
RegEx

sed Membuang Sebuah Pola Hingga Baris Tertentu

RegEx

RegEx

Ada virus Windoze yang menginjeksi berkas-berkas HTML dengan VBScript dan binari berbahaya. Sepertinya target operasi mereka adalah pengembang Web yang menggunakan Windoze. Nantinya, HTML tersebut akan dipublikasikan di sebuah peladen dan diakses oleh banyak orang.

Kebetulan, dari hasil inspeksi bersih-bersih, kami menemukan adanya berkas-berkas HTML yang terinfeksi virus demikian. Kalau hanya satu atau dua, mungkin cukup dihapus. Tapi, kali ini harus memanggil Kapten Regex!

IFS=$(echo -en "\n\b") ; for a in `grep -rlH 'DropFileName = "svchost.exe"' .` ; do sed -i '/<SCRIPT Language=VBScript.*/,+14d' $a; done

Penjelasan:

  • IFS=$(echo -en "\n\b") ;
    Ini memberitahukan kepada BASH bahwa penanda akhir baris adalah Line Break (“\n” atau “\b”). Ini untuk mengatasi nama berkas dengan spasi.
  • grep -rlH 'DropFileName = "svchost.exe"' .
    Mencari berkas-berkas yang berisi ‘DropFileName = “svchost”‘ pada direktori ini “.” dan anak-anaknya.
  • sed -i '/<SCRIPT Language=VBScript.*/,+14d' $a
    Mencari pola “<SCRIPT Language=VBScript” dan menghapus pola tersebut dan 14 baris setelahnya.

Kebetulan saya membaca dulu berkas yang terinfeksi. Ia menginfeksi di akhir baris tapi bukan di baris baru. Wah, ini tantangan dalam menemukan pola yang benar. Apalagi memang beberapa HTML yang mendukung Windoze juga menggunakan VBScript.

Kebetulan saya bukan guru sed.  Saya tidak tahu bagaimana melanjutkan menghapus sampai akhir baris. Saya terpaksa menghitung ada berapa baris. Jumlah baris infeksi ada 14 baris.

Mungkin rekan-rekan ada peningkatan yang lebih bagus?

Terbitnya Opera 24 untuk GNU/Linux
Opera Developer

Terbitnya Opera 24 untuk GNU/Linux

Opera 24 for GNU/Linux

Opera 24.0.1537.0 for GNU/Linux

Setelah kurang lebih setahun, Opera tidak lagi merilis versi GNU/Linux. Setelah berpindah ke Chromium, mereka lebih berkonsentrasi di versi Windows dan MacOS. Kemarin, mereka membuat kejutan dengan menerbitkan versi pengembang (24.0.1537.0).

Yang menarik, mereka pun tak lupa bercanda-canda (self-trolling) di komentar. Memang, para pengguna GNU/Linux merasa yang paling ditinggalkan setelah hilang dari peredaran selama setahun. Saya sendiri termasuk yang memrotes namun pada akhirnya meninggalkan Opera dan menuju peramban lain. Padahal, Opera salah satu peramban tertua yang mendukung GNU/Linux. Bahkan, sempat masuk ke repositori utama Debian.

Walau pun dibilang Opera for Linux, tapi nampaknya Opera kali ini lebih ditujukan kepada Ubuntu. Kalau dilihat dari gambar, nampak tematik yang digunakan adalah tematik Ubuntu. Itu sebabnya, berkas yang diunduh pun paket Debian.

Pemasangan

Pemasangan saya tulis untuk yang Debian dan non-Debian.

Cara Debian

Untuk Debian, Ubuntu, dan variannya (termasuk BlankOn), cukup unduh dan pasang.

sudo dpkg -i opera-developer_24.0.1537.0_amd64.deb

Kadang, kalau terpasang standar tanpa diutak-atik, biasanya begitu diunduh sudah langsung ditanyakan untuk dipasang. Perintah ini cuma sekedar jaga-jaga saja kalau harus memasang manual melalui terminal.

Cara Non-Debian

Saya memberikan metodologi untuk memasang secara bersih pada sistem. Kebanyakan orang memasang dengan menggunakan standar FHS yakni pada direktori “/usr/local”. Saya asumsikan bahwa paket Debian Opera sudah diunduh pada direktori yang sama.

ar p opera-developer_24.0.1537.0_amd64.deb data.tar.xz \
   | sudo tar xvfJ - --xform='s,\(/usr/\),\1local/,' --exclude=usr/share/{lintian,menu} -C/

Itu semua satu baris perintah. Lalu, kemudian buat SETUID pada opera_sandbox agar bisa dijalankan oleh pengguna biasa.

sudo chmod 4755 /usr/local/lib/x86_64-linux-gnu/opera-developer/opera_sandbox

Selesai.

Terakhir

Saya menulis ini dari Opera Developer. Cukup stabil dan cepat. Saya suka sekali fitur preview. Fitur ini memperlihatkan isi sebuah tab saat titik tetikus melewati tab tersebut tanpa harus membuka tab itu. Lumayan membantu untuk orang yang suka bertab-tab ria.

Menggunakan BurnBit untuk Membuat Torrent

Menggunakan BurnBit untuk Membuat Torrent

Setelah jungkir balik mencari cara untuk membuat seeder, saya pun menggunakan situs pihak ketiga untuk menciptakan seeder BitTorrent. Saya ambil kasus BlankOn 10.0 Jahitan 1 yang baru saja rilis. Karena yang AMD64 sudah saya lakukan, maka contoh kali ini untuk DVD i386.

BurnBit DVD ISO BlankOn Jahitan 1 i386

BurnBit DVD ISO BlankOn Jahitan 1 i386

Pertama, pergi ke BurnBit.com. Lalu, masukkan tautan ISO yang hendak dibuatkan Torrent-nya. Lalu, klik Burn.

BurnBit DVD ISO BlankOn Jahitan 1 i386 being dowloaded web status.

BurnBit DVD ISO BlankOn Jahitan 1 i386 being dowloaded web status.

Setelah itu, tunggu beberapa saat dan ISO akan segera diunduh ke server Burn Bit. Kira-kira butuh setengah jam untuk mengunduh dari Kambing. Namun, mungkin peladen Anda lebih kencang.

Nanti apa bila sudah selesai, akan muncul tombol unduhan berkas .torrent. Silakan bagikan itu untuk orang-orang lain juga.

Mari gunakan Torrent sebagaimana mestinya yakni mendistribusikan unduhan legal yang besar kepada para fakir pita jaringan. Umpanya, distro GNU/Linux kita tercinta. Oh, iya, sebagai bonus, berikut berkas-berkas Torrent yang telah saya buat:

BlankOn 10.0-jahitan1-desktop-amd64-iso[Burnbit].torrent
BlankOn 10.0-jahitan1-desktop-i386-iso[Burnbit].torrent