Bluetooth Broadcom 43142 çalışmıyor


38

Bluetooth açık, ancak başka bir cihaz tarafından bulunamıyor veya bulunamıyor.

Çıktı 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

Çıktı lsusb:

Bus 003 Device 005: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0

Nasıl düzeltebilirim?


4352 kartının cevabı ile benzer bir soru askubuntu.com/questions/617513/…
Wilf

Yanıtlar:


77

Ürün yazılımı yüklemeniz gerekir.

Broadcom ürün yazılımının dağıtımına Broadcom lisansı tarafından izin verilmez. Yani kendin almalısın. Bu biraz karmaşık, ama başka bir yasal yol yok.

  1. İndir Broadcom Windows 8 sürücüsünü veya BURADAN .

Aygıtınız bu sürücülerde listelenmemişse, daha yeni bir sürümünü bulmanız gerekir. Broadcom, daha zorlaştırmak için en son sürücüleri sitelerinden kaldırdı.

Bazı dizüstü bilgisayar satıcılarının sitelerinde Bluetooth sürücüleri bulunur, ancak bazıları açılabilir değildir. Bu yüzden bazı arayış. En son Broadcom sürücülerini kendi sitelerinden indirebilirim, ancak artık yok.

  1. Bu dosyayı Arşiv Yöneticisi tarafından açın ve bcbtums-win8x86-brcm.infdosyayı bulun. Dosyanın adı bazı sürücülerde farklılık gösterebilir. Bu edilebilir bcbtums.infWin32 veya Win64 dizininde bulunan. İndirmek için 32 veya 64 bit önemli değil.
  2. Bu dosyayı VID_ 0A5C ve PID_ 21D7 için arayın . Bu sayılar lsusbçıktınızdan

    0a5c: 21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.

Yorum: Bazı cihazlar Broadcom BT girişi olarak tanınmıyor lsusb. Hangisinin BT cihazınız olduğundan emin değilseniz, run usb-deviceskomutu, daha ayrıntılı bilgi verecektir. Burada ürün ve satıcı kimliklerini bulabilirsiniz.

RAMUSB21D7 ile biten bir satır göreceksiniz

RAMUSB21D7 için bu dosyayı arayın. Orada böyle bir bölüm bulacaksınız:

    [RAMUSB21D7.CopyList]
    bcbtums.sys
    btwampfl.sys
    BCM43142A0_001.001.011.0122.0126.hex

Aradığımız şey bu. Firmware dosyasının adı. BCM43142A0_001.001.011.0122.0126.hex

  1. Şimdi bu üretici yazılımını aynı kabin dosyasından çıkarın.

    O zaman bu dosyayı hex'den hcd formatına dönüştürmelisiniz.

  2. Bunun için aracı indirin

    git clone git://github.com/jessesung/hex2hcd.git
    cd hex2hcd
    make
    

    Ana dizinde hex2hcd klasörünü alacaksınız .

  3. Ürün yazılımı dosyasını ana klasörünüze yerleştirin ve çalıştırın

    ~/hex2hcd/hex2hcd ~/BCM43142A0_001.001.011.0122.0126.hex ~/BCM43142A0-0a5c-21d7.hcd
    

    Bunu görmek 0a5c-21d7 adresinin adaptörün kimliği olan lsusb .

Önemli: 4.2+ çekirdekleri için bu dosyayı BCM.hcdonun yerine çağırınız .

   ~/hex2hcd/hex2hcd ~/BCM43142A0_001.001.011.0122.0126.hex ~/BCM.hcd

Çekirdekler için 4.8+ dosyanın adı olmalıdır BCM-<VID>-<PID>.hcdgibi BCM-0a5c-21d7.

Çekirdek 5.0 için dosya adı tekrar BCM43142A0-0a5c-21d7.hcd

  1. Şimdi sadece kopyalayın BCM43142A0-0a5c-21d7.hcdveya çekirdeğin sürümüne göre başka bir dosyayı /lib/firmware/brcmdizine

    sudo cp ~/BCM43142A0-0a5c-21d7.hcd /lib/firmware/brcm
    

Çekirdekler için 4.2+

    sudo cp ~/BCM.hcd /lib/firmware/brcm

Çekirdekler için 4.8+

    sudo cp ~/BCM-0a5c-21d7.hcd  /lib/firmware/brcm

Dosya adının doğru olup olmadığını kontrol ederek her zaman kontrol edebilirsinizdmesg | grep -i blue . Dosya bulunmazsa bir hata mesajı olacaktır.

İstenen dosya adı oluşturduğunuz dosyayla aynı değilse, dosyayı yeniden adlandırın hcd.

  1. Bilgisayarınızı kapatıp tekrar açın. Sadece yeniden başlatmak değil!

    Adaptörünüz bellenim alır ve bluetooth çalışmalıdır.

Bütün bunlar karmaşık görünüyor, ancak bunun için suçlanan Broadcom avukatları. Diğer üreticilerin çoğu, lisansa eşlik etmesi koşuluyla aygıt yazılımını yeniden dağıtmaya izin verir.

Bu, linux bakımcılarının dağıtımlara üretici yazılımı eklemesini sağlar.

Ancak Broadcom durumunda değil. Bu yüzden kolay bir şekilde yapılmaz.

Birçok kişi tüm hex dosyalarını hcd'ye dönüştürebilir ve kullanılabilir hale getirebilir. Veya onları sadece Ubuntu'nun Linux-firmware paketine ekleyin.

Ancak yasal değildir : - ((


6
Dizüstü bilgisayarımı uyandırdığımda çoğu zaman, bluetooth modülünün yeniden yüklenmesi bir çekirdek yığını iziyle başarısız oluyor. Yeniden başlatmadan bluetooth'a ihtiyacınız varsa, bluetooth modülünü ( sudo modprobe -r btusb) boşaltmanız ve sudo modprobe btusbblueooth'un yeniden çalışması için yeniden yüklemeniz ( ) gerekir. bugzilla.kernel.org/show_bug.cgi?id=81821
solsTiCe

1
6. adımda, hex2hcd'ye şöyle bir çıktı dosyası verilmelidir: hex2hcd [input-file] -o [output-file] Lütfen cevabı güncelleyebilir misiniz?
Minas Mina

Cevapta çıktı dosyası var. Yoksa yazar değiştirdi. Bu hex2hcd giriş dosyası çıkış dosyası olarak kullanılır
Pilot6

4
Ana gönderiyi güncellediğiniz için @ Pilot6'ya teşekkür ederiz. Benim durumumda dmesgdoğru dosyamı bilmek hatayı baktım . Örnek dmesg çıktısı:[ 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
morhook

5
DUALBOT KULLANICILARI: Doğru bellenimi Windows işletim sisteminizden çıkarabileceğinizi unutmayın. Bunu yapmak için, Windows Aygıt Yöneticisi'ne gidin, Bluetooth cihazınızı bulun, sağ tıklayın, Özellikler, Sürücü, Sürücü Detayları. Burada .hex, Linux sisteminize kopyalayabileceğiniz dosya yolunu bulacaksınız . Bundan sonra 5-8 arasındaki adımları izleyin. Bu cevap bu arada mükemmel.
Manu CJ,

18

İşlemi biraz otomatikleştirmeyi amaçlayan bir proje: https://github.com/winterheart/broadcom-bt-firmware

BCM'yi çekirdeğe bağlı olarak (yukarıda açıklandığı gibi) sağ direk / isme kopyalayın.

4.8'de sadece bir terminalde yeniden başlatmaya ihtiyacım olmadı:

sudo modprobe -r btusb
sudo modprobe btusb

dmesg | grep -i blu

yüklü olup olmadığını göstermelidir. Donanım kimliğinin dosyayla aynı olduğundan emin olun. İle bulunabilir:

lsusb

bu benim Lenovo’da gösteriyor (yalnızca bu satırda):

Bus 001 Device 006: ID 105b:e065 Foxconn International, Inc. BCM43142A0 Bluetooth module

Umarım bu yardımcı olur :)


1
Benim durumumda (UtechSmart USB Bluetooth 4.0 Cihaz kimliği: 0a5c: 21e8) winterheart sürücüleri yüklendi ancak hcitool devhala herhangi bir cihaz göstermedi ve syslog'da bir hata oluştu. Plugable.com/2014/06/23/… adresinde çalışan başka bir sürücü bulundu .
Greg Bray,

8

İhtiyacınız olan tek şey bu: https://github.com/winterheart/broadcom-bt-firmware

Bu depoda daha fazla bilgi ve gerekli tüm Broadcom kablosuz kart sürücülerini bulabilirsiniz .


Daha somut olmak için, sana kendim için yazdığım talimatları verdim:

Bu öğretici, Linux sistemlerinde çalışan kablosuz / bluetooth ağ kartı Broadcom Corporation BCM43142 802.11b / g / n (rev 01) (Cihaz Kimliği: 0a5c: 216d) 'nin Linux sistemlerinde çalışmasını sağlamak amacıyla hazırlanmıştır. Ubuntu'da 16.04.3 LTS).

Diğer cihazlar için işe yaramadı ancak diğer Broadcom cihazları için bu prosedürden çok fazla farklı olmamalıdır. Gerekli Broadcom sürücüleri bu GitHub'ın depo klasöründe .hcd formatındadır.

  1. Sürücüleri önyükleme yaparken yüklerken hangi çekirdeğin aradığını bulmak için aşağıdaki komutu girin:

    dmesg | grep -i 'firmware load'
    

    Bir şey bulamazsa bunu deneyin:

    dmesg | grep -i 'bluetooth'
    

    Sonuç şöyle bir şey olmalı:

    bluetooth hci0: Direct firmware load for brcm/BCM.hcd failed with error -2
    

    Açıklama: Benim durumumda çekirdek Broadcom sürücülerinin olması beklenen BCM.hcddizinin altındaki dosyayı arıyor /lib/firmware/brcm. Çekirdek başka bir sürücü adı arıyorsa, sürücü dosyasını ( BCM43142A0-0a5c-216c.hcdBCM43142 (0a5c: 216d) için) çekirdek tarafından istenen ada göre yeniden adlandırmalısınız .

  2. Yeniden adlandırılan sürücüyü (BCM.hcd) ana dizininize (/ home / Kullanıcı Adınız /) taşıyın ve çekirdeği önyüklerken çekirdeğin aradığı klasöre taşımak için aşağıdaki komutu çalıştırın:

    sudo mv ~/BCM.hcd /lib/firmware/brcm
    

    Cihazınıza bağlı olarak ilgili sürücüyü kullanmalı ve çekirdek için isteniyorsa yeniden adlandırmalısınız.

  3. Bilgisayarınızı yeniden başlatın ve çalışması gerekir! * ( dmesg | grep -i 'bluetooth'Sürücünün yüklenip yüklenmediğini görmek için bir kez daha girebilirsiniz )


İşe yaradı! Çok teşekkürler! Benim durumumda, "BCM43142 802.11b / g / n [14e4: 4365] (rev 01)" sürümü github klasöründe mevcut değildi, ancak BCM43142A0-185f-2167.hcd ile denedim ve işe yaradı!
Sriram Kannan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.