Bluetooth jest włączony, ale nie można go znaleźć ani znaleźć.
Wyjście 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
Wyjście lsusb
:
Bus 003 Device 005: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0
Jak mogę to naprawić?
Odpowiedzi:
Musisz zainstalować oprogramowanie wewnętrzne.
Dystrybucja oprogramowania wewnętrznego Broadcom jest niedozwolona przez licencję Broadcom. Musisz to zdobyć sam. Jest to trochę skomplikowane, ale nie ma innej legalnej drogi.
Pobierz sterownik Broadcom Windows 8 lub TUTAJ .
Jeśli twoje urządzenie nie jest wymienione w tych sterownikach, musisz gdzieś znaleźć jego nowszą wersję. Broadcom usunął najnowsze sterowniki ze swojej strony, aby utrudnić.
Niektórzy dostawcy laptopów mają sterowniki Bluetooth na swoich stronach, ale niektórych z nich nie można rozpakować. To jest poszukiwanie. Mógłbym pobrać najnowsze sterowniki Broadcom z ich strony, ale już go nie ma.
Otwórz ten plik za pomocą Archive Managera i znajdź tam
bcbtums-win8x86-brcm.inf
plik. Nazwa pliku może się różnić w niektórych sterownikach. Można go znaleźćbcbtums.inf
w katalogu Win32 lub Win64. Pobieranie nie ma znaczenia 32 lub 64 bit.Wyszukaj w tym pliku VID_ 0A5C i PID_ 21D7 . Te liczby pochodzą z twoich
lsusb
wyników0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.
Komentarz: Niektóre urządzenia nie są rozpoznawane jako Broadcom BT w
lsusb
. Jeśli nie masz pewności, które urządzenie jest twoim urządzeniem BT, uruchomusb-devices
polecenie, poda ono bardziej szczegółowe informacje. Tam możesz znaleźć identyfikatory produktu i dostawcy.Zobaczysz linię kończącą się na RAMUSB21D7
Wyszukaj w tym pliku RAMUSB21D7. Znajdziesz tam taką sekcję:
Właśnie tego szukamy. Nazwa pliku oprogramowania układowego. BCM43142A0_001.001.011.0122.0126.hex
Teraz wypakuj to oprogramowanie z tego samego pliku cab.
Następnie musisz przekonwertować ten plik z heksadecymalnego na format hcd.
Pobierz do tego narzędzie
Otrzymasz folder hex2hcd w swoim katalogu domowym.
Umieść plik oprogramowania układowego w folderze domowym i uruchom
Widzisz, że 0a5c-21d7 jest identyfikatorem twojego adaptera z lsusb .
Ważne: W przypadku jądra 4.2+ ten plik wywołuje się w ten sposób
BCM.hcd
.W przypadku jądra 4.8+ nazwa pliku powinna wyglądać
BCM-<VID>-<PID>.hcd
podobnieBCM-0a5c-21d7
.W przypadku jądra 5.0 nazwa pliku jest ponownie
BCM43142A0-0a5c-21d7.hcd
Teraz po prostu skopiuj
BCM43142A0-0a5c-21d7.hcd
do/lib/firmware/brcm
katalogu inny plik zgodny z wersją jądraDla jąder 4.2+
Dla jąder 4.8+
Zawsze możesz sprawdzić, czy nazwa pliku jest poprawna, uruchamiając
dmesg | grep -i blue
. Jeśli plik nie zostanie znaleziony, pojawi się komunikat o błędzie.Jeśli żądana nazwa pliku nie pasuje do utworzonego pliku, zmień nazwę
hcd
pliku.Wyłącz komputer i włącz go ponownie. Nie tylko restart!
Twój adapter dostanie oprogramowanie wewnętrzne i Bluetooth powinien działać.
Wszystko to wydaje się skomplikowane, ale winni są za to prawnicy Broadcom . Większość innych dostawców zezwala na ponowną dystrybucję oprogramowania układowego pod warunkiem, że odbywa się to wraz z licencją.
Pozwala to opiekunom systemu Linux na dołączanie oprogramowania wewnętrznego do dystrybucji.
Ale nie w przypadku Broadcom. Dlatego nie jest to łatwe.
Wiele osób może przekonwertować wszystkie pliki hex na hcd i udostępnić je. Lub po prostu dodaj je do
linux-firmware
pakietu Ubuntu.Ale to nie jest legalne : - ((
źródło
sudo modprobe -r btusb
) i załadować go ponownie (sudo modprobe btusb
), aby blueooth mógł ponownie działać. bugzilla.kernel.org/show_bug.cgi?id=81821dmesg
aby poznać mój poprawny plik. Przykład danych wyjściowych 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
pliku, który możesz skopiować do systemu Linux. Następnie wykonaj kroki 5-8. Nawiasem mówiąc, ta odpowiedź jest doskonała.Oto projekt, który ma na celu nieco zautomatyzować proces: https://github.com/winterheart/broadcom-bt-firmware
skopiuj BCM do odpowiedniego katalogu / nazwy w zależności od jądra (jak opisano powyżej).
W wersji 4.8 nie potrzebowałem restartu, po prostu w terminalu:
powinien pokazać, czy jest załadowany. Upewnij się, że identyfikator sprzętu pasuje do pliku. Można go znaleźć z:
co pokazuje to na moim Lenovo (tylko ta linia):
Mam nadzieję że to pomogło :)
źródło
hcitool dev
nadal nie pokazywały żadnych urządzeń i wystąpił błąd w syslog. Znaleziono inny sterownik na plugable.com/2014/06/23/…, który działał.To wszystko, czego potrzebujesz: https://github.com/winterheart/broadcom-bt-firmware
W tym repozytorium można znaleźć więcej informacji i wszystkich potrzebnych sterowników kart bezprzewodowych Broadcom .
Aby być bardziej konkretnym, daję ci instrukcje, które sam dla siebie napisałem:
Ten samouczek ma na celu uczynienie karty sieci bezprzewodowej / bluetooth Broadcom Corporation BCM43142 802.11b / g / n (rev 01) (ID urządzenia: 0a5c: 216d) działającej na systemach Linux (wypróbowałem na Elementary OS 0.4.1 Loki, w oparciu na Ubuntu 16.04.3 LTS).
Nie może działać dla innych urządzeń, ale nie powinna zbytnio różnić się od tej procedury dla innych urządzeń Broadcom. Potrzebne sterowniki Broadcom znajdują się w folderze reposity tego GitHub w formacie .hcd.
Wpisz następujące polecenie, aby dowiedzieć się, której nazwy sterownika szuka jądro podczas ładowania dysków podczas uruchamiania:
Wypróbuj ten, jeśli nic nie znajdziesz:
Wynik powinien być mniej więcej taki:
Objaśnienie: w moim przypadku jądro szuka pliku
BCM.hcd
w katalogu, w/lib/firmware/brcm
którym powinny znajdować się sterowniki Broadcom. Jeśli jądro szuka innej nazwy sterownika, musisz zmienić nazwę pliku sterownika (BCM43142A0-0a5c-216c.hcd
w moim przypadku dla BCM43142 (0a5c: 216d)) na wymaganą nazwę przez jądro.Przenieś sterownik o zmienionej nazwie (BCM.hcd) do katalogu domowego (/ home / YourUsername /) i uruchom następującą komendę, aby przenieść go do folderu, na którym patrzy jądro podczas uruchamiania:
Musisz użyć odpowiedniego sterownika w zależności od urządzenia i zmienić jego nazwę, jeśli jest to wymagane dla jądra.
Uruchom ponownie komputer i powinien on działać! * (Możesz
dmesg | grep -i 'bluetooth'
ponownie wprowadzić, aby sprawdzić, czy sterownik został załadowany)źródło