سؤال لا يعمل Bluetooth Broadcom 43142


بلوتوث قيد التشغيل ولكن لا يمكن العثور عليه أو العثور عليه من قبل أي أجهزة أخرى.

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

كيف يمكنني إصلاح ذلك؟


28
2018-06-04 18:45


الأصل


رجاء تصحيح سؤالك واضافة انتاج lsusb أمر المحطة. - Pilot6
تم تحريره بالفعل. هل أنت هنا؟ @ Pilot6 - Guja1501
نعم ، كنت أكتب الجواب. - Pilot6
يرجى أيضا إضافة إلى إخراج سؤالك من uname -a أمر. - Pilot6
سؤال مماثل مع إجابة لبطاقة 4352 askubuntu.com/questions/617513/... - Wilf


الأجوبة:


تحتاج إلى تثبيت البرامج الثابتة.

لا يسمح ترخيص Broadcom بتوزيع برنامج Broadcom الثابت. لذلك تحتاج إلى الحصول عليه بنفسك. انها معقدة بعض الشيء ، ولكن لا يوجد غيرها قانوني الطريقة.

  1. تحميل برنامج تشغيل Broadcom Windows 8 أو من هنا.

إذا لم يتم سرد الجهاز في برامج التشغيل هذه ، فستحتاج إلى العثور على إصدار أحدث منه في مكان ما. قامت شركة Broadcom بإزالة أحدث برامج التشغيل من موقعها لجعلها أكثر صعوبة.

بعض بائعي أجهزة الكمبيوتر المحمول لديهم برامج تشغيل بلوتوث على مواقعهم ، لكن بعضها لا يمكن زيادته. لذلك هو بعض السعي. يمكنني تنزيل أحدث برامج تشغيل Broadcom من موقعهم ، ولكن لم يعد هناك أي أكثر من ذلك.

  1. افتح هذا الملف بواسطة Archive Manager واعثر عليه bcbtums-win8x86-brcm.inf ملف. قد يختلف اسم الملف في بعض برامج التشغيل. يمكن أن يكون bcbtums.inf الموجود في Win32 أو دليل Win64. لا يهم 32 أو 64 بت لتحميل.
  2. ابحث في هذا الملف عن VID_0A5CوPID_21D7. هذه الارقام من بلدكم lsusb انتاج

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

تعليق: لا يتم التعرف على بعض الأجهزة على أنها Broadcom BT in lsusb. إذا لم تكن متأكدًا من جهاز BT ، فقم بتشغيله usb-devices الأمر ، سيعطي المزيد من المعلومات التفصيلية. هناك يمكنك العثور على معرفات المنتج والبائع.

سترى بعض خط النهاية مع RAMUSB21D7

ابحث في هذا الملف عن RAMUSB21D7. ستجد قسمًا كهذا:

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

هذا ما نبحث عنه. اسم ملف البرامج الثابتة.      BCM43142A0_001.001.011.0122.0126.hex

  1. الآن استخراج تلك البرامج الثابتة من نفس ملف الكابينة.

    ثم تحتاج إلى تحويل هذا الملف من شكل hex إلى تنسيق hcd.

  2. قم بتنزيل الأداة لذلك

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

    ستحصل hex2hcd مجلد في دليل منزلك.

  3. ضع ملف البرنامج الثابت إلى مجلد المنزل الخاص بك وتشغيله

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

    أنت ترى أن 0a5c-21d7 معرف المهايئ الخاص بك من lsusb.

مهم: بالنسبة لـ kernels ، 4.2 فما فوق ، يمكنك استدعاء هذا الملف باسم BCM.hcd في حين أن.

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

للنواة 4.8 + يجب أن يكون اسم الملف BCM-<VID>-<PID>.hcd، مثل BCM-0a5c-21d7.

  1. الآن فقط نسخ BCM43142A0-0a5c-21d7.hcdأو ملف آخر وفقًا لنسخة kernel /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. ستكون هناك رسالة خطأ إذا لم يتم العثور على الملف.

  1. قم بإيقاف تشغيل الكمبيوتر وتشغيله مرة أخرى. ليس فقط إعادة التشغيل!

    سيحصل المحول على البرامج الثابتة ويجب أن يعمل البلوتوث.

كل هذا يبدو معقدًا ، لكنه كذلك من Broadcom المحامين لإلقاء اللوم على ذلك. يسمح معظم الموردين الآخرين بإعادة توزيع البرامج الثابتة بشرط أن يتم ذلك مع الترخيص.

يسمح لمشرفي Linux بتضمين البرامج الثابتة في التوزيعات.

لكن ليس في حالة Broadcom. هذا هو السبب في أنه لم يتم بطريقة سهلة.

يمكن للكثير من الناس تحويل جميع ملفات سداسية إلى HCD وإتاحتها. أو مجرد إضافتها إلى حزمة البرامج الثابتة لينكس من أوبونتو.

لكنها ليست قانونية : - ((


63
2018-06-04 19:03



في معظم الأوقات عندما استيقظت من جهاز الكمبيوتر المحمول الخاص بي ، تفشل إعادة تحميل وحدة Bluetooth مع تتبع مكدس kernel. إذا كنت بحاجة إلى بلوتوث بدون إعادة تشغيل ، فستحتاج إلى تفريغ وحدة بلوتوث (sudo modprobe -r btusb) وأعد تحميلها (sudo modprobe btusb) ل blueooth للعمل مرة أخرى. bugzilla.kernel.org/show_bug.cgi؟id=81821 - solsTiCe
في الخطوة 6 ، يجب إعطاء ملف الإخراج hex2hcd ، مثل: hex2hcd [input-file] -o [output-file] هل يمكنك تحديث الإجابة؟ - Minas Mina
هناك ملف الإخراج في الجواب. أو هل قام المؤلف بتغييرها. انها تستخدم ليكون `ملف الإخراج المدخلات ملف hex2hcd - Pilot6
شكرا @ Pilot6 لتحديث آخر الرئيسي. في حالتي نظرت الخطأ في 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
مستخدمو جهاز DUALBOOT: لاحظ أنه يمكنك استخراج البرامج الثابتة الصحيحة من نظام التشغيل Windows. للقيام بذلك ، انتقل إلى Windows Device Manager ، وابحث عن جهاز Bluetooth ، وانقر بزر الماوس الأيمن ، والخصائص ، وبرنامج التشغيل ، وتفاصيل برنامج التشغيل. هناك ستجد الطريق الخاص بك .hex الملف ، الذي يمكنك نسخه إلى نظام Linux الخاص بك. بعد ذلك ، اتبع الخطوات 5-8. هذه الإجابة ممتازة ، بالمناسبة. - Manu CJ


في ما يلي مشروع يهدف إلى أتمتة العملية قليلاً: https://github.com/winterheart/broadcom-bt-firmware

نسخ BCM إلى dir / name الصحيح حسب النواة (كما هو موضح أعلاه).

في 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

أتمنى أن يساعد ذلك :)


12
2017-12-13 11:12



في حالتي (رقم تعريف جهاز USB 4.0 لـ UtechSmart: 0a5c: 21e8) تم تحميل برامج تشغيل winterheart ولكن hcitool dev لا تزال لا تعرض أي أجهزة وكان هناك خطأ في سجل النظام. العثور على سائق آخر في plugable.com/2014/06/23/... هذا العمل. - Greg Bray


هذا كل ما تحتاجه: https://github.com/winterheart/broadcom-bt-firmware

على هذا المستودع يمكنك العثور على مزيد من المعلومات و جميع برامج تشغيل بطاقة الشبكة اللاسلكية من Broadcom مطلوبة.


لكي أكون أكثر واقعية ، أعطيك التعليمات التي كتبتها بنفسي:

يهدف هذا البرنامج التعليمي إلى إنشاء بطاقة شبكة لاسلكية / بلوتوث Broadcom Corporation BCM43142 802.11b / g / n (rev 01) (معرف الجهاز: 0a5c: 216d) يعمل على أنظمة Linux (جربته على نظام التشغيل الأساسي 0.4.1 Loki ، مستندًا إلى على Ubuntu 16.04.3 LTS).

لا يمكنها العمل مع الأجهزة الأخرى ولكن لا ينبغي أن تختلف كثيرًا عن هذا الإجراء لأجهزة Broadcom الأخرى. برامج تشغيل Broadcom اللازمة على هذا مجلد reposity GitHub في تنسيق .hcd.

  1. أدخل الأمر التالي لاكتشاف اسم برنامج التشغيل الذي تبحث عنه kernel عند تحميل محركات الأقراص أثناء التشغيل:

    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 حيث يتوقع أن تكون برامج تشغيل Broadcom. إذا كان Kernel يبحث عن اسم برنامج تشغيل آخر ، فيجب إعادة تسمية ملف برنامج التشغيل (BCM43142A0-0a5c-216c.hcd في حالتي ل BCM43142 (0a5c: 216d)) إلى الاسم المطلوب من قبل النواة.

  2. قم بنقل برنامج التشغيل المعاد تسميته (BCM.hcd) إلى الدليل الرئيسي (/ home / YourUsername /) وقم بتشغيل الأمر التالي لنقله إلى المجلد الذي تبحث عنه kernel أثناء التشغيل:

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

    يجب عليك استخدام برنامج التشغيل المطابق بناءً على جهازك وإعادة تسميته إذا طُلب منك ذلك.

  3. إعادة تشغيل جهاز الكمبيوتر الخاص بك ويجب أن تعمل! * (يمكنك إدخال dmesg | grep -i 'bluetooth' مرة أخرى لمعرفة ما إذا كان قد تم تحميل برنامج التشغيل)


2
2017-12-10 17:41



يا رجل ، أنقذت يومي ، شكراً لك! - Sergii P