# Bluetooth: Can't pair device

## matchy

I'd like to use bluetooth, so I installed "bluez" but can't pair devices(mouse and bluetooth speaker).

This is error message.

[bluetooth]# devices 

Device EE:F0:94:7E:18:E9 M720 Triathlon

[bluetooth]# pair EE:F0:94:7E:18:E9 

Attempting to pair with EE:F0:94:7E:18:E9

[CHG] Device EE:F0:94:7E:18:E9 Connected: yes

Failed to pair: org.bluez.Error.AuthenticationFailed

[CHG] Device EE:F0:94:7E:18:E9 Connected: no

My machine is Dell XPS 15(9550), so I referred these pages.

https://wiki.gentoo.org/wiki/Dell_XPS_13_9343

https://wiki.gentoo.org/wiki/Dell_XPS_15_9550

and my hardware list:

```

# lspci 

00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 07)

00:01.0 PCI bridge: Intel Corporation Skylake PCIe Controller (x16) (rev 07)

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)

00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 07)

00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)

00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)

00:15.0 Signal processing controller: Intel Corporation Sunrise Point-H Serial IO I2C Controller #0 (rev 31)

00:15.1 Signal processing controller: Intel Corporation Sunrise Point-H Serial IO I2C Controller #1 (rev 31)

00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)

00:17.0 RAID bus controller: Intel Corporation 82801 Mobile SATA Controller [RAID mode] (rev 31)

00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #1 (rev f1)

00:1c.1 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #2 (rev f1)

00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 (rev f1)

00:1d.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #13 (rev f1)

00:1d.6 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #15 (rev f1)

00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)

00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)

00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31)

00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)

01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)

02:00.0 Network controller: Broadcom Limited BCM43602 802.11ac Wireless LAN SoC (rev 01)

03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)
```

Would someone please inform me how to pair device?

Thank you in advance.

[Moderator edit: added [code] tags to preserve output layout. -Hu]

----------

## LIsLinuxIsSogood

Ok, this is almost certainly a wireless driver issue.  I can say that with some certainty because I too bought a laptop like you did that was by a large manufacturer.  Unfortunately because they don't really care about us, your wireless card happens to fall under a particularly difficult one to get to work.

Can you provide the verbose output to lspci command so we can see the driver in use.  I think if you use lspci -s you can select the device so as not to include the others.  The command I believe for your case is 

```
lspci -vvv -s 02:
```

 (assumes the Broadcom device is the BLAN device)

----------

## matchy

Hi LIsLinuxIsSogood,

Thank you for your reply and help.

This is the output of command you told me.

```

# lspci -vvv -s 02:       

02:00.0 Network controller: Broadcom Limited BCM43602 802.11ac Wireless LAN SoC (rev 01)

        Subsystem: Dell BCM43602 802.11ac Wireless LAN SoC

        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+

        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

        Latency: 0

        Interrupt: pin A routed to IRQ 126

        Region 0: Memory at dd800000 (64-bit, non-prefetchable) [size=32K]

        Region 2: Memory at dd400000 (64-bit, non-prefetchable) [size=4M]

        Capabilities: [48] Power Management version 3

                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)

                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=2 PME-

        Capabilities: [58] MSI: Enable+ Count=1/16 Maskable- 64bit+

                Address: 00000000fee0f00c  Data: 4142

        Capabilities: [68] Vendor Specific Information: Len=44 <?>

        Capabilities: [ac] Express (v2) Endpoint, MSI 00

                DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited

                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 10.000W

                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-

                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr+ NoSnoop+

                        MaxPayload 256 bytes, MaxReadReq 512 bytes

                DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-

                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <2us, L1 <32us

                        ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+

                LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+

                        ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-

                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-

                DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR+, OBFF Via WAKE#

                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled

                LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-

                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-

                         Compliance De-emphasis: -6dB

                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-

                         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-

        Capabilities: [100 v1] Advanced Error Reporting

                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-

                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-

                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+

                AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-

        Capabilities: [13c v1] Device Serial Number 10-55-44-ff-ff-f5-48-e2

        Capabilities: [150 v1] Power Budgeting <?>

        Capabilities: [160 v1] Virtual Channel

                Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1

                Arb:    Fixed- WRR32- WRR64- WRR128-

                Ctrl:   ArbSelect=Fixed

                Status: InProgress-

                VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-

                        Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-

                        Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff

                        Status: NegoPending- InProgress-

        Capabilities: [1b0 v1] Latency Tolerance Reporting

                Max snoop latency: 71680ns

                Max no snoop latency: 71680ns

        Capabilities: [220 v1] #15

        Capabilities: [240 v1] L1 PM Substates

                L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+

                          PortCommonModeRestoreTime=0us PortTPowerOnTime=50us

        Kernel driver in use: brcmfmac

        Kernel modules: brcmfmac

```

----------

## LIsLinuxIsSogood

So unlike i was assuming you are using a linux driver so that could not be the problem.  Have you tried putting the device in discoverable mode, since you are able to get connected between devices but with no authentication, i think you should try pairing them reverse order in different order.  Also dont skip the important step about Do You Trust this Device and to be safe and cover all possible the output to hciconfig -a would be nice.

----------

## matchy

Hi LIsLinuxIsSogood,

Thank you for your reply.

My embedded bluetooth doesn't pair mouse and audio.

but thanks a lot!

----------

## LIsLinuxIsSogood

Well I think it should.  :_)

----------

## LIsLinuxIsSogood

I guess misread this completely, sorry for that.

Please post the output of 

```
hciconfig -a
```

Also if the device may or may not be listed in the hardware, you may need to also include output to other hardware, like is it a usb device for the transceiver...if so, lsusb should do the job.

----------

## matchy

This is the output:

```

$ hciconfig -a

hci0:   Type: Primary  Bus: USB

        BD Address: 48:E2:44:F5:10:56  ACL MTU: 1021:8  SCO MTU: 64:1

        UP RUNNING PSCAN ISCAN 

        RX bytes:1897 acl:0 sco:0 events:85 errors:0

        TX bytes:1133 acl:0 sco:0 commands:85 errors:0

        Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87

        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 

        Link policy: RSWITCH SNIFF 

        Link mode: SLAVE ACCEPT 

        Name: 'localhost'

        Class: 0x1c010c

        Service Classes: Rendering, Capturing, Object Transfer

        Device Class: Computer, Laptop

        HCI Version: 4.1 (0x7)  Revision: 0x1000

        LMP Version: 4.1 (0x7)  Subversion: 0x2105

        Manufacturer: Broadcom Corporation (15)

```

----------

## LIsLinuxIsSogood

Ok, seeing this with fresh eyes after a long day of doing nothing fun, did you run command within  bluetoothctl to trust the device?  It looks like that is what i am seeing you are trying to pair amd then connect, but that is skipping an importany step for authentication.  I apologize if i had previously mislead aboht the driver or any other hardware issue but let me know of this advice seems to help.

The proper use of bluetoothctl should include at least these steps:

```
[bluetooth]# power on

[bluetooth]# scan on

[bluetooth]# agent on

[bluetooth]# devices

Device <mouse mac> Name: Bluetooth Mouse

[bluetooth]# pair <mouse mac>

[bluetooth]# trust <mouse mac>

[bluetooth]# connect <mouse mac>
```

[Moderator edit: changed [quote] tags to [code] tags to preserve output layout. -Hu]

----------

## matchy

I could solve this problem by myself.

I noticed I need bluetooth driver which kernel, linux-firmware and broadcom-sta doesn't include.

I cloned this driver, BCM20703A1-0a5c-6410.hcd from https://github.com/winterheart/broadcom-bt-firmware

(I need this driver, because I use Dell XPS 15 9550, https://wiki.gentoo.org/wiki/Dell_XPS_15_9550)

and

```

$ sudo cp /path/to/BCM20703A1-0a5c-6410.hcd /lib/firmware/brcm/BCM-0a5c-6410.hcd

```

It's important to rename driver file name.

and then, it works!!

Thank you for your advice.

----------

## fedeliallalinea

You can find firmware also here (I use this in my dell xps 9550)

----------

