From "Installing Debian On Dell XPS 13 9343"
https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013%209343
"Bluetooth Works, but requires non-free firmware to be installed from
the Windows driver."
And that's it, no description of what the device is or how to install
the non-free firmware from the windows driver; good luck, sucker!
extracted from dmesg output:
[ 3.721010] usb 1-3: New USB device found, idVendor=0a5c,
idProduct=216f
[ 3.721063] usb 1-3: New USB device strings: Mfr=1, Product=2,
SerialNumber=3
[ 3.721066] usb 1-3: Product: BCM20702A0
[ 3.721068] usb 1-3: Manufacturer: Broadcom Corp
[ 4.678165] bluetooth hci0: firmware: failed to load
brcm/BCM20702A0-0a5c-216f.hcd (-2)
[ 4.678166] bluetooth hci0: Direct firmware load failed with error -2
[ 4.678166] bluetooth hci0: Falling back to user helper
[ 4.678458] Bluetooth: hci0: BCM: patch brcm/BCM20702A0-0a5c-216f.hcd
not found
From this it appears that the bluetooth device is BCM20702A0 from
Broadcom Corp. It also appears that some firmware needs to be loaded
from a file containing the string "brcm/BCM20702A0-0a5c-216f.hcd".
A bit of web-grep comes up with "Dell XPS 13 (2015)" in the Arch wiki,
https://wiki.archlinux.org/index.php/Dell_XPS_13_%282015%29
in the table it says,
"Bluetooth Works after installing firmware btbcm"
back on Debian, synaptics search does not find a package "btbcm".
Reading more of the Arch wiki page,
"The Broadcom Bluetooth firmware is not available in the kernel
(source), so you will have to retrieve it from the Windows driver. You
need to extract the .cab file with cabextract and then convert it to a
.hcd file with hex2hcd from bluez-utils:
$ cabextract 20662520_6c535fbfa9dca0d07ab069e8918896086e2af0a7.cab
$ hex2hcd BCM20702A1_001.002.014.1443.1572.hex
# mv BCM20702A1_001.002.014.1443.1572.hcd
/lib/firmware/brcm/BCM20702A1-0a5c-216f.hcd
# ln -rs /lib/firmware/brcm/BCM20702A1-0a5c-216f.hcd
/lib/firmware/brcm/BCM20702A0-0a5c-216f.hcd
After reboot, the firmware should be available for your Bluetooth
interface."
So the next thing is to obtain the cabextract file if not already
installed on jessie. "which cabextract" turns up nothing, "ls
/sbin/cabextract" turns up nothing. Synaptics however shows a
"cabextract" package, so install it.
Okay, now we need the hex2bcd command from "bluez-utils" to run their
recipe, but bluez-utils appears to be an Arch-specific package since
synaptic search doesn't find it. Following the "bluez-utils" link in
the Arch wiki we find a package description "Development and debugging
utilities for the bluetooth protocol stack" so we web-grep on that to
see what the Debian equivalent might be. Finding that the (Debian-
based) Ubuntu package is "bluez" then going back to synaptic we find
that backage "bluez" is already installed. Since the hex2bcd command is
not available, looking in more detail shows Debian package "bluez-tools"
which is "Bluez-tools provides command line tools to functions of
Bluetooth." Command-line good, we try this, thump club on ground to get
attention of gods, tell synapic to install. Ug, still no hex2bcd, thump
club harder, scream at gods!
What a *FUCKING* pain in the ass this is! Can someone tell me where I
have gone wrong here along the trail of things no user should ever have
to do? This kind of *SHIT* is what we write programs for, to do the
fugly stuff for us, so we don't have to follow some trail of
breadcrumbs!
The UPS guy delivered an Android tablet today, you think I'll have to go
through this kind of horseshit to get bluetooth working? Not likely.
I would like to get bluetooth working on this thing, if any of you gods
wish to take pity on a mere mortal who is unwilling to bow down in
supplication. Shitty tech, that's what I've been looking at for the
past 3 years, collected lore about ancient kludges that have never been
brought up to currency with the rest of the world.
Listen to the intro music for Six Million Dollar Man, we have the tech,
we can fix this, it's a marvelous kernel but pretty much everything on
top of it is a multi-decade collection of one ad-hoc fix after another.
--
http://totally-portable-software.blogspot.com
[Sun Nov 22: "Total Portability is not binary"]