# [solved] USB Microsoft Ergonomic Keyboard 4000 doesn't work

## pwaller

EDITS: Kernel Config, added lsusb and lspci

Facts:

 It is a wired keyboard

 Keyboard in question works on two other Linux machines (linux 3.0.0 and 2.6.32) (tested after failure observed in Gentoo)

 Another model of Microsoft USB keyboard works with 3.8.13 (both in Xorg and at a VT)

 A couple of times when I've plugged it in, numlock and function lock have sort of worked for a few moments (and then ceased working), but currently I can't get anything to happen.

 The keyboard doesn't work either in Xorg nor at a VT

 The problem is manifest on all USB ports

When plugging the ergonomic keyboard in, I get the below in dmesg (second paste is for the good keyboard). It appears that "hid-generic" doesn't kick in and take ownership of the keyboard (as in the case of the other Microsoft keyboard). I have all of {e,o,u,h}hci enabled in the kernel, along with the standard event interface and hid stuff.

Any help appreciated. Kernel config on request.

```
[   11.458193] usb 2-1.1: skipped 1 descriptor after interface

[   11.458198] usb 2-1.1: skipped 1 descriptor after interface

[   11.459188] usb 2-1.1: default language 0x0409

[   11.468788] usb 2-1.1: udev 3, busnum 2, minor = 130

[   11.468794] usb 2-1.1: New USB device found, idVendor=045e, idProduct=00db

[   11.468797] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0

[   11.468800] usb 2-1.1: Product: Natural® Ergonomic Keyboard 4000

[   11.468802] usb 2-1.1: Manufacturer: Microsoft

[   11.468923] usb 2-1.1: usb_probe_device

[   11.468926] usb 2-1.1: configuration #1 chosen from 1 choice

[   11.469564] usb 2-1.1: adding 2-1.1:1.0 (config #1, interface 0)

[   11.469613] usbhid 2-1.1:1.0: usb_probe_interface

[   11.469616] usbhid 2-1.1:1.0: usb_probe_interface - got id

[   11.476621] usb 2-1.1: adding 2-1.1:1.1 (config #1, interface 1)

[   11.476657] usbhid 2-1.1:1.1: usb_probe_interface

[   11.476659] usbhid 2-1.1:1.1: usb_probe_interface - got id

```

Keyboard which works:

```
[   11.650036] usb 2-1.2: skipped 1 descriptor after interface

[   11.650041] usb 2-1.2: skipped 1 descriptor after interface

[   11.650634] usb 2-1.2: default language 0x0409

[   11.653468] usb 2-1.2: udev 4, busnum 2, minor = 131

[   11.653470] usb 2-1.2: New USB device found, idVendor=045e, idProduct=beef

[   11.653471] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0

[   11.653472] usb 2-1.2: Product: Wired Keyboard

[   11.653473] usb 2-1.2: Manufacturer: Microsoft

[   11.653539] usb 2-1.2: usb_probe_device

[   11.653541] usb 2-1.2: configuration #1 chosen from 1 choice

[   11.653912] usb 2-1.2: adding 2-1.2:1.0 (config #1, interface 0)

[   11.653956] usbhid 2-1.2:1.0: usb_probe_interface

[   11.653959] usbhid 2-1.2:1.0: usb_probe_interface - got id

[   11.657311] input: Microsoft Wired Keyboard as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/input/input5

[   11.657323] usb 2-1.2: link qh8-0601/ffff8804185e2e80 start 2 [1/2 us]

[   11.657439] hid-generic 0003:045E:BEEF.0006: input,hidraw3: USB HID v1.11 Keyboard [Microsoft Wired Keyboard] on usb-0000:00:1d.0-1.2/input0

[   11.657449] usb 2-1.2: adding 2-1.2:1.1 (config #1, interface 1)

[   11.657475] usbhid 2-1.2:1.1: usb_probe_interface

[   11.657476] usbhid 2-1.2:1.1: usb_probe_interface - got id

[   11.663517] input: Microsoft Wired Keyboard as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.1/input/input6

[   11.663524] usb 2-1.2: link qh8-0601/ffff8804185e2f80 start 3 [1/2 us]

[   11.663719] hid-generic 0003:045E:BEEF.0007: input,hidraw4: USB HID v1.11 Device [Microsoft Wired Keyboard] on usb-0000:00:1d.0-1.2/input1

```

lsusb:

```
[snip]

Bus 002 Device 010: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0

[snip]

```

lspci

```
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)

00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)

00:02.0 Display controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)

00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)

00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)

00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)

00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)

00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b5)

00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 (rev b5)

00:1c.3 PCI bridge: Intel Corporation 82801 PCI Bridge (rev b5)

00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)

00:1f.0 ISA bridge: Intel Corporation Z68 Express Chipset Family LPC Controller (rev 05)

00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family SATA AHCI Controller (rev 05)

00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)

01:00.0 VGA compatible controller: NVIDIA Corporation GF114 [GeForce GTX 560 Ti] (rev a1)

01:00.1 Audio device: NVIDIA Corporation GF114 HDMI Audio Controller (rev a1)

03:00.0 USB controller: Etron Technology, Inc. EJ168 USB 3.0 Host Controller (rev 01)

04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168 PCI Express Gigabit Ethernet controller (rev 06)

05:00.0 PCI bridge: Integrated Technology Express, Inc. Device 8892 (rev 10)[/url]

```

Last edited by pwaller on Sun Jul 21, 2013 3:55 pm; edited 1 time in total

----------

## pwaller

With thanks to NeddySeagoon on freenode #gentoo, this was fixed by setting CONFIG_USB_EHCI_ROOT_HUB_TT, CONFIG_USB_EHCI_TT_NEWSCHED and CONFIG_HID_MICROSOFT in my kernel configuration. Not sure which of those fixed it, but I suspect CONFIG_HID_MICROSOFT.

----------

## phnx12

Thanks, helped me as well, it was an MICROSOFT one  :Smile:  ... ( but I mean I have the others enabled already, so maybe it is all of them.

----------

## HeXiLeD

From those 3, only CONFIG_HID_MICROSOFT is needed.

Do you guys have the Zoom Slider working ? Can't seem to get that one to work.

----------

## ErgoSensei

This has also worked for me, thanks! I think there are certain workarounds with this subject but not much specifics. Here it just works. Maybe updating to certain version will help this or maybe going to a new model. This keyboard is very useful to me so I really have tried to search for ways to be usable with Gentoo. So, here we are....

----------

## Ant P.

FYI even with this a few of the special keys will never work in X11, it's a limitation of the X protocol itself only supporting keycodes up to 255.

----------

