Monday, January 6, 2014

Dell Inspiron 3520 + Broadcom 43142 Bluetooth Not Visible/Not Pairing (Linux Mint/Ubuntu)

I started to write a much longer post here but I deleted the whole thing and started over.  Instead I'll just describe what I've done in the past 24 hours to get wireless working on my Inspiron 3520 with the ugly duckling Broadcom 43142 Wifi+Bluetooth card:
  • I updated the Bluetooth drivers *in Windows 8* first.  I saw this recommended somewhere in my research, that the firmware would be updated through Windows first.  I got the latest drivers from dell.com.
  • I updated the BIOS using the update file I found at dell.com for my machine.
  • While I was at it I updated the wifi driver in Windows also (the file was also from dell.com).
Still, after all of that, I didn't have any luck with Bluetooth.  The adapter was simply not visible.

Then:

I upgraded the kernel version from 3.4.x to 3.12.x.  

Boom.  Suddenly the Bluetooth adapter was visible and I could actually use it to connect with devices.  This was something I hadn't seen before yesterday:


I was able to pair devices and everything was spendid.

Unfortunately, wifi stopped working.

At this point I just went to bed, I was tired of messing with this and it was about midnight or so.

Jump forward about 18 hours and I started working on the wifi issue.

This thread was the most help in solving that problem.  The long and short of it is, for this card I've only found that the "wl" kernel module will work to support this thing.  I used this file (available at the above linked thread):

bcmwl-kernel-source_6.30.223.141+bdcom-0ubuntu1_amd64.deb

I installed it with the Package Installer, despite the warning that this version was newer than the 'official' one.  Wifi works now.  All is great, except:

Now bluetooth stopped recognizing devices.

At least I can still see the adapter, where before I couldn't:

wskellenger@marquette ~ $ hciconfig -a
hci0: Type: BR/EDR  Bus: USB
BD Address: C0:18:85:CB:56:42  ACL MTU: 1021:8  SCO MTU: 64:1
UP RUNNING PSCAN 
RX bytes:1575 acl:0 sco:0 events:96 errors:0
TX bytes:1918 acl:0 sco:0 commands:84 errors:0
Features: 0xff 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
Link policy: RSWITCH HOLD SNIFF 
Link mode: SLAVE ACCEPT 
Name: 'marquette-0'
Class: 0x7e0100
Service Classes: Networking, Rendering, Capturing, Object Transfer, Audio, Telephony
Device Class: Computer, Uncategorized
HCI Version: 4.0 (0x6)  Revision: 0x0
LMP Version: 4.0 (0x6)  Subversion: 0x210b
Manufacturer: Broadcom Corporation (15)

Now, I can't confirm that installing the wifi driver caused my bluetooth issue.  To be honest, since it was a full day later, I don't know why I couldn't see devices any longer.  After all, it worked last night!  I tried un-installing the driver, re-installing the kernel, rebooting several times, but no dice, I could not get bluetooth to recognize anything at all.  In fact, all I was trying to do was get back to the performance from last night, where Bluetooth pairing worked.  I didn't care about wifi anymore.

Then I found this post.

Basically it instructs you to install this package:

bt-bcm43142-onereic_0.0+20111116somerville2_amd64.deb

And after restarting the bluetooth daemon, I was in business:

marquette wskellenger # service bluetooth restart
bluetooth stop/waiting
bluetooth start/running, process 7070

I don't think it is working perfectly.  I'm noticing a lot of glitchy behavior, like after pairing my Wii MotionPlus, I notice notifications from the Power Manager that my laptop battery is charging...?  I'll make updates here if I find anything else unusual.  For now I'm happy to see this, native pairing of the MotionPlus without any additional software:


Now, for anyone that reads this:  This Broadcom card is a pain in the ass for Linux users.  I've had nothing but trouble with this thing under Linux and it has poor performance (poor reception, dropping connections) in Windows as well.  In researching these issues, I came across posts marked [WORKAROUND], where the proposed workaround included purchasing a different adapter and being done with this Broadcom nonesense.  I'm seriously considering going that route also.

But then again:  this device seems to work with much less hassle in Windows.

UPDATE (18-Jan-2014): I've got better results with Arch Linux and Bluez5.  I'll write a new post on that.


(Philosophy follows)

A Harley rider once told me that working on the bike and making modifications are part of the experience, part of the fun.

And, to some extent I think that comparison rings true for Linux users.  It is frustrating to me that I can't just start working on my next diversion involving this Nintendo controller + Bluetooth, but at the same time I am motivated to stay up until 2 and 3 in the morning tinkering around trying to get it to work!  Why?  Over the last few years, I've spend countless hours messing around with stuff like this and I sometimes look back and wonder if it was worth it.

If you're trying to bake a cake for the first time, do you assemble the recipe ingredients and then expect that some obscure unused feature of your oven won't work at the last minute?  Of course not.

But at the same time there is something fun about this that I can't explain it to anyone else.  I've got a computer running on 100% free software, and with that brings the ability to examine in great detail how everything works.  I've learned so much from >10 years of messing around that I think at the end of the day, it has all been worth the struggle.

Current time: 12:20 am.

No comments:

Post a Comment