Bluetooth ist aktiviert, kann aber von keinem anderen Gerät gefunden werden.
Ausgabe von 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
Ausgabe von lsusb
:
Bus 003 Device 005: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0
Wie kann ich es reparieren?
Antworten:
Sie müssen die Firmware installieren.
Die Weitergabe der Broadcom-Firmware ist gemäß der Broadcom-Lizenz nicht zulässig. Sie müssen es sich also selbst besorgen. Es ist ein bisschen komplex, aber es gibt keinen anderen legalen Weg.
Laden Sie den Broadcom Windows 8-Treiber herunter oder HIER .
Wenn Ihr Gerät in diesen Treibern nicht aufgeführt ist, müssen Sie irgendwo eine neuere Version finden. Broadcom hat die neuesten Treiber von ihrer Site entfernt, um dies zu erschweren.
Einige Laptop-Anbieter haben Bluetooth-Treiber auf ihren Websites, einige können jedoch nicht entpackt werden. Es ist also eine Suche. Ich könnte die neuesten Broadcom-Treiber von ihrer Website herunterladen, aber es ist nicht mehr da.
Öffnen Sie diese Datei mit dem Archiv-Manager und suchen Sie sie
bcbtums-win8x86-brcm.inf
. Der Name der Datei kann in einigen Treibern abweichen. Es kannbcbtums.inf
sich im Win32- oder Win64-Verzeichnis befinden. Das Herunterladen von 32 oder 64 Bit spielt keine Rolle.Durchsuchen Sie diese Datei nach VID_ 0A5C & PID_ 21D7 . Diese Zahlen stammen aus Ihrer
lsusb
Ausgabe0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.
Kommentar: Einige Geräte werden in nicht als Broadcom BT erkannt
lsusb
. Wenn Sie sich nicht sicher sind, welches Ihr BT-Gerät ist, führen Sie denusb-devices
Befehl aus, um detailliertere Informationen zu erhalten. Dort finden Sie Produkt- und Lieferanten-IDs.Sie werden eine Zeile sehen, die mit RAMUSB21D7 endet
Durchsuchen Sie diese Datei nach RAMUSB21D7. Dort finden Sie einen Abschnitt wie diesen:
Das suchen wir. Name der Firmware-Datei. BCM43142A0_001.001.011.0122.0126.hex
Extrahieren Sie nun diese Firmware aus derselben CAB-Datei.
Dann müssen Sie diese Datei von hex in das hcd-Format konvertieren.
Laden Sie das Tool dafür herunter
Sie erhalten den hex2hcd- Ordner in Ihrem Home-Verzeichnis.
Legen Sie die Firmware-Datei in Ihren Home-Ordner und führen Sie sie aus
Sie sehen, dass 0a5c-21d7 die ID Ihres Adapters von lsusb ist .
Wichtig: Für Kernel 4.2+ rufen Sie diese Datei
BCM.hcd
stattdessen als auf .Für Kernel 4.8+ sollte der Name der Datei
BCM-<VID>-<PID>.hcd
wie folgt lautenBCM-0a5c-21d7
.Für Kernel 5.0 lautet der Dateiname erneut
BCM43142A0-0a5c-21d7.hcd
Jetzt einfach kopieren
BCM43142A0-0a5c-21d7.hcd
, oder eine andere Datei entsprechend der Kernelversion ins/lib/firmware/brcm
Verzeichnis kopierenFür Kernel 4.2+
Für Kernel 4.8+
Sie können jederzeit überprüfen, ob der Dateiname korrekt ist, indem Sie ausführen
dmesg | grep -i blue
. Es wird eine Fehlermeldung angezeigt, wenn die Datei nicht gefunden wird.Wenn der angeforderte Dateiname nicht mit der von Ihnen erstellten Datei übereinstimmt, benennen Sie die
hcd
Datei um.Schalten Sie Ihren Computer aus und wieder ein. Nicht nur neustarten!
Ihr Adapter erhält Firmware und Bluetooth sollte funktionieren.
All dies sieht kompliziert aus, aber es sind die Anwälte von Broadcom , die dafür verantwortlich sind. Die meisten anderen Anbieter gestatten die Weiterverteilung von Firmware unter der Bedingung, dass dies zusammen mit der Lizenz erfolgt.
Dadurch können Linux-Maintainer Firmware in Distributionen einbinden.
Aber nicht bei Broadcom. Deshalb ist es nicht einfach.
Viele Leute könnten alle Hex-Dateien in hcd konvertieren und verfügbar machen. Oder füge sie einfach dem
linux-firmware
Ubuntu-Paket hinzu.Aber es ist nicht legal : - ((
quelle
sudo modprobe -r btusb
) und neu laden (sudo modprobe btusb
), damit Blueooth wieder funktioniert. bugzilla.kernel.org/show_bug.cgi?id=81821dmesg
, um meine korrekte Datei zu ermitteln. Beispiel dmesg Ausgabe:[ 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
Datei, den Sie auf Ihr Linux-System kopieren können. Folgen Sie danach den Schritten 5-8. Diese Antwort ist übrigens hervorragend.Hier ist ein Projekt, das darauf abzielt, den Prozess ein wenig zu automatisieren: https://github.com/winterheart/broadcom-bt-firmware
Kopieren Sie das BCM je nach Kernel in das richtige Verzeichnis / den richtigen Namen (wie oben beschrieben).
Auf 4.8 brauchte ich keinen Neustart, einfach in einem Terminal:
sollte anzeigen, ob es geladen ist. Stellen Sie sicher, dass die Hardware-ID mit der Datei übereinstimmt. Es kann gefunden werden mit:
Das zeigt dies auf meinem Lenovo (nur diese Zeile):
Ich hoffe das hilft :)
quelle
hcitool dev
noch keine Geräte angezeigt , und im Syslog ist ein Fehler aufgetreten. Auf plugable.com/2014/06/23/… wurde ein anderer Treiber gefunden , der funktioniert hat.Das ist alles was Sie brauchen: https://github.com/winterheart/broadcom-bt-firmware
In diesem Repository finden Sie weitere Informationen und alle benötigten Treiber für Broadcom-Funkkarten .
Um genauer zu sein, gebe ich Ihnen die Anweisungen, die ich für mich selbst geschrieben habe:
Mit diesem Tutorial soll die Funk- / Bluetooth-Netzwerkkarte Broadcom Corporation BCM43142 802.11b / g / n (Version 01) (Geräte-ID: 0a5c: 216d) auf Linux-Systemen (ich habe sie auf Elementary OS 0.4.1 Loki ausprobiert) funktionieren auf Ubuntu 16.04.3 LTS).
Es könnte nicht für andere Geräte funktionieren, aber es sollte nicht zu sehr von diesem Verfahren für andere Broadcom-Geräte abweichen. Die benötigten Broadcom-Treiber befinden sich im Reposity-Ordner dieses GitHubs im .hcd-Format.
Geben Sie den folgenden Befehl ein, um herauszufinden, nach welchem Treibernamen der Kernel sucht, wenn Sie die Laufwerke beim Booten laden:
Versuchen Sie dies, wenn es nichts findet:
Das Ergebnis sollte ungefähr so aussehen:
Erläuterung: In meinem Fall sucht der Kernel nach der Datei
BCM.hcd
in dem Verzeichnis,/lib/firmware/brcm
in dem sich die Broadcom-Treiber befinden sollen. Wenn der Kernel nach einem anderenBCM43142A0-0a5c-216c.hcd
Treibernamen sucht, müssen Sie die Treiberdatei ( in meinem Fall für das BCM43142 (0a5c: 216d)) vom Kernel in den erforderlichen Namen umbenennen.Verschieben Sie den umbenannten Treiber (BCM.hcd) in Ihr Home-Verzeichnis (/ home / YourUsername /) und führen Sie den folgenden Befehl aus, um ihn in den Ordner zu verschieben, auf den der Kernel beim Booten zugreift:
Sie müssen den entsprechenden Treiber abhängig von Ihrem Gerät verwenden und ihn umbenennen, wenn Sie für den Kernel dazu aufgefordert werden.
Starten Sie Ihren Computer neu und es sollte funktionieren! * (Sie können erneut eingeben
dmesg | grep -i 'bluetooth'
, um zu sehen, ob der Treiber geladen wurde)quelle