# Dell Wireless 370 Bluetooth Mini-card no longer works

## MickKi

I am not sure if due to changes in the kernel (3.12.20-gentoo), or udev (212-r1), or bluez(5.18 ), bluetooth no longer works with my Dell Wireless 370 Bluetooth Mini-card.  Here is some info about the device itself:

```
Bus 002 Device 007: ID 413c:8156 Dell Computer Corp. Wireless 370 Bluetooth Mini-card

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               2.00

  bDeviceClass          224 Wireless

  bDeviceSubClass         1 Radio Frequency

  bDeviceProtocol         1 Bluetooth

  bMaxPacketSize0        64

  idVendor           0x413c Dell Computer Corp.

  idProduct          0x8156 Wireless 370 Bluetooth Mini-card

  bcdDevice            4.56

  iManufacturer           1 Dell Computer Corp

  iProduct                2 Dell Wireless 370 Bluetooth Mini-card

  iSerial                 0 

  bNumConfigurations      1

  Configuration Descriptor:

    bLength                 9

    bDescriptorType         2

    wTotalLength          216

    bNumInterfaces          4

    bConfigurationValue     1

    iConfiguration          0 

    bmAttributes         0xe0

      Self Powered

      Remote Wakeup

    MaxPower              100mA

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       0

      bNumEndpoints           3

      bInterfaceClass       224 Wireless

      bInterfaceSubClass      1 Radio Frequency

      bInterfaceProtocol      1 Bluetooth

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x81  EP 1 IN

        bmAttributes            3

          Transfer Type            Interrupt

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0010  1x 16 bytes

        bInterval               1

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x82  EP 2 IN

        bmAttributes            2

          Transfer Type            Bulk

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0040  1x 64 bytes

        bInterval               1

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x02  EP 2 OUT

        bmAttributes            2

          Transfer Type            Bulk

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0040  1x 64 bytes

        bInterval               1

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        1

      bAlternateSetting       0

      bNumEndpoints           2

      bInterfaceClass       224 Wireless

      bInterfaceSubClass      1 Radio Frequency

      bInterfaceProtocol      1 Bluetooth

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x83  EP 3 IN

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0000  1x 0 bytes

        bInterval               1

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x03  EP 3 OUT

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0000  1x 0 bytes

        bInterval               1

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        1

      bAlternateSetting       1

      bNumEndpoints           2

      bInterfaceClass       224 Wireless

      bInterfaceSubClass      1 Radio Frequency

      bInterfaceProtocol      1 Bluetooth

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x83  EP 3 IN

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0009  1x 9 bytes

        bInterval               1

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x03  EP 3 OUT

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0009  1x 9 bytes

        bInterval               1

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        1

      bAlternateSetting       2

      bNumEndpoints           2

      bInterfaceClass       224 Wireless

      bInterfaceSubClass      1 Radio Frequency

      bInterfaceProtocol      1 Bluetooth

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x83  EP 3 IN

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0011  1x 17 bytes

        bInterval               1

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x03  EP 3 OUT

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0011  1x 17 bytes

        bInterval               1

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        1

      bAlternateSetting       3

      bNumEndpoints           2

      bInterfaceClass       224 Wireless

      bInterfaceSubClass      1 Radio Frequency

      bInterfaceProtocol      1 Bluetooth

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x83  EP 3 IN

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0020  1x 32 bytes

        bInterval               1

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x03  EP 3 OUT

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0020  1x 32 bytes

        bInterval               1

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        1

      bAlternateSetting       4

      bNumEndpoints           2

      bInterfaceClass       224 Wireless

      bInterfaceSubClass      1 Radio Frequency

      bInterfaceProtocol      1 Bluetooth

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x83  EP 3 IN

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0040  1x 64 bytes

        bInterval               1

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x03  EP 3 OUT

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0040  1x 64 bytes

        bInterval               1

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        1

      bAlternateSetting       5

      bNumEndpoints           2

      bInterfaceClass       224 Wireless

      bInterfaceSubClass      1 Radio Frequency

      bInterfaceProtocol      1 Bluetooth

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x83  EP 3 IN

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0040  1x 64 bytes

        bInterval               1

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x03  EP 3 OUT

        bmAttributes            1

          Transfer Type            Isochronous

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0040  1x 64 bytes

        bInterval               1

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        2

      bAlternateSetting       0

      bNumEndpoints           2

      bInterfaceClass       255 Vendor Specific Class

      bInterfaceSubClass    255 Vendor Specific Subclass

      bInterfaceProtocol    255 Vendor Specific Protocol

      iInterface              0 

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x84  EP 4 IN

        bmAttributes            2

          Transfer Type            Bulk

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0020  1x 32 bytes

        bInterval               1

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x04  EP 4 OUT

        bmAttributes            2

          Transfer Type            Bulk

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0020  1x 32 bytes

        bInterval               1

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        3

      bAlternateSetting       0

      bNumEndpoints           0

      bInterfaceClass       254 Application Specific Interface

      bInterfaceSubClass      1 Device Firmware Update

      bInterfaceProtocol      0 

      iInterface              0 

      Device Firmware Upgrade Interface Descriptor:

        bLength                             7

        bDescriptorType                    33

        bmAttributes                        7

          Will Not Detach

          Manifestation Tolerant

          Upload Supported

          Download Supported

        wDetachTimeout                   5000 milliseconds

        wTransferSize                      64 bytes

Device Status:     0x0001

  Self Powered
```

If I power up the device with the keyboard touchpad, this is what dmesg shows:

```
May 31 14:12:05 dell_xps kernel: hub 2-1:1.0: state 7 ports 8 chg 0000 evt 0040

May 31 14:12:05 dell_xps kernel: hub 2-1:1.0: port 6, status 0101, change 0001, 12 Mb/s

May 31 14:12:05 dell_xps kernel: hub 2-1:1.0: debounce: port 6: total 100ms stable 100ms status 0x101

May 31 14:12:05 dell_xps kernel: hub 2-1:1.0: port 6 not reset yet, waiting 10ms

May 31 14:12:05 dell_xps kernel: usb 2-1.6: new full-speed USB device number 4 using ehci-pci

May 31 14:12:05 dell_xps kernel: hub 2-1:1.0: port 6 not reset yet, waiting 10ms

May 31 14:12:05 dell_xps kernel: usb 2-1.6: ep0 maxpacket = 8

May 31 14:12:05 dell_xps kernel: usb 2-1.6: default language 0x0409

May 31 14:12:05 dell_xps kernel: usb 2-1.6: udev 4, busnum 2, minor = 131

May 31 14:12:05 dell_xps kernel: usb 2-1.6: New USB device found, idVendor=0a5c, idProduct=4500

May 31 14:12:05 dell_xps kernel: usb 2-1.6: New USB device strings: Mfr=1, Product=2, SerialNumber=0

May 31 14:12:05 dell_xps kernel: usb 2-1.6: Product: BCM2046B1

May 31 14:12:05 dell_xps kernel: usb 2-1.6: Manufacturer: Broadcom

May 31 14:12:05 dell_xps kernel: usb 2-1.6: usb_probe_device

May 31 14:12:05 dell_xps kernel: usb 2-1.6: configuration #1 chosen from 1 choice

May 31 14:12:05 dell_xps kernel: usb 2-1.6: adding 2-1.6:1.0 (config #1, interface 0)

May 31 14:12:05 dell_xps kernel: hub 2-1.6:1.0: usb_probe_interface

May 31 14:12:05 dell_xps kernel: hub 2-1.6:1.0: usb_probe_interface - got id

May 31 14:12:05 dell_xps kernel: hub 2-1.6:1.0: USB hub found

May 31 14:12:05 dell_xps kernel: hub 2-1.6:1.0: 3 ports detected

May 31 14:12:05 dell_xps kernel: hub 2-1.6:1.0: compound device; port removable status: FFF

May 31 14:12:05 dell_xps kernel: hub 2-1.6:1.0: ganged power switching

May 31 14:12:05 dell_xps kernel: hub 2-1.6:1.0: global over-current protection

May 31 14:12:05 dell_xps kernel: hub 2-1.6:1.0: power on to power good time: 100ms

May 31 14:12:05 dell_xps kernel: hub 2-1.6:1.0: local power source is good

May 31 14:12:05 dell_xps kernel: hub 2-1.6:1.0: no over-current condition exists

May 31 14:12:05 dell_xps kernel: hub 2-1.6:1.0: enabling power on all ports

May 31 14:12:05 dell_xps kernel: hub 2-1.6:1.0: port 1: status 0101 change 0001

May 31 14:12:06 dell_xps kernel: usb 2-1.6.2: ep0 maxpacket = 8

May 31 14:12:06 dell_xps kernel: usb 2-1.6.2: skipped 1 descriptor after interface

May 31 14:12:06 dell_xps kernel: usb 2-1.6.2: skipped 1 descriptor after endpoint

May 31 14:12:06 dell_xps kernel: usb 2-1.6.2: udev 6, busnum 2, minor = 133

May 31 14:12:06 dell_xps kernel: usb 2-1.6.2: New USB device found, idVendor=413c, idProduct=8158

May 31 14:12:06 dell_xps kernel: usb 2-1.6.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0

May 31 14:12:06 dell_xps kernel: usb 2-1.6.2: usb_probe_device

May 31 14:12:06 dell_xps kernel: usb 2-1.6.2: configuration #1 chosen from 1 choice

May 31 14:12:06 dell_xps kernel: usb 2-1.6.2: adding 2-1.6.2:1.0 (config #1, interface 0)

May 31 14:12:06 dell_xps kernel: usbhid 2-1.6.2:1.0: usb_probe_interface

May 31 14:12:06 dell_xps kernel: usbhid 2-1.6.2:1.0: usb_probe_interface - got id

May 31 14:12:06 dell_xps kernel: input: HID 413c:8158 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.2/2-1.6.2:1.0/input/input16

May 31 14:12:06 dell_xps kernel: hid-generic 0003:413C:8158.0003: input,hidraw2: USB HID v1.11 Mouse [HID 413c:8158] on usb-0000:00:1d.0-1.6.2/input0

May 31 14:12:06 dell_xps kernel: hub 2-1.6:1.0: state 7 ports 3 chg 0000 evt 0004

May 31 14:12:06 dell_xps kernel: usbhid 2-1.6.2:1.0: disconnect by usbfs

May 31 14:12:06 dell_xps kernel: hub 2-1.6:1.0: state 7 ports 3 chg 0000 evt 0008

May 31 14:12:06 dell_xps kernel: hub 2-1.6:1.0: port 3, status 0101, change 0001, 12 Mb/s

May 31 14:12:06 dell_xps kernel: hub 2-1.6:1.0: debounce: port 3: total 100ms stable 100ms status 0x101

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: new full-speed USB device number 7 using ehci-pci

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: skipped 1 descriptor after interface

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: default language 0x0409

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: udev 7, busnum 2, minor = 134

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: New USB device found, idVendor=413c, idProduct=8156

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: Product: Dell Wireless 370 Bluetooth Mini-card

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: Manufacturer: Dell Computer Corp

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: usb_probe_device

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: configuration #1 chosen from 1 choice

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: adding 2-1.6.3:1.0 (config #1, interface 0)

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: adding 2-1.6.3:1.1 (config #1, interface 1)

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: adding 2-1.6.3:1.2 (config #1, interface 2)

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: adding 2-1.6.3:1.3 (config #1, interface 3)

May 31 14:12:06 dell_xps kernel: hub 2-1.6:1.0: state 7 ports 3 chg 0000 evt 0008

May 31 14:12:06 dell_xps kernel: Bluetooth: Core ver 2.16

May 31 14:12:06 dell_xps kernel: NET: Registered protocol family 31

May 31 14:12:06 dell_xps kernel: Bluetooth: HCI device and connection manager initialized

May 31 14:12:06 dell_xps kernel: Bluetooth: HCI socket layer initialized

May 31 14:12:06 dell_xps kernel: Bluetooth: L2CAP socket layer initialized

May 31 14:12:06 dell_xps kernel: Bluetooth: SCO socket layer initialized

May 31 14:12:06 dell_xps kernel: btusb 2-1.6.3:1.0: usb_probe_interface

May 31 14:12:06 dell_xps kernel: btusb 2-1.6.3:1.0: usb_probe_interface - got id

May 31 14:12:06 dell_xps kernel: btusb 2-1.6.3:1.2: usb_probe_interface

May 31 14:12:06 dell_xps kernel: btusb 2-1.6.3:1.2: usb_probe_interface - got id

May 31 14:12:06 dell_xps kernel: btusb 2-1.6.3:1.3: usb_probe_interface

May 31 14:12:06 dell_xps kernel: btusb 2-1.6.3:1.3: usb_probe_interface - got id

May 31 14:12:06 dell_xps kernel: usbcore: registered new interface driver btusb

May 31 14:12:06 dell_xps kernel: usb 2-1.6.3: link qh1-3008/ffff88012e5abb00 start 0 [1/2 us]
```

Unfortunately, bluetoothctl does not work:

```
$ bluetoothctl 

[bluetooth]# power on

No default controller available

[bluetooth]# scan on

No default controller available

[bluetooth]# devices 

[bluetooth]#

[bluetooth]# list 

[bluetooth]#
```

hcitool tells me that the device is not enabled on its own:

```
$ hcitool dev

Devices:
```

I have to bring it up manually:

```
# hciconfig -a

hci0:   Type: BR/EDR  Bus: USB

   BD Address: 90:4C:E5:FA:F2:A8  ACL MTU: 1021:8  SCO MTU: 64:8

   DOWN 

   RX bytes:484 acl:0 sco:0 events:20 errors:0

   TX bytes:323 acl:0 sco:0 commands:20 errors:0

   Features: 0xff 0xff 0x8f 0xfe 0x9b 0xff 0x79 0x83

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

   Link policy: RSWITCH HOLD SNIFF PARK 

   Link mode: SLAVE ACCEPT

dell_xps ~ # hciconfig hci0 up

dell_xps ~ # hciconfig -a

hci0:   Type: BR/EDR  Bus: USB

   BD Address: 90:4C:E5:FA:F2:A8  ACL MTU: 1021:8  SCO MTU: 64:8

   UP RUNNING 

   RX bytes:968 acl:0 sco:0 events:40 errors:0

   TX bytes:646 acl:0 sco:0 commands:40 errors:0

   Features: 0xff 0xff 0x8f 0xfe 0x9b 0xff 0x79 0x83

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

   Link policy: RSWITCH HOLD SNIFF PARK 

   Link mode: SLAVE ACCEPT 

   Name: 'Dell Wireless 370 Bluetooth Mini-card'

   Class: 0x000000

   Service Classes: Unspecified

   Device Class: Miscellaneous, 

   HCI Version: 2.1 (0x4)  Revision: 0x51c8

   LMP Version: 2.1 (0x4)  Subversion: 0x423d

   Manufacturer: Broadcom Corporation (15)

```

I can then ping my mobile phone, but cannot run any applications to connect to it (tether it).  The log shows that bluez barfs:

```
May 31 14:35:12 dell_xps dbus[1381]: [system] Activating service name='org.bluez' (using servicehelper)

May 31 14:35:12 dell_xps dbus[1381]: [system] Activated service 'org.bluez' failed: Launch helper exited with unknown return code 1

May 31 14:37:46 dell_xps kernel: ehci-pci 0000:00:1d.0: reused qh ffff88012e5abb00 schedule

May 31 14:37:46 dell_xps kernel: usb 2-1.6.3: link qh1-3008/ffff88012e5abb00 start 0 [1/2 us]

May 31 14:39:36 dell_xps dbus[1381]: [system] Activating service name='org.bluez' (using servicehelper)

May 31 14:39:36 dell_xps dbus[1381]: [system] Activated service 'org.bluez' failed: Launch helper exited with unknown return code 1
```

These are the modules that udev has brought up:

```
# lsmod

Module                  Size  Used by

btusb                  14115  0 

bluetooth             173578  2 btusb

ip6t_rt                 1736  3 

b43                   174020  0 

mac80211              215279  1 b43

cfg80211              145895  2 b43,mac80211

rfkill                  8825  2 cfg80211,bluetooth

uvcvideo               59382  0 

snd_hda_codec_hdmi     26231  1 

ssb                    36233  1 b43

snd_hda_codec_idt      33362  1 

videobuf2_vmalloc       2384  1 uvcvideo

videobuf2_memops        1463  1 videobuf2_vmalloc

videobuf2_core         20864  1 uvcvideo

snd_hda_intel          25334  1 

snd_hda_codec         107644  3 snd_hda_codec_hdmi,snd_hda_codec_idt,snd_hda_intel

snd_hwdep               5005  1 snd_hda_codec

dell_laptop             8419  0 

snd_pcm                63187  3 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel

snd_page_alloc          5914  2 snd_pcm,snd_hda_intel

firewire_ohci          26421  0 

firewire_core          42798  1 firewire_ohci

snd_timer              15070  1 snd_pcm

snd                    47964  9 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_idt,snd_pcm,snd_hda_codec,snd_hda_intel

video                  10732  0
```

You'll see that modules like bnep, or rfcomm have not been initialised.  Even if I modprobe them manually I see no difference.

Is this a known bug?  Anything I can apply as a workaround - recently I had started to run hciconfig manually to bring the bluetooth card up, but now nothing seems to work.

----------

## MickKi

Am I the only one with a Dell laptop?!    :Shocked: 

I have tried to use /lib/udev/hid2hci manually, which was previously run by udev, to switch this particular bluetooth device from hid to hci.

```
# lsusb | grep -i blue

Bus 002 Device 008: ID 413c:8156 Dell Computer Corp. Wireless 370 Bluetooth Mini-card

Bus 002 Device 005: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)

$ udevadm trigger --dry-run --subsystem-match=usb --attr-match=idVendor=413c --attr-match=idProduct=8156 --verbose

/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.3

$ /lib/udev/hid2hci --devpath=/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.3 --mode=hci --method=dell

error: could not find '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.3'

$ udevadm trigger --dry-run --subsystem-match=usb --attr-match=idVendor=0a5c --attr-match=idProduct=4500 --verbose

/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6

$ /lib/udev/hid2hci --devpath=/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6 --mode=hci --method=dell

error: could not find '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6'
```

Why is the path not found? Note:  I tried the above as root with the same error.

What has broken with the latest versions of udev? 

Shall I be filing a bug, or am I doing something wrong?

----------

## valentin.mu

Hi there, you're not alone.

I have the similar problem, but the difference is that i have this error in system logs:

```
systemd-udevd[4020]: Process 'hid2hci --method=dell --devpath=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.0' failed with exit code 1.
```

I have same bluetooth card on Dell Vostro notebook:

```
Bus 001 Device 007: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
```

running manually doesn't give any more details:

```

# /lib64/udev/hid2hci  --method=dell --devpath=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.0

error: switching device '/sys//devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.0' failed.

```

i'm not sure whether i need to have permission to run that as user, but anyways:

```

$ /lib64/udev/hid2hci  --method=dell --devpath=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.0

Can't open device: Permission denied (13)

error: unable to handle '/sys//devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1.2'

```

If you have resolved that or have any clues - please share - i would be happy  :Smile: 

P.S. systemd-udevd uses 100% one of my CPUs all the time  :Sad: 

----------

## valentin.mu

I have tried to comment all rules related to Dell cards in /lib64/udev/rules.d/97-hid2hci.rules  and reloading systemd-udevd.

That helped to get rid of errors in log.

----------

## MickKi

Hi valentin.mu,

I had forgotten about this post - it's a good five years ago.   :Smile:   The CPU being pegged at 100% is caused by the kernel and buggy code introduced some time ago:

See here:  https://bugs.gentoo.org/663772

and here:  https://bugzilla.kernel.org/show_bug.cgi?id=199035

I have modified by hand the kernel sources before recompiling it and this fixes the problem.  I'm about to compile linux-4.19.23-gentoo sources, which hopefully have been patched upstream to get rid of this problem for good.

----------

## MickKi

 *MickKi wrote:*   

> I'm about to compile linux-4.19.23-gentoo sources, which hopefully have been patched upstream to get rid of this problem for good.

 

Sadly the problem persists.  Editing by hand the files mentioned in the kernel bug report and recompiling fixes the problem.

----------

## MickKi

Hmm ... with kernel 4.19.23 I get the same nagging in dmesg and CPU jumping up when I switch the mini-card on.   :Sad: 

```
systemd-udevd[8270]: Process 'hid2hci --method=dell --devpath=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.2/2-1.6.2:1.0' failed with exit code 1.

[ 4663.128697] systemd-udevd[8270]: Process 'hid2hci --method=dell --devpath=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.2/2-1.6.2:1.0' failed with exit code 1.

[ 4663.134434] systemd-udevd[8270]: Process 'hid2hci --method=dell --devpath=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.2/2-1.6.2:1.0' failed with exit code 1.
```

Trying to comment out various BIND/UNBIND entries in the kernel sources before recompilling the kernel no longer fixes this problem.

I don't run an initrd here, so I don't know if the problem has something to do with how the card is being initialised and its firmware loaded.

EDIT: I can confirm commenting out the lines in 97-hid2hci.rules referring to  413c:8158 stops the endless loop and dmesg spam.  Thereafter the wireless can be used, but the bluetooth cannot be enabled.  So although this quietens the CPU it leaves the laptop without bluetooth.  Sigh ...   :Sad: 

----------

## Gentlenoob

have you recently upgraded to udev-init-scripts-33, possibly? I see similar systemd-udevd errors after upgrade, and I suspect that for one of my boxes this was the reason I couldn't connect via wifi anymore. Downgrading helped for now.

----------

## MickKi

Thanks Gentlenoob,

Yes, I have, but this problem is long standing and initially started with changes in the kernel.  The change to udev-init-scripts probably hasn't helped.  I see no point in rolling back this update since eventually other things may break.  Perhaps I should throw away this old laptop and buy a replacement which works.

----------

## valentin.mu

Thanks for reply on such old topic, @MickKi  :Smile: 

I'll take a look at those bugs.

And i'm also starting to think about replacing my laptop   :Very Happy: 

@Gentlenoob, udev-init-scripts is  only for openrc-based system, 

i'm not sure that the cause in a way udev is started/stopped. 

No need for this package on systemd-based one(which i have)  :Smile: 

Thanks for pointing that out, i would probably get rid of that package  :Smile: 

----------

## Moriah

I'm having similar problems, but in my case:

```

onesimus ~ # hciconfig -a 

hci0:   Type: Primary  Bus: USB

        BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0

        DOWN 

        RX bytes:352 acl:0 sco:0 events:13 errors:0

        TX bytes:70 acl:0 sco:0 commands:20 errors:0

        Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

        Packet type: DM1 DH1 HV1 

        Link policy: 

        Link mode: SLAVE ACCEPT 

onesimus ~ # hciconfig hci0 up 

Can't init device hci0: Connection timed out (110)

onesimus ~ # 

```

Also:

```

onesimus ~ # bluetoothctl 

Agent registered

[bluetooth]# power on

No default controller available

[bluetooth]# 

```

See https://forums.gentoo.org/viewtopic-t-1093520-highlight-.html where I originally posted the problem...

----------

## MickKi

Hi Moriah,

I no longer have hciconfig installed on this laptop, but your bluetoothctl output is the same like mine.  I don't know what your bt chipset is, but if it is similar to my  Broadcom BCM2046B1 (413c:8156) then the problems with it started with the addition of some bind/unbind code added to the kernel way back since series 3.12.20, which does not seem able to work with the BCM hardware/firmware.

Up until kernel 4.14.83 I and sys-fs/udev-init-scripts-32 I was able to edit manually the sources to remove the offending code as described here: https://bugzilla.kernel.org/attachment.cgi?id=276537&action=edit

Sadly editing the kernel sources no longer works, so bt on my laptop is totally unusable.   :Sad: 

----------

## Moriah

My laptop uses:

```

03:00.0 Network controller: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] (rev 34)

```

for both wifi and bluetooth.

I am running:

```

Linux onesimus 4.14.83-gentoo #39 SMP PREEMPT Thu Feb 28 14:40:05 EST 2019 x86_64 Intel(R) Core(TM) i7-3740QM CPU @ 2.70GHz GenuineIntel GNU/Linux

```

for my kernel.  Previously I ran 3.12.21 and it worked.

Looking at the change you pointed to, wouldn't it be easier to just fall back to a slightly earlier kernel?  What was the highest kernel version that *DID* work?

Any idea when this will be officially fixed?  What kernel version will it start working in again?

----------

## MickKi

 *Moriah wrote:*   

> My laptop uses:
> 
> ```
> 
> 03:00.0 Network controller: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] (rev 34)
> ...

 

You can enable wifi/bluetooth and compare the vendor and product ID with mine (lsusb), if you want to confirm they are the same.

 *Moriah wrote:*   

> Looking at the change you pointed to, wouldn't it be easier to just fall back to a slightly earlier kernel?  What was the highest kernel version that *DID* work?
> 
> Any idea when this will be officially fixed?  What kernel version will it start working in again?

 

The stable gentoo sources version before 3.12.20-gentoo were working fine.  They're no longer in the tree.  I could get them off the attic, or use vanilla sources, but a lot of security fixes have been added since.

I don't know if this will ever get fixed without more detailed troubleshooting and reports by people with affected hardware.  I didn't have the time to devote to this yet, but I may retire this laptop soon anyway.  I'm hoping/waiting for CPUs without Intel's ME and AMD's PSP/ST to be made available for the consumer market.

----------

## Moriah

I'm not about to retire my laptop.  It has 32 GB ram and up to 4 TB ssd if I put a pair of 2 TB drives in it.  it has an I-7 with 8 cores using hyperthreading.  I got it to support multiple virtual machines under kvm so I could build virtual networks for testing purposes.  It has never failed me yet.  I just need to get this stupid bluetooth working.  For some reason, linux seems to have cronic problems with bluetooth.  If I could find a 4 series kernel that would work with my bluetooth, I would be happy.  The whole purpose of my upgrade was to get me away from a 3 series kernel, but bluetooth worked there.

BTW What is "Intel's ME and AMD's PSP/ST"?  I don't keep up with the latest cpu hardware variatons for windows/linux consumer machines.  I only get that deep if I need to for the embedded stuff I work on for a living.

----------

## MickKi

 *Moriah wrote:*   

> BTW What is "Intel's ME and AMD's PSP/ST"?

 

Both of these processor SoC components are built in Out-of-Band platform controllers , which are always running, listening and controlling your system as long as there is power available.[1][2]  With a network connection these SoCs are capable of remotely taking over your system, running firmware updates, copying/deleting your data, recording your keystrokes and network comms and what not.  This is great if you are running a fleet of corporate laptops and you want remote management capabilities - apparently corporate clients requested this functionality - or if you are a state actor spying on populations.  Not so great if you remain unsympathetic to an OoB hypervisor with proprietary code and published vulnerabilities running 24-7 on your PC.

Some hackers and software projects have looked into deleting/crippling at least part of the proprietary firmware which allows these SoCs to run.[3][4]  Nevertheless, without hardware design changes at least the physical capability is there for your system to be taken over.  Given vulnerabilities and rootkits have been published and both Intel and AMD have rushed over to publish firmware updates, but without explaining the efficacy of their changes, I will not be buying any of their goodies soon.  This leaves the expensive POWER9 for desktops, but nothing yet for laptops.   :Sad: 

You could try using an external USB bluetooth to replace the broken BCM device, if bluetooth is important for you.  I don't use either WiFi or bluetooth often, so for me the inconvenience is not a big deal.

----------

## Moriah

OK, I am familiar with those SoC's you mention; I just didn't remember their acronyms.  I read about them when they were first announced.  I dislike the idea for a non-enterprise environment also.  I connect through suficient firewalling over ethernet that I am not worried, and I always run my cellular broadband modem in NAT mode, so again, I am protected.  The only place to worry is open unprotected wifi, and then the attacker must be within wifi range of one of the site's AP to attack, since even they also run in NAT mode.  I realize iptables is defenseless against this, but my gateway firewall is an old single core celleron, so it doesn't have that "feature".

Regarding bluetooth, I really only use bluetooth for my mouse.  Because my laptop only has 4 usb ports, I like bluetooth because it doesn't burn a usb port.  Also, since I grab the laptop and run off to conference rooms, etc., I don't want external wires or even dongles that can get bumped and damaged.  Bluetooth solves that nicely.  I've also use this particular bluetooth mouse for about 10 years, and I'm rather used to its feel.  It is small and fits nicely in my pocket.  It tracks well on many different surfaces.

----------

## MickKi

It's been a long time since I had a look at setting up a remote control server for early MEs (no AMT).  I can't recall if once enabled the client pings the server with its address and setting a reverse tunnel, or how a secure connection to the server is set up.  It may be the client connects to the provisioning server using TLS and therefore NAT'ing doesn't affect it.  Either way, I am not prepared to pay these guys for spyware embedded in their hardware, without any control over it being offered to me.

----------

## Moriah

You think these things ping or otherwise "call home"?  How do they know what address to contact?  Something must need to be configured first.  Surely the ip addr is not hardwired in.  If its in firmware. is the firmware loadable at boot time?  Of course if it cryptographically signed, you couldn't modify it anyway.    :Evil or Very Mad: 

Back to bluetooth...

I have about decided to go with a dongle after all.  I found one at Microcenter for $12.95 USD, and I have to go that direction tomorrow anyway, so I will  stop in at get one.

----------

## MickKi

Check what the chipset is - anything with drivers in the kernel and firmware included in linux-firmware should work straight out of the box.  However, with most of these things you won't know for sure until you plug it in and see what dmesg and lsusb reports.  Hope it goes well for you.

----------

## Moriah

Most of these usb plug-ins have a usbserial option, and that should be good enough for my mouse.

----------

## MickKi

CORRECTION:

I spent some time today looking at this annoying problem once more.  I applied the following changes which revert the BIND/UNBIND code in the source files for kernel 4.19.23-gentoo and they work!  I had to apply them manually, because the lines where the edits are required are different from the patch version listed below.  Last time I tried this I must have made a mistake, but this time it worked.

https://bugzilla.kernel.org/attachment.cgi?id=276537&action=edit

Having to patch source files each time and doing this manually is a pain, but I have no other solution at present.  Hopefully the patch will be included in future kernel versions.

NOTE:  On my laptop the WiFi service has to be stopped for bluetooth service to work.  They share the same USB controller.  The Linux driver is not good enough it seems to manage both enabled at the same time.  With both services running the bluetooth remains the poor relative and is unable to connect to any devices, while the WiFi works fine.  Once the wlan0 service is stopped the bluetooth is able to connect, without needing to restart it.  On Windows enabling both WiFi and bluetooth at the same time does not present a problem - so this must be a Linux chipset driver issue.

I don't have a fix for using both WiFi and bluetooth at the same time, but again on this PC it never worked.

HTH.

----------

## Moriah

Thanks for the correction, but I'm still going to try the usb plug-in bluetooth adapter.  I absolutely need both wifi and bluetooth at the same time when I am on the road.  When  am at the home office, I have wired ethernet and a wired mouse, not to mention a wired full sized keyboard and a big 3840x2180 monitor.  On the road its just the laptop, wifi or cellular internet connection, and a bluetooth mouse.  I can't stand those touch pads!

----------

## Moriah

I got the bluetooth dongle.  It is very tiny, so bump damage is limited.  I plugged it in, and it worked first time!

----------

