Wednesday, August 24, 2016

25 Tahun Linux

  No comments
Tux lagi menikmati kue ulang tahun.


Wow, Linux berusia 25 tahun sekarang.
Jujur saja bingung harus menulis apa, setelah memakai Linux bertahun-tahun jadi merasakan bagaimana Linux berkembang. Bahkan sekarang Linuxer sudah bisa main game AAA maupun indie -hal yang dulu dianggap mimpi dan tidak mungkin tercapai-. Tapi sekarang lihatlah...


P.S. penggunaan kata Linux disini tidak hanya mencakup kernel saja, namun melingkupi platform secara keseluruhan.

Monday, August 22, 2016

Broadcom Bluetooth Patch Not Found

  No comments
$ dmesg | grep Bluetooth

Bluetooth: Core ver 2.21
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
Bluetooth: hci0: BCM: chip id 63
Bluetooth: hci0: valley-force
Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0489-e032.hcd failed with error -2
Bluetooth: hci0: BCM: Patch brcm/BCM20702A1-0489-e032.hcd not found
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: BNEP socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11


Dalam rangka merapikan gigibiru yang berantakan, aku mendarat pada sebuah website / blog yang membahas tentang cara menambal firmware bluetooth pada chipset broadcom. Siapa tahu dapat menyelesaikan masalah bukan? Tidak ada salahnya jika harus mencoba -walaupun ujung-ujungnya tidak membantu sama sekali-.

Selama ini tanpa patch pun bluetooth tetap bisa dipakai, jadi aku abaikan saja. Tapi berhubung sudah ter-install, ya sudah lah.

Yang dibutuhkan adalah driver bluetooth broadcom untuk wind*ws dan hex2hcd yang termasuk di paket bluez-utils. Untuk driver bluetooth broadcom bisa dari vendor apapun asalkan terbaru, termasuk patch, dan kalau bisa bukan file installer (exe / msi). Dikarenakan file installer memerlukan tool lagi seperti innoextract.

Sebagai contoh driver bluetooth dari Asus, referensi paket. File yang dimaksud adalah Bluetooth_V1201650_WHQL_Win10.zip -gunakan mesin pencari untuk mirrornya-.

Download dan extract, buka direktori Bluetooth > BCM_DriverOnly > 64 (untuk 64bit).
cari *.inf file, buka file bcbtums-win8x64-brcm.inf dengan text editor seperti kwrite.
buka terminal, ketik lsusb diikuti enter.

$ lsusb

Bus 004 Device 003: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 0c45:6455 Microdia
Bus 001 Device 004: ID 0489:e032 Foxconn / Hon Hai Broadcom BCM20702 Bluetooth
Bus 001 Device 014: ID 046d:c52f Logitech, Inc. Unifying Receiver
Bus 001 Device 013: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 018: ID 201e:2009
Bus 001 Device 011: ID 046d:c52f Logitech, Inc. Unifying Receiver
Bus 001 Device 010: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


Dimana Bus 001 Device 004: ID 0489:e032 Foxconn / Hon Hai Broadcom BCM20702 Bluetooth merupakan modul bluetooth. Yang penting disini adalah ID 0489:e032 , dimana 0489 adalah vendor id dan e032 adalah produk id.
Kembali pada file .inf yang telah dibuka tadi, kwrite > edit > find, isikan dengan "0489&PID_E032" (sesuaikan dengan vendor dan produk id anda).
Dari hasil pencarian tadi, lihat sebelah kirinya ada DeviceDesc. Sialnya dengan "0489&PID_E032" menemukan dua hasil yaitu RAMUSBE032 untuk Win8.0 dan BlueRAMUSBE032 untuk Win8.1 dan Win10. Namun keduanya merujuk pada satu file yaitu BCM20702A1_001.002.014.1443.1485.hex

Hasil extract

Edit .inf dengan Kwrite

Mencari 0489&PID_E032

Dari hasil pencarian sebelumnya, mencari BlueRAMUSBE032

Ketemu juga biang keladinya

Buka terminal pada direktori kerja, eksekusi
$ hex2hcd BCM20702A1_001.002.014.1443.1485.hex

Hasil konversi hex ke hcd

lalu rename BCM20702A1_001.002.014.1443.1485.hex ke BCM20702A1-0489-e032.hcd
BCM20702A1-0489-e032.hcd diambil dari keluaran log pada paragraf awal diatas, sesuaikan namanya dengan keluaran log komputer anda.
Atau bisa juga langsung
$ hex2hcd BCM20702A1_001.002.014.1443.1485.hex -o BCM20702A1-0489-e032.hcd


Salin file dengan hak setara root
$ sudo cp BCM20702A1-0489-e032.hcd /usr/lib/firmware/brcm/


Restart bluetooth daemon atau reboot.

$ dmesg | grep Bluetooth

Bluetooth: Core ver 2.21
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
Bluetooth: hci0: BCM: chip id 63
Bluetooth: hci0: valley-force
Bluetooth: hci0: BCM20702A1 (001.002.014) build 1465
Bluetooth: hci0: BCM20702A1 (001.002.014) build 1465
Bluetooth: hci0: Broadcom Bluetooth Device
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: BNEP socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11


Selamat Menikmati -dikirain makanan apa-.

Thursday, August 18, 2016

Bluetooth Oh Gigibiru

  No comments
Serba tanpa kabel sudah menjadi hal yang lazim sekarang. Baru-baru ini aku membeli sebuah headset bluetooth dan xiaomi bluetooth gamepad. Tinggal nyalakan, pair, connect dan nikmati. Memang semudah itu. KDE Bluedevil cukup mudah digunakan dibandingkan menggunakan Bluez lewat terminal. Sebenarnya Bluedevil merupakan antarmuka grafis dari Bluez -bluetooth stack pada Linux-, jadi perbandingan tadi benar-benar ngawur.

Namun bagaimana jika perangkat yang sebelumnya bekerja dengan baik tiba-tiba ngambek? Apakah rusak? Baru saja dipakai tidak lebih dari sehari masak sudah rusak sih?. Terutama xiaomi bluetooth gamepad, yang tergolong bukan gamepad / controller murahan. Padahal kemarin seharian dipakai main Steam games, dan tidak hanya satu judul game saja. Okelah mungkin baterainya sudah habis, ganti baru. Reboot berulang kali, repairing lagi masih belum berfungsi juga. Eh tapi kok headsetnya juga ikutan tidak bisa yah?. Coba sambung ke handphone, tidak bisa juga. Okelah beli usb bluetooth 4.0 dengan chipset CSR. Dengan Bluedevil maupun Bluez pun tetap nihil.

Setelah frustasi sambil membanting laptop, headset dan gamepad, akhirnya menyerah juga dan melampiaskan kemarahan ke Team Fortress 2, sudah tentu tanpa gamepad karena FPS -first person shooter-. Hari itu berlalu begitu saja tanpa ada solusi.

Esoknya mencoba search pakai mesin pencari, tapi rasanya bukan itu pokok permasalahannya. Aku mencoba menilik /var/lib/bluetooth. Setelah membuat cadangan, sudo rm -r /var/lib/bluetooth lah jadi andalan. Berharap konfig baru akan menyelesaikan masalah, namun tetap saja ngambek. Setelah sebentar merenung tentang si gigibiru ini, baru ingat ini kan konfig dari Bluez 4, mungkin saja ada sedikit perubahan di Bluez 5. Yang jelas konfig Bluez 5 disimpan per adapter, setelah melihat satu persatu file pada cadangan yang dibuat tadi. Tinggal di salin saja konfig headset dan gamepad ke direktori adapter.

Reboot... viola akhirnya bisa ngegame pake gamepad lagi.


Moral dari cerita diatas : buatlah cadangan file sebelum mengubrak-abrik.

Wednesday, August 17, 2016

Arch Linux dan Elitisme

  No comments
Tanpa dipungkiri kepopuleran Arch Linux melejit beberapa tahun belakangan. Seiring dengan hal itu, Distro turunan Arch Linux pun bermunculan seperti Antergos, Chakra, Manjaro, dll. Tujuan Distro turunan tersebut beragam, namun pada umumnya meluaskan jangkauan ke pengguna pemula. Memang Arch Linux utamanya ditujukan bagi pengguna mahir, walaupun tidak sedikit pula pengguna pemula memakai Arch Linux. Adanya Distro turunan tersebut membuka jalan bagi pengguna yang sekedar ingin mencicipi Arch Linux tanpa harus "bersusah payah" mengikuti petunjuk instalasi di Arch Linux Wiki. Namun kenyataannya semua Distro tidaklah sempurna, cepat atau lambat pengguna "baru" ini akan menemui masalah baik yang ringan sampai berat. Mungkin setelah mencoba mencari solusi dengan bantuan mesin pencari tetapi tidak berhasil atau tidak mengerti, langkah selanjutnya adalah menggunakan media lain seperti BBS / forum, IRC, media sosial dll. Sebagai contoh forum yang masih cukup populer digunakan, setelah menjabarkan permasalahan yang dialami pengguna dan mendapatkan respon dari pengguna lainnya. Semuanya berjalan lancar sampai pengguna tersebut secara langsung atau tidak langsung menyebutkan bahwa ia menggunakan Distro turunan Arch Linux. Thread tersebut kemungkinan besar akan dikunci atau dihapus oleh moderator forum.

Sebenarnya apa yang terjadi? Hal tadi merupakan salah satu skenario yang terjadi pada forum Arch Linux. Coba melihat dari sudut pandang yang berbeda, pada dasarnya forum resmi Arch Linux hanya diperuntukkan bagi pengguna Arch Linux dan itu adalah salah satu aturan resmi forum. Perlu dicatat bahwa ada subforum yang diperbolehkan topik dengan cakupan luas. Hal tersebut diperparah dengan cukup banyaknya pengguna-pengguna baru yang melanggar aturan resmi forum. Tentunya setiap orang mempunyai pendapat yang berbeda menggenai apa yang termasuk melanggar aturan atau tidak. Perbedaan pendapat ini menjadi salah satu pemicu munculnya sentimen terhadap pengguna Arch Linux dan sentimen ini kadang kala terlihat di media sosial yang lain. Entah bagaimana penilaian yang tidak objektif ini lebih cenderung diterima. Faktanya pengguna mahir yang menggunakan Distro seperti Arch Linux, Debian, Gentoo dll, biasanya suka membantu pengguna baru tanpa memandang Distro apa yang dipakai.

Jadi memiliki banyak Distro turunan merupakan hal yang buruk? Tentu saja tidak, lihatlah Debian, salah satu Distro tertua dan memiliki banyak Distro turunan. Salah satu parameter suksesnya suatu Distro adalah memiliki banyak Distro turunan. Bukan berarti Arch Linux tidak mendukung Distro turunan, namun kadang kita melupakan satu hal yang mendasar. Setiap tempat memiliki aturan sendiri. Bukanlah elitisme jika mengikuti aturan main di forum.

Itu baru membahas satu sisi saja. Apakah cukup? bagaimana dengan yang lain?. Fansboisme ada pada tingkat apapun, entah itu sistem operasi, distribusi, lingkungan desktop, aplikasi bahkan editor teks pun tidak luput dari fansboisme. Pandangan subyektif dan obyektif tiap individu yang mempengaruhi pilihan pada suatu hal, secara tidak sadar akan membenarkan pilihannya itu dan mempertahankan pilihannya itu sampai pada titik tertentu. Dari sudut pandang orang lain pada satu individu tidak ada yang benar dan salah. Pada skala yang melibatkan banyak individu pun tidak ada yang benar dan salah. Tidak, aku tidak membicarakan sains terapan, aku membicarakan seni seperti halnya interpretasi yang berbeda ketika melihat lukisan. Tidaklah aneh jika pengguna Arch Linux membanggakan Distro nya. Tidaklah berlebihan ketika pengguna Arch Linux mengatakan Arch Linux Wiki hampir mencakup semua hal. Yang aneh justru menganggap semua itu adalah elitisme semata.

Dua sisi rasanya cukup...