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

No comments :

Post a Comment