You are not logged in.
Pages: 1
Hi, how can I make bluetooth to work on my Lenovo Yoga 2 11'' ?
I installed bluez and bluez-utils and started the service, but it is not working. Using bluetoothctl I get the "No default controller available" message
The lsusb command shows a Foxconn device:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 048d:8386 Integrated Technology Express, Inc.
Bus 001 Device 003: ID 03eb:8c1d Atmel Corp.
Bus 001 Device 006: ID 105b:e065 Foxconn International, Inc. BCM43142A0 Bluetooth module
Bus 001 Device 004: ID 5986:0535 Acer, Inc
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubIn the Arch wiki there is a Lite-On Broadcom device section for the BCM43142A0 module, should I follow that?
Regards
Last edited by Aradan_D (2015-10-04 18:22:38)
Offline
Read this and adopt it for your system.
I guess you only need to replace "BCM20702A1_001.002.014.1443.1572" with "BCM43142A0_001.001.011.0197.0237.hex ", and for the firmware filename that goes into /lib/firmware/brcm consult your 'dmesg' output, perhaps grep for "BCM".
1000
Offline
Hi, thanks for the help.
In the cab file there are many BCM142A0 hex files, how do you know the BCM43142A0_001.001.011.0197.0237.hex is the right one?
Also, I did the grep to dmesg and I got:
[ 5.053597] wlan0: Broadcom BCM4365 802.11 Hybrid Wireless Controller 6.30.223.248 (r487574)
Which I don't understand quite well, since lsusb shows me BCM142A0. So, should I use these names for the /lib/firmware/brcm/ file? :
BCM4365A0-105b-e065.hcd
BCM4365A1-105b-e065.hcd
Or maybe the BCM43142A0 / A1 ? ![]()
Offline
> how do you know the BCM43142A0_001.001.011.0197.0237.hex is the right one?
It's the highest number / latest version.
Your wlan0 is of no interest here, even if wifi+bluetooth share the same chip on the mainboard.
If the kernel doesn't find the right firmware file it will print the exact name it wants in dmesg, so that should be rather easy.
1000
Offline
By the way, I found this http://www.gnebehay.com/blog/lenovo-fle … th-debian/
but I don't know how to get the kernel source. I only found the abs method but it doesn't have the drivers folder
Offline
> how do you know the BCM43142A0_001.001.011.0197.0237.hex is the right one?
It's the highest number / latest version.Your wlan0 is of no interest here, even if wifi+bluetooth share the same chip on the mainboard.
If the kernel doesn't find the right firmware file it will print the exact name it wants in dmesg, so that should be rather easy.
Mm.. but dmesg does not have anything with bluetooth, so I guess it is not loading it
Offline
Wait, nothing? That's not good.
Output of 'lsmod | grep bt'?
If there's no btusb what happens when you load it manually ('modprobe -v btusb')?
1000
Offline
I found this:
[david@naranja build]$ lsmod | grep bt
btusb 45056 0
btbcm 16384 1 btusb
btintel 16384 1 btusb
bluetooth 458752 8 bnep,btbcm,btusb,btintel
usbcore 200704 5 btusb,uvcvideo,usbhid,xhci_hcd,xhci_pciSo btusb is there =o
Offline
I finally made the Bluetooth to work ![]()
I had to modify a little the steps done here: Debian Guide
because the Bluetooth is not being initialised some how, I don't know much about this
So I patched the btsusb module, and since I'm using the 4.1.5-1-ARCH, I started downloading
the 4.1.5 Kernel here: Kernel source
mkdir build
cd build
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.1.5.tar.gz
tar -xvzf linux-4.1.5.tar.gz
cd linux-4.1.5Then I had to patch the file btusb.c in the drivers folder
vi drivers/btusb.cadding the line
{ USB_DEVICE(0x105b, 0xe065), .driver_info = BTUSB_BCM_PATCHRAM },Then we need to compile the module. To do this I followed the Arch wiki
make mrproper
cp /usr/lib/modules/`uname -r`/build/.config ./
cp /usr/lib/modules/`uname -r`/build/Module.symvers ./
make oldconfig
make prepare && make scripts
make M=drivers/bluetoothNow we have the modules and need to compress it and move it to the lib folder
gzip drivers/bluetooth/btusb.ko
sudo cp -f drivers/bluetooth/btusb.ko.gz /usr/lib/modules/`uname-r`/kernel/drivers/bluetooth/The I rebooted. We can see using dmesg | grep Buetooth the error where Bluetooth cannot be loaded, something like: bluetooth hci0: firmware: failed to load brcm/BCM.hcd (-2) )
Now we need the hcd file, which we can do following the previous post:
1. Download the cab file from here: CAB file
2. Extract the cab, convert it to hcd, move it to the appropriate kernel firmwares folder and reload the btusb module
cabextract 20662520_6c535fbfa9dca0d07ab069e8918896086e2af0a7.cab
hex2hcd BCM43142A0_001.001.011.0197.0237.hex
mv BCM43142A0_001.001.011.0197.0237.hcd /lib/firmware/brcm/BCM43142A0-105b-e065.hcd
sudo modprobe -r btusb
sudo modprobe btusbThe 105b-e065 number is from the lsusb output. From the error it seems that the file could be named BCM.hcd . I just made two files with both names, but I'm not sure which one is being loaded. The hcd file is also provided here, so so we don't have to extract and convert it
Finally, it is necessary to start the bluetooth service
sudo systemctl start bluetooth.serviceAnd it works! I could transfer files from my smartphone ![]()
Last edited by Aradan_D (2015-10-04 18:21:50)
Offline
Pages: 1