# Kernel USB Device Detection

## uagent

I have a Dell Bluetooth Keyboard and Mouse combo, and it seems to be based off of (and quite possibly simply a rebrand) of the Logitech diNovo Media Desktop Laser set. The combo works fin in HID mode, however, the kernel does not seem to be picking up on the HCI device, which unfortunately means I can't connect my phone over bluetooth. It's not that hcitool etc don't recognize it, it's that even when I do a lsusb, I do not see the PCI ID of the HCI device. I know it's there, since I popped in a LiveDVD of Ubuntu Feisty into the same machine and it came right up, but neither my installed system nor the 2006.1 amd64 LiveDVD see the device. Here is the lsusb, in Ubuntu:

```

ubuntu@ubuntu:~$ sudo lsusb

Bus 002 Device 001: ID 0000:0000

Bus 001 Device 005: ID 046d:c709 Logitech, Inc.

Bus 001 Device 004: ID 046d:c70a Logitech, Inc.

Bus 001 Device 003: ID 046d:c70e Logitech, Inc.

Bus 001 Device 002: ID 046d:0b02 Logitech, Inc.

Bus 001 Device 001: ID 0000:0000 
```

And here is the lsusb from my Gentoo installation:

```

ssh rhill # lsusb

Bus 002 Device 004: ID 046d:c70a Logitech, Inc. 

Bus 002 Device 003: ID 046d:c70e Logitech, Inc. 

Bus 002 Device 002: ID 046d:0b02 Logitech, Inc. 

Bus 002 Device 001: ID 0000:0000  

Bus 001 Device 001: ID 0000:0000  

```

Note the missing 046d:c709 device, which, according to the diNovo thread is the actual HCI device.

Any help with figuring out why this is happening is most appreciated.

Edit: The brownies I ate earlier today must've had a little something more than chocolate in them, as I posted the wrong lsusb from my gentoo install....

----------

## didymos

Other than the ordering, what's the difference here?  The USB IDs are the same in both lists.

----------

## uagent

I must've posted the wrong lsusb from my gentoo install, but that's been changed.

----------

## didymos

Ok, what else differs between the two as far as the kernel and usbutils are concerned?

----------

## uagent

Well, from what I can tell, the device w/ the PCI ID ending in c709 is the device that the hci_usb driver picks up on as the diNovo dongle. w/o it apppearing, I can't get bluetooth devices to connect to my machine, other than the keyboard and mouse, which have connections built in.

----------

## didymos

No, I meant like the kernel and usbutils versions: are they different under the Ubuntu LiveCD?

----------

## widan

 *uagent wrote:*   

> Note the missing 046d:c709 device, which, according to the diNovo thread is the actual HCI device.

 

Any errors in dmesg about USB ?

----------

## dsd

you may have selected the wrong USB host controllers in the kernel config, see http://www.gentoo.org/doc/en/kernel-config.xml

----------

## uagent

didymos: It looks like the kernel versions differ by a patchset and a revision (2.6.20-gentoo-r6 vs. 2.6.20-ubuntu1). However, I tried following a user on this forum's directions to install the ubuntu kernel into gentoo using portage, and I'm still seeing the same results. [s]I'll check on the usbutils in a moment.[/s] Looks like I'm running 0.72-r3 in my gentoo install, and Feisty Fawn runs 0.72-7ubuntu2.

widan: I'm not seeing any errors in dmesg in regards to USB, here are all the messages in regards to USB/Bluetooth in dmesg:

```

Linux version 2.6.20.3-ubuntu1 (root@ssh) (gcc version 4.1.2 (Gentoo 4.1.2)) #2 PREEMPT Sun Apr 29 22:05:33 MST 2007 ()

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

Bluetooth: Core ver 2.11

Bluetooth: HCI device and connection manager initialized

Bluetooth: HCI socket layer initialized

ehci_hcd 0000:00:02.1: EHCI Host Controller

ehci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 1

ehci_hcd 0000:00:02.1: debug port 1

PCI: cache line size of 64 is not supported by device 0000:00:02.1

ehci_hcd 0000:00:02.1: irq 22, io mem 0xfe02e000

ehci_hcd 0000:00:02.1: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004

usb usb1: configuration #1 chosen from 1 choice

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 10 ports detected

ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver

ACPI: PCI Interrupt Link [APCF] enabled at IRQ 21

ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [APCF] -> GSI 21 (level, low) -> IRQ 21

PCI: Setting latency timer of device 0000:00:02.0 to 64

ohci_hcd 0000:00:02.0: OHCI Host Controller

ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 2

ohci_hcd 0000:00:02.0: irq 21, io mem 0xfe02f000

usb usb2: configuration #1 chosen from 1 choice

hub 2-0:1.0: USB hub found

hub 2-0:1.0: 10 ports detected

Initializing USB Mass Storage driver...

usb 2-1: new full speed USB device using ohci_hcd and address 2

usb 2-1: configuration #1 chosen from 1 choice

hub 2-1:1.0: USB hub found

hub 2-1:1.0: 3 ports detected

usb 2-1.2: new full speed USB device using ohci_hcd and address 3

usb 2-1.2: configuration #1 chosen from 1 choice

usb 2-1.3: new full speed USB device using ohci_hcd and address 4

usb 2-1.3: configuration #1 chosen from 1 choice

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.

Bluetooth: Virtual HCI driver ver 1.2

Bluetooth: HCI UART driver ver 2.2

Bluetooth: HCI H4 protocol initialized

Bluetooth: HCI BCSP protocol initialized

Bluetooth: L2CAP ver 2.8

Bluetooth: L2CAP socket layer initialized

Bluetooth: SCO (Voice Link) ver 0.6

Bluetooth: SCO socket layer initialized

Bluetooth: RFCOMM socket layer initialized

Bluetooth: RFCOMM TTY layer initialized

Bluetooth: RFCOMM ver 1.8

Bluetooth: BNEP (Ethernet Emulation) ver 1.2

Bluetooth: BNEP filters: protocol multicast

Bluetooth: HIDP (Human Interface Emulation) ver 1.2

```

dsd:

I'm running on an nVidia nForce4 chipset, and I double-checked that it uses OHCI/EHCI, both of which I have built-in to the kernel.

For reference, this is the result of checking /proc/usb/devices (just in case lsusb was deceiving me):

```

ssh linux # cat /proc/bus/usb/devices 

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh=10

B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0

D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1

P:  Vendor=0000 ProdID=0000 Rev= 2.06

S:  Manufacturer=Linux 2.6.20.3-ubuntu1 ohci_hcd

S:  Product=OHCI Host Controller

S:  SerialNumber=0000:00:02.0

C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA

I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms

T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 3

D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1

P:  Vendor=046d ProdID=0b02 Rev=51.02

S:  Manufacturer=Logitech

S:  Product=BT Mini-Receiver

C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA

I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=255ms

T:  Bus=02 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#=  3 Spd=12  MxCh= 0

D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1

P:  Vendor=046d ProdID=c70e Rev=51.02

S:  Manufacturer=Logitech

S:  Product=BT Mini-Receiver

S:  SerialNumber=000761526510

C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 98mA

I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=(none)

E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms

T:  Bus=02 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#=  4 Spd=12  MxCh= 0

D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1

P:  Vendor=046d ProdID=c70a Rev=51.02

S:  Manufacturer=Logitech

S:  Product=BT Mini-Receiver

S:  SerialNumber=000761526510

C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 98mA

I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=(none)

E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=5ms

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh=10

B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0

D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1

P:  Vendor=0000 ProdID=0000 Rev= 2.06

S:  Manufacturer=Linux 2.6.20.3-ubuntu1 ehci_hcd

S:  Product=EHCI Host Controller

S:  SerialNumber=0000:00:02.1

C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA

I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

```

----------

