ब्लूटूथ ब्रॉडकॉम 43142 काम नहीं कर रहा है


38

ब्लूटूथ चालू है, लेकिन किसी अन्य डिवाइस द्वारा ढूंढा या पाया नहीं जा सकता है।

का आउटपुट 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

का आउटपुट lsusb:

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

मेरे द्वारा यह कैसे किया जा सकता है?


4352 कार्ड के लिए एक जवाब के साथ इसी तरह के सवाल askubuntu.com/questions/617513/...
विल्फ़

जवाबों:


78

आपको फर्मवेयर स्थापित करने की आवश्यकता है।

ब्रॉडकॉम फर्मवेयर के वितरण को ब्रॉडकॉम लाइसेंस द्वारा अनुमति नहीं है। इसलिए आपको इसे स्वयं प्राप्त करने की आवश्यकता है। यह थोड़ा जटिल है, लेकिन कोई अन्य कानूनी तरीका नहीं है।

  1. डाउनलोड ब्रॉडकॉम विंडोज 8 ड्राइवर या यहाँ से

    यदि आपका डिवाइस इन ड्राइवरों में सूचीबद्ध नहीं है, तो आपको कहीं न कहीं इसका नया संस्करण खोजना होगा। ब्रॉडकॉम ने नवीनतम ड्राइवरों को अपनी साइट से हटा दिया ताकि इसे और अधिक कठिन बनाया जा सके।

    कुछ लैपटॉप विक्रेताओं के पास अपनी साइटों पर ब्लूटूथ ड्राइवर होते हैं, लेकिन उनमें से कुछ अप्राप्य नहीं होते हैं। तो यह कुछ खोज है। मैं अपनी साइट से नवीनतम ब्रॉडकॉम ड्राइवरों को डाउनलोड कर सकता हूं, लेकिन यह कोई और नहीं है।

  2. इस फ़ाइल को पुरालेख प्रबंधक द्वारा खोलें और वहाँ bcbtums-win8x86-brcm.infफ़ाइल खोजें। फ़ाइल का नाम कुछ ड्राइवरों में भिन्न हो सकता है। यह bcbtums.infWin32 या Win64 निर्देशिका में स्थित हो सकता है। डाउनलोड करने के लिए 32 या 64 बिट की बात नहीं है।

  3. VID_ लिए इस फ़ाइल को खोजें 0A5C और PID_ 21D7 । ये नंबर आपके lsusbआउटपुट से हैं

    0a5c: 21d7 ब्रॉडकॉम कॉर्प BCM43142 ब्लूटूथ 4.0।

    टिप्पणी: कुछ उपकरणों को ब्रॉडकॉम बीटी के रूप में मान्यता प्राप्त नहीं है lsusb। यदि आप अनिश्चित हैं कि कौन सा आपका बीटी उपकरण है, तो usb-devicesकमांड चलाएं , यह अधिक विस्तृत जानकारी देगा। वहां आप उत्पाद और विक्रेता आईडी पा सकते हैं।

    आपको RAMUSB21D7 के साथ कुछ लाइन समाप्त होती दिखाई देगी

    RAMUSB21D7 के लिए इस फ़ाइल को खोजें। आपको इस तरह एक सेक्शन मिलेगा:

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

    यही हम ढूंढ रहे हैं। फर्मवेयर फ़ाइल का नाम। BCM43142A0_001.001.011.0122.0126.hex

  4. अब उसी फर्मवेयर को उसी कैब फ़ाइल से निकालें।

    फिर आपको इस फाइल को हेक्स से hcd फॉर्मेट में बदलने की जरूरत है।

  5. उसके लिए टूल डाउनलोड करें

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

    आपको अपने घर निर्देशिका में हेक्स 2hcd फ़ोल्डर मिलेगा ।

  6. फर्मवेयर फ़ाइल को अपने होम फ़ोल्डर में रखें और चलाएं

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

    आप देखते हैं कि 0a5c-21d7 से अपने एडाप्टर के आईडी है lsusb

    महत्वपूर्ण: गुठली के लिए 4.2+ आप इस फ़ाइल को BCM.hcdइसके बजाय कहते हैं।

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

    गुठली के लिए फ़ाइल का 4.8+ नाम होना चाहिए BCM-<VID>-<PID>.hcd, जैसे BCM-0a5c-21d7

    कर्नेल 5.0 के लिए फ़ाइल का नाम फिर से है BCM43142A0-0a5c-21d7.hcd

    अब बस कॉपी BCM43142A0-0a5c-21d7.hcdया एक और फाइल को कर्नेल संस्करण के अनुसार /lib/firmware/brcmडायरेक्ट्री द्वारा

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

    गुठली के लिए 4.2+

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

    गुठली के लिए 4.8+

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

    यदि फ़ाइल का नाम सही है तो आप हमेशा जाँच कर सकते हैंdmesg | grep -i blue । यदि फ़ाइल नहीं मिली है तो एक त्रुटि संदेश होगा।

    यदि अनुरोधित फ़ाइल नाम आपके द्वारा बनाई गई फ़ाइल से मेल नहीं खाता है, तो फ़ाइल का नाम बदलें hcd

  7. अपने कंप्यूटर को फिर से चालू करें। सिर्फ रिबूट नहीं!

    आपके एडॉप्टर को फर्मवेयर मिलेगा और ब्लूटूथ को काम करना चाहिए।

यह सब जटिल लगता है, लेकिन इसके लिए दोषी ठहराए जाने वाले ब्रॉडकॉम वकील हैं। अधिकांश अन्य विक्रेता इस शर्त के तहत फर्मवेयर को फिर से वितरित करने की अनुमति देते हैं कि यह लाइसेंस के साथ किया जाता है।

लिनक्स वितरण को फर्मवेयर को वितरण में शामिल करने की अनुमति देता है।

लेकिन ब्रॉडकॉम के मामले में नहीं। इसलिए यह एक आसान तरीका नहीं है।

कई लोग सभी हेक्स फाइलों को hcd में बदल सकते थे और उन्हें उपलब्ध करवा सकते थे। या बस उन्हें linux-firmwareउबंटू के पैकेज में जोड़ें ।

लेकिन यह कानूनी नहीं है : - ((


6
जब मैं अपने लैपटॉप को उठाता हूं, तो अधिकांश बार ब्लूटूथ मॉड्यूल का पुनः लोडिंग कर्नेल स्टैक ट्रेस के साथ विफल हो जाता है। यदि आपको रिबूटिंग के बिना ब्लूटूथ की आवश्यकता है, तो आपको ब्लूटूथ मॉड्यूल को अनलोड करने sudo modprobe -r btusbऔर फिर sudo modprobe btusbसे काम करने के लिए इसे नीला करने के लिए पुनः लोड करना होगा । Bugzilla.kernel.org/show_bug.cgi?id=81821
solsTiCe

1
चरण 6 में, हेक्स 2hcd को एक आउटपुट फ़ाइल दी जानी चाहिए, जैसे: hex2hcd [इनपुट-फ़ाइल] -o [आउटपुट-फ़ाइल] क्या आप उत्तर को अपडेट कर सकते हैं?
मिनस मीना

उत्तर में आउटपुट फ़ाइल है। या लेखक ने इसे बदल दिया। यह
Pilot6

4
धन्यवाद @ पायलट मुख्य पोस्ट को अपडेट करने के लिए। मेरे मामले में मैंने dmesgअपनी सही फ़ाइल जानने के लिए त्रुटि देखी। उदाहरण 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
morhook

5
DUALBOOT USERS: ध्यान दें कि आप अपने विंडोज OS से सही फर्मवेयर निकाल सकते हैं। ऐसा करने के लिए, विंडोज डिवाइस मैनेजर पर जाएं, अपना ब्लूटूथ डिवाइस, राइट-क्लिक, प्रॉपर्टीज, ड्राइवर, ड्राइवर डिटेल्स ढूंढें। वहां आपको अपनी .hexफ़ाइल का पथ मिलेगा , जिसे आप अपने लिनक्स सिस्टम पर कॉपी कर सकते हैं। उसके बाद, चरणों का पालन करें 5-8। यह उत्तर उत्कृष्ट है, वैसे।
मनु सीजे

18

यहां एक परियोजना है जिसका उद्देश्य प्रक्रिया को थोड़ा स्वचालित करना है: https://github.com/winterheart/broadcom-bt-firmware

बीसीएम को कर्नेल (जैसा कि ऊपर वर्णित है) के आधार पर सही डायर / नाम पर कॉपी करें।

4.8 पर मुझे एक रिबूट की जरूरत नहीं थी, बस एक टर्मिनल में:

sudo modprobe -r btusb
sudo modprobe btusb

dmesg | grep -i blu

दिखाना चाहिए अगर यह भरी हुई है। सुनिश्चित करें कि हार्डवेयर आईडी फ़ाइल से मेल खाती है। इसके साथ पाया जा सकता है:

lsusb

जो मेरे लेनोवो (केवल उस लाइन) पर यह दिखाता है:

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

मुझे आशा है कि वह मदद करेंगे :)


1
मेरे मामले में (UtechSmart USB ब्लूटूथ 4.0 डिवाइस आईडी: 0a5c: 21e8) विंटरहार्ट ड्राइवरों को लोड किया गया, लेकिन फिर hcitool devभी कोई उपकरण नहीं दिखा और syslog में कोई त्रुटि थी। Plugable.com/2014/06/23/… पर एक और ड्राइवर मिला, जिसने काम किया।
ग्रेग ब्रे

8

यह वही है जो आपको चाहिए: https://github.com/winterheart/broadcom-bt-firmware

इस रिपॉजिटरी पर आप अधिक informations और सभी ब्रॉडकॉम वायरलेस कार्ड ड्राइवरों की आवश्यकता पा सकते हैं ।


अधिक ठोस होने के लिए मैं आपको अपने लिए लिखे गए निर्देश देता हूं:

इस ट्यूटोरियल का उद्देश्य वायरलेस / ब्लूटूथ नेटवर्क कार्ड ब्रॉडकॉम कॉर्पोरेशन BCM43142 802.11b / g / n (01) (डिवाइस आईडी: 0a5c: 216d) लिनक्स सिस्टम पर काम करना है (मैंने इसे प्राथमिक OS.1 लोकी पर आधारित किया है) Ubuntu 16.04.3 LTS पर)।

यह अन्य उपकरणों के लिए काम नहीं कर सकता है लेकिन यह अन्य ब्रॉडकॉम उपकरणों के लिए इस प्रक्रिया से बहुत अधिक भिन्न नहीं होना चाहिए। आवश्यक ब्रॉडकॉम ड्राइवर इस GitHub के रिपॉज़िट फ़ोल्डर में .hcd प्रारूप में हैं।

  1. बूट करते समय ड्राइव को लोड करते समय कर्नेल किस चालक का नाम है, यह जानने के लिए निम्नलिखित कमांड दर्ज करें:

    dmesg | grep -i 'firmware load'
    

    यह कोशिश करो अगर यह कुछ भी नहीं मिलता है:

    dmesg | grep -i 'bluetooth'
    

    परिणाम कुछ इस तरह होना चाहिए:

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

    स्पष्टीकरण: मेरे मामले में कर्नेल BCM.hcdउस निर्देशिका के तहत फ़ाइल की तलाश कर रहा है /lib/firmware/brcmजहां ब्रॉडकॉम ड्राइवरों के होने की उम्मीद है। यदि कर्नेल किसी अन्य ड्राइवर नाम की तलाश में है, तो आपको कर्नेल द्वारा आवश्यक नाम पर ड्राइवर फ़ाइल ( BCM43142A0-0a5c-216c.hcdमेरे मामले में BCM43142 (0a5c: 216d)) का नाम बदलना होगा ।

  2. नामांकित ड्राइवर (BCM.hcd) को अपनी होम डायरेक्टरी (/ home / YourUsername /) पर ले जाएँ और निम्नलिखित कमांड को चलाएं ताकि इसे उस फ़ोल्डर में स्थानांतरित किया जा सके जिस पर कर्नेल बूट हो रहा है:

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

    आपको अपने डिवाइस के आधार पर संबंधित ड्राइवर का उपयोग करना चाहिए और कर्नेल के लिए अनुरोध करने पर उसका नाम बदलना चाहिए।

  3. अपने कंप्यूटर को रिबूट करें और यह काम करना चाहिए! * (आप dmesg | grep -i 'bluetooth'एक बार फिर से देख सकते हैं कि ड्राइवर लोड हो गया है)


इसने काम कर दिया! आपका बहुत बहुत धन्यवाद! मेरे मामले में, "BCM43142 802.11b / g / n [14e4: 4365] (Rev 01)" संस्करण github फ़ोल्डर में उपलब्ध नहीं था, लेकिन मैंने इसे BCM43142A0-185f-2167.hcd के साथ आजमाया और यह काम कर गया!
श्रीराम कन्नन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.