# External Keyboard Not Working

## cap11235

I installed Gentoo onto my laptop, and my external keyboard is not working. The laptop's normal keyboard is fine. The external one is an IBM Model M connected using a GreenAsia PS2 to USB adapter. This worked fine in Windows and Arch Linux, but it is not recognized when in text mode, or X. GRUB and my BIOS can see it fine, though. I've tried changing Legacy mode in my BIOS, as well as trying all possible USB ports. It shows up when I run lsusb, though:

 *Quote:*   

> Bus 002 Device 006: ID 0e8f:0020 GreenAsia Inc. USB to PS/2 Adapter

 

I would have liked to see what driver it was using, but it looks like lsusb doesn't have the -k switch that lspci does. I am pretty sure I also configured the kernel correctly, following the handbook. Any ideas?[/quote]

----------

## John R. Graham

Do you have HID_SUPPORT enabled in your current kernel config?

- John

----------

## cap11235

From my .config:

```

#

# HID support

#

CONFIG_HID=y

# CONFIG_HID_BATTERY_STRENGTH is not set

CONFIG_HIDRAW=y

CONFIG_HID_GENERIC=y

#

# Special HID drivers

#

CONFIG_HID_A4TECH=y

# CONFIG_HID_ACRUX is not set

CONFIG_HID_APPLE=y

# CONFIG_HID_AUREAL is not set

CONFIG_HID_BELKIN=y

CONFIG_HID_CHERRY=y

CONFIG_HID_CHICONY=y

# CONFIG_HID_PRODIKEYS is not set

CONFIG_HID_CYPRESS=y

# CONFIG_HID_DRAGONRISE is not set

# CONFIG_HID_EMS_FF is not set

CONFIG_HID_EZKEY=y

# CONFIG_HID_HOLTEK is not set

# CONFIG_HID_KEYTOUCH is not set

# CONFIG_HID_KYE is not set

# CONFIG_HID_UCLOGIC is not set

# CONFIG_HID_WALTOP is not set

CONFIG_HID_GYRATION=y

# CONFIG_HID_TWINHAN is not set

CONFIG_HID_KENSINGTON=y

# CONFIG_HID_LCPOWER is not set

CONFIG_HID_LOGITECH=y

CONFIG_HID_LOGITECH_DJ=m

CONFIG_LOGITECH_FF=y

# CONFIG_LOGIRUMBLEPAD2_FF is not set

# CONFIG_LOGIG940_FF is not set

CONFIG_LOGIWHEELS_FF=y

CONFIG_HID_MICROSOFT=y

CONFIG_HID_MONTEREY=y

# CONFIG_HID_MULTITOUCH is not set

CONFIG_HID_NTRIG=y

# CONFIG_HID_ORTEK is not set

CONFIG_HID_PANTHERLORD=y

CONFIG_PANTHERLORD_FF=y

CONFIG_HID_PETALYNX=y

# CONFIG_HID_PICOLCD is not set

# CONFIG_HID_PRIMAX is not set

# CONFIG_HID_ROCCAT is not set

# CONFIG_HID_SAITEK is not set

CONFIG_HID_SAMSUNG=y

CONFIG_HID_SONY=y

# CONFIG_HID_SPEEDLINK is not set

CONFIG_HID_SUNPLUS=y

# CONFIG_HID_GREENASIA is not set

# CONFIG_HID_SMARTJOYPLUS is not set

# CONFIG_HID_TIVO is not set

CONFIG_HID_TOPSEED=y

# CONFIG_HID_THRUSTMASTER is not set

# CONFIG_HID_ZEROPLUS is not set

# CONFIG_HID_ZYDACRON is not set

#

# USB HID support

#

CONFIG_USB_HID=y

CONFIG_HID_PID=y

CONFIG_USB_HIDDEV=y

CONFIG_USB_ARCH_HAS_OHCI=y

CONFIG_USB_ARCH_HAS_EHCI=y

CONFIG_USB_ARCH_HAS_XHCI=y

CONFIG_USB_SUPPORT=y

CONFIG_USB_COMMON=y

CONFIG_USB_ARCH_HAS_HCD=y

CONFIG_USB=y

CONFIG_USB_DEBUG=y

CONFIG_USB_ANNOUNCE_NEW_DEVICES=y

```

----------

## BillWho

 *cap11235 wrote:*   

> I would have liked to see what driver it was using, but it looks like lsusb doesn't have the -k switch that lspci does.

 

lsusb -t might show some useful information.

Check if there's any output with udevadm monitor --udev when you plug and unplug the kb - maybe you can get a hint there..

 *cap11235 wrote:*   

> This worked fine in Windows and Arch Linux

 

If you still have access to Arch, check which modules are loaded and compare the list to gentoo's.

----------

## cap11235

lsusb -t gives the device as

 *Quote:*   

> 
> 
>         |__ Port 2: Dev 37, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
> 
>         |__ Port 2: Dev 37, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
> ...

 

udevadm monitor --udev while plugging in and then removing is

 *Quote:*   

> 
> 
> monitor will print the received events for:
> 
> UDEV - the event which udev sends out after rule processing
> ...

 

Also, I think it might be worth noting that I used nvidia-xconfig, and my xorg.conf is

 *Quote:*   

> 
> 
> Section "ServerLayout"
> 
>     Identifier     "Layout0"
> ...

 

----------

## BillWho

cap11235,

The output of udevadm looks good - it detects the device   :Smile: 

Check make.conf for INPUT_DEVICES="evdev synaptics"

synaptics should take care of the touchpad and evdev an external mouse and keyboard

----------

## cap11235

Yup, the relevant line in my make.conf is 

 *Quote:*   

> INPUT_DEVICES="synaptics evdev keyboard mouse"

 

----------

## BillWho

cap11235.

I would try it with just "evdev synaptics"

Then try commenting all the xorg InputDevice lines so it just handles the screen and doing a emerge -av1 $(qlist -IC x11-drivers)

It's worth a shot   :Wink: 

UPDATE:

Also look into

CONFIG_HID_GREENASIA:                                                                                                                                           │  

  │                                                                                                                                                                 │  

  │ Say Y here if you have a GreenAsia (Product ID 0x12) based game                                                                                                 │  

  │ controller or adapter.                                                                                                                                          │  

  │

----------

## cap11235

Ok, I didn't have that flag set. I'm compiling my kernel now, and if it works, I'll set it to solved. Thank you!

Update: Nope, didn't work. I'm trying genkernel

----------

## BillWho

cap11235,

If possible, try a different keyboard - preferably a simple usb kb that doesn't require any type of adapter to narrow down the problem.

I use a logitech wireless mouse and occasionally its companion keyboard - it uses in-kernel <M>   Logitech Unifying receivers full support

----------

## cach0rr0

could also be the difference between UHCI and OHCI

i have one system where one works and not the other

check kernel config for this

----------

