Bluetooth aktif tetapi tidak dapat menemukan atau ditemukan oleh perangkat lain.
Output dari sudo service bluetooth status
:
● bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since ხუთ 2015-06-04 22:33:18 GET; 13min ago
Main PID: 26678 (bluetoothd)
CGroup: /system.slice/bluetooth.service
└─26678 /usr/sbin/bluetoothd -n
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPAG
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPHS
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSource
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSink
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPAG
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPHS
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSource
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSink
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Adapter /org/bluez/26678/hci0 has been enabled
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Adapter /org/bluez/26678/hci0 has been enabled
Output dari lsusb
:
Bus 003 Device 005: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0
Bagaimana saya bisa memperbaikinya?
Jawaban:
Anda perlu menginstal firmware.
Distribusi firmware Broadcom tidak diizinkan oleh lisensi Broadcom. Jadi, Anda harus mendapatkannya sendiri. Ini agak rumit, tetapi tidak ada cara hukum lainnya .
Unduh driver Broadcom Windows 8 atau DARI SINI .
Jika perangkat Anda tidak tercantum dalam driver ini, Anda harus menemukan versi yang lebih baru di suatu tempat. Broadcom menghapus driver terbaru dari situs mereka untuk membuatnya lebih sulit.
Beberapa vendor laptop memiliki driver Bluetooth di situs mereka, tetapi beberapa dari mereka tidak dapat ditunda. Jadi ini adalah beberapa pencarian. Saya bisa mengunduh driver Broadcom terbaru dari situs mereka, tetapi tidak ada lagi.
Buka file ini oleh Archive Manager dan temukan
bcbtums-win8x86-brcm.inf
file di sana . Nama file mungkin berbeda di beberapa driver. Itu dapatbcbtums.inf
ditemukan di direktori Win32 atau Win64. Tidak masalah 32 atau 64 bit untuk diunduh.Cari file ini untuk VID_ 0A5C & PID_ 21D7 . Angka-angka ini dari
lsusb
output Anda0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.
Komentar: Beberapa perangkat tidak dikenali sebagai Broadcom BT di
lsusb
. Jika Anda tidak yakin yang mana perangkat BT Anda, jalankanusb-devices
perintah, itu akan memberikan informasi lebih rinci. Di sana Anda dapat menemukan ID produk dan vendor.Anda akan melihat beberapa baris yang diakhiri dengan RAMUSB21D7
Cari file ini untuk RAMUSB21D7. Anda akan menemukan bagian di sana seperti itu:
Itu yang kami cari. Nama file firmware. BCM43142A0_001.001.011.0122.0126.hex
Sekarang ekstrak firmware itu dari file cab yang sama.
Maka Anda perlu mengkonversi file ini dari format hex ke format hcd.
Unduh alat untuk itu
Anda akan mendapatkan folder hex2hcd di direktori home Anda.
Tempatkan file firmware ke folder rumah Anda dan jalankan
Anda melihat bahwa 0a5c-21d7 adalah id dari adaptor Anda dari lsusb .
Penting: Untuk kernel 4.2+ Anda memanggil file ini sebagai
BCM.hcd
gantinya.Untuk kernel 4.8+ nama file seharusnya
BCM-<VID>-<PID>.hcd
, sepertiBCM-0a5c-21d7
.Untuk kernel 5.0 nama file lagi
BCM43142A0-0a5c-21d7.hcd
Sekarang cukup salin
BCM43142A0-0a5c-21d7.hcd
, atau file lain sesuai dengan versi kernel ke/lib/firmware/brcm
direktoriUntuk kernel 4.2+
Untuk kernel 4.8+
Anda selalu dapat memeriksa apakah nama file sudah benar dengan menjalankan
dmesg | grep -i blue
. Akan ada pesan kesalahan jika file tidak ditemukan.Jika nama file yang diminta tidak cocok dengan file yang Anda buat, ganti nama
hcd
file tersebut.Matikan komputer Anda dan nyalakan lagi. Bukan hanya reboot!
Adaptor Anda akan mendapatkan firmware dan bluetooth akan berfungsi.
Semua ini terlihat rumit, tetapi pengacara Broadcom yang harus disalahkan untuk itu. Sebagian besar vendor lain mengizinkan untuk mendistribusikan kembali firmware dengan syarat bahwa hal itu dilakukan disertai dengan lisensi.
Itu memungkinkan pengelola Linux untuk memasukkan firmware dalam distribusi.
Tapi tidak untuk Broadcom. Itu sebabnya tidak dilakukan dengan cara yang mudah.
Banyak orang dapat mengonversi semua file hex ke hcd dan membuatnya tersedia. Atau tambahkan saja ke
linux-firmware
paket Ubuntu.Tapi itu tidak sah : - ((
sumber
sudo modprobe -r btusb
) dansudo modprobe btusb
memuatnya kembali ( ) agar blueooth berfungsi lagi. bugzilla.kernel.org/show_bug.cgi?id=81821dmesg
untuk mengetahui file yang benar. Contoh keluaran dmesg:[ 3.479417] bluetooth hci0: Direct firmware load for brcm/BCM-0a5c-6410.hcd failed with error -2 [ 3.479421] Bluetooth: hci0: BCM: Patch brcm/BCM-0a5c-6410.hcd not found
.hex
file Anda , yang dapat Anda salin ke sistem Linux Anda. Setelah itu, ikuti langkah 5-8. Omong-omong, jawaban ini luar biasa.Ini adalah proyek yang bertujuan untuk mengotomatiskan prosesnya sedikit: https://github.com/winterheart/broadcom-bt-firmware
salin BCM ke direktori / nama kanan tergantung pada kernel (seperti dijelaskan di atas).
Pada 4.8 saya tidak perlu reboot, cukup di terminal:
akan ditampilkan jika sudah dimuat. Pastikan ID perangkat keras cocok dengan file tersebut. Itu dapat ditemukan dengan:
yang menunjukkan ini di Lenovo saya (hanya baris itu):
Saya harap itu membantu :)
sumber
hcitool dev
masih tidak menunjukkan perangkat apa pun dan ada kesalahan dalam syslog. Menemukan driver lain di plugable.com/2014/06/23/… yang berhasil.Itu yang Anda butuhkan: https://github.com/winterheart/broadcom-bt-firmware
Pada repositori ini Anda dapat menemukan informasi lebih lanjut dan semua driver kartu nirkabel Broadcom diperlukan .
Agar lebih konkret, saya memberi Anda instruksi yang saya tulis sendiri:
Tutorial ini dimaksudkan untuk membuat kartu jaringan nirkabel / bluetooth Broadcom Corporation BCM43142 802.11b / g / n (rev 01) (Device ID: 0a5c: 216d) bekerja pada sistem Linux (Saya mencobanya pada Elementary OS 0.4.1 Loki, berdasarkan pada Ubuntu 16.04.3 LTS).
Ini tidak dapat berfungsi untuk perangkat lain tetapi seharusnya tidak terlalu berbeda dari prosedur ini untuk perangkat Broadcom lainnya. Driver Broadcom yang dibutuhkan ada di folder repositori GitHub ini dalam format .hcd.
Masukkan perintah berikut untuk menemukan nama driver yang dicari kernel saat memuat drive saat boot:
Coba yang ini jika tidak menemukan apa-apa:
Hasilnya harus seperti ini:
Penjelasan: dalam kasus saya, kernel mencari file di
BCM.hcd
bawah direktori di/lib/firmware/brcm
mana driver Broadcom diharapkan berada. Jika Kernel mencari nama driver lain, Anda harus mengganti nama file driver (BCM43142A0-0a5c-216c.hcd
dalam kasus saya untuk BCM43142 (0a5c: 216d)) menjadi nama yang diperlukan oleh kernel.Pindahkan driver yang diganti namanya (BCM.hcd) ke direktori home Anda (/ home / YourUsername /) dan jalankan perintah berikut untuk memindahkannya ke folder yang dilihat kernel saat boot:
Anda harus menggunakan driver yang sesuai tergantung pada perangkat Anda dan ganti namanya jika diminta untuk kernel.
Nyalakan kembali komputer Anda dan itu akan berfungsi! * (Anda dapat masuk
dmesg | grep -i 'bluetooth'
sekali lagi untuk melihat apakah driver telah dimuat)sumber