# USB mouse and keyboard on netbook doesn't work

## hrnick

Hi!

I'm trying to get a USB mouse and a USB keyboard to work with my Samsung NC10 netbook. I don't really know what could be wrong but I think it's xorg related. Attaching the mouse gives the following dmesg output:

```
$ cat dmesg_output 

[20173.377194] hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0040

[20173.377215] ehci_hcd 0000:00:1d.7: GetStatus port:6 status 001002 0  ACK POWER sig=se0 CSC

[20173.377231] hub 1-0:1.0: port 6, status 0100, change 0001, 12 Mb/s

[20173.403052] ehci_hcd 0000:00:1d.7: GetStatus port:6 status 001403 0  ACK POWER sig=k CSC CONNECT

[20173.507042] hub 1-0:1.0: debounce: port 6: total 125ms stable 100ms status 0x501

[20173.507063] ehci_hcd 0000:00:1d.7: port 6 low speed --> companion

[20173.507089] usb usb4: wakeup_rh (auto-start)

[20173.558045] ehci_hcd 0000:00:1d.7: GetStatus port:6 status 003002 0  ACK POWER OWNER sig=se0 CSC

[20173.558077] hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0040

[20173.558088] hub 4-0:1.0: state 7 ports 2 chg 0000 evt 0004

[20173.558100] uhci_hcd 0000:00:1d.2: port 2 portsc 01a3,00

[20173.558112] hub 4-0:1.0: port 2, status 0301, change 0001, 1.5 Mb/s

[20173.662045] hub 4-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x301

[20173.764043] usb 4-2: new low speed USB device number 5 using uhci_hcd

[20173.905131] usb 4-2: skipped 1 descriptor after interface

[20173.910127] usb 4-2: default language 0x0409

[20173.927129] usb 4-2: udev 5, busnum 4, minor = 388

[20173.927136] usb 4-2: New USB device found, idVendor=046d, idProduct=c01b

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

[20173.927149] usb 4-2: Product: USB-PS/2 Optical Mouse

[20173.927154] usb 4-2: Manufacturer: Logitech

[20173.927317] usb 4-2: usb_probe_device

[20173.927328] usb 4-2: configuration #1 chosen from 1 choice

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

[20173.930299] drivers/usb/core/inode.c: creating file '005'
```

...which looks good to me.

I've tried running xorg without any xorg.conf and various xorg configs without any result. I've also tried using evdev and the keyboard/mouse drivers. There are no errors or warnings related to this in Xorg.0.log.

I've looked at other posts in the forums but haven't found anything that have helped me. Any ideas what could be wrong or where I should start looking?

Any help appreciated!

----------

## BillWho

hrnick,

Check the INPUT_DEVICES in /etc/make.conf  

```
INPUT_DEVICES="evdev mouse keyboard"
```

Try rebuilding the xorg drivers 

```
emerge -1 $(qlist -I -C x11-drivers/)
```

Good luck   :Wink: 

----------

## hrnick

Sorry, I probably should have told you that I've already tried it.  :Smile: 

Should it work without a xorg.conf or do I have to use a config with two mice defined?

----------

## NeddySeagoon

hrnick,

It should just work without an xorg.conf.

Check your kernel for evdev support.  evdev is in two pieces. One in the kernel and xf86-input-evdev. 

You need them both.

An easy check of the kernel is to look in /dev/input for files called eventX where X is a number.

Sight of your /var/log/xorg.conf file would be good too. Make friends with wgetpaste and put it on a pastebin site.

Tell us theURL so we can find it.  It won't fit in a post.

----------

## hrnick

Thanks for you reply!

The kernel has evdev enabled and xf86-input-evdev is installed. The Xorg.0.log can be found here

----------

## BillWho

hrnick,

If I can make a suggestion to try xinput. The package is x11-apps/xinput

You can list and change pointer devices with --list and--set-pointer device.

Not sure if that will help, but it's worth a shot and might assist you with troubleshooting.  

Good luck   :Wink: 

----------

## hrnick

The output is the same with or without the USB mouse plugged in.

```
$ xinput --list

  Virtual core pointer                        id=2  [master pointer  (3)]

      Virtual core XTEST pointer              id=4  [slave  pointer  (2)]

      SynPS/2 Synaptics TouchPad              id=11 [slave  pointer  (2)]

  Virtual core keyboard                       id=3  [master keyboard (2)]

      Virtual core XTEST keyboard             id=5  [slave  keyboard (3)]

      Power Button                            id=6  [slave  keyboard (3)]

      Video Bus                               id=7  [slave  keyboard (3)]

      Power Button                            id=8  [slave  keyboard (3)]

      Sleep Button                            id=9  [slave  keyboard (3)]

      AT Translated Set 2 keyboard            id=10 [slave  keyboard (3)]
```

----------

## Ant P.

They seem to get lost somewhere between the dmesg and Xorg.log. Do they show up in /dev/input/by-id/ and /proc/bus/input/devices?

----------

## hrnick

It looks the same before and after plugging in the USB mouse. Is it of any help to show it to you?

----------

## Jaglover

It would help if you put your Xorg log into pastebin.

----------

## hrnick

Xorg.0.log

----------

## BillWho

hrnick,

It doesn't look like the devices are recognized. Try 

```
udevadm monitor --udev 
```

The output should look similar if the mouse is detected - I unplugged the mouse and plugged it back in:

```
root@gentoo-gateway hamster # udevadm monitor --udev

monitor will print the received events for:

UDEV - the event which udev sends out after rule processing

UDEV  [29307.817289] remove   /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0/input/input4/mouse0 (input)

UDEV  [29307.817504] remove   /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0/input/input4/event4 (input)

UDEV  [29307.817859] remove   /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0/0003:0461:4D16.0004/hidraw/hidraw3 (hidraw)

UDEV  [29307.818219] remove   /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0/0003:0461:4D16.0004 (hid)

UDEV  [29307.821282] remove   /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0/input/input4 (input)

UDEV  [29307.821481] remove   /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0 (usb)

UDEV  [29307.860919] remove   /devices/pci0000:00/0000:00:12.1/usb4/4-1 (usb)

UDEV  [29315.191038] add      /devices/pci0000:00/0000:00:12.1/usb4/4-1 (usb)

UDEV  [29315.192088] add      /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0 (usb)

UDEV  [29315.192796] add      /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0/0003:0461:4D16.0005 (hid)

UDEV  [29315.193821] add      /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0/0003:0461:4D16.0005/hidraw/hidraw3 (hidraw)

UDEV  [29315.267461] add      /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0/input/input14 (input)

UDEV  [29315.270057] add      /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0/input/input14/mouse0 (input)

UDEV  [29315.270157] add      /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0/input/input14/event4 (input)

```

Lets see what happens   :Wink: 

----------

## hrnick

This is what I get when I plug in and remove the USB mouse:

```
$ udevadm monitor --udev

monitor will print the received events for:

UDEV - the event which udev sends out after rule processing

UDEV  [1332980368.810730] add      /devices/pci0000:00/0000:00:1d.2/usb4/4-2 (usb)

UDEV  [1332980368.819577] add      /devices/pci0000:00/0000:00:1d.2/usb4/4-2/4-2:1.0 (usb)

UDEV  [1332980389.278465] remove   /devices/pci0000:00/0000:00:1d.2/usb4/4-2/4-2:1.0 (usb)

UDEV  [1332980389.279234] remove   /devices/pci0000:00/0000:00:1d.2/usb4/4-2 (usb)
```

----------

## BillWho

hrnick,

Unfortunately that's only half a good sign. At least udev is triggering. The problem is there's no device assignment. 

For the next step: 

```
udevadm test  /devices/pci0000:00/0000:00:1d.2/usb4/4-2/ 2>&1 | wgetpaste
```

To view the output locally you can run 

```
udevadm test  /devices/pci0000:00/0000:00:1d.2/usb4/4-2/
```

It should look something  like this 

Lets see what it actually did   :Confused: 

----------

## hrnick

Here's the output!

By the way, it's another mouse so things might look different I guess. :)

----------

## BillWho

hrnick,

I'm not a udev expert, but from the looks of this output it appears to be preserving the other pointing device. 

```
udev_event_execute_rules: no node name set, will use kernel supplied name 'bus/usb/004/016'

udev_node_add: creating device node '/dev/bus/usb/004/016', devnum=189:399, mode=0664, uid=0, gid=85

udev_node_mknod: preserve file '/dev/bus/usb/004/016', because it has correct dev_t

udev_node_mknod: preserve permissions /dev/bus/usb/004/016, 020664, uid=0, gid=85

node_symlink: preserve already existing symlink '/dev/char/189:399' to '../bus/usb/004/016'

udev_device_update_db: created db file '/dev/.udev/data/c189:399' for '/devices/pci0000:00/0000:00:1d.2/usb4/4-2'

```

That seems to be the reason why you only got this far when it was plugged it and didn't continue creating the nodes like mine did:

```
UDEV  [1332980368.810730] add      /devices/pci0000:00/0000:00:1d.2/usb4/4-2 (usb)

UDEV  [1332980368.819577] add      /devices/pci0000:00/0000:00:1d.2/usb4/4-2/4-2:1.0 (usb)

```

This might require a udev rule to swap the devices. I've done a handful or udev rules, but none that manipulated nodes. One more thing I'd like to take a look at is:

```
udevadm info  --attribute-walk --export --path=/devices/pci0000:00/0000:00:1d.2/usb4/4-2/4-2:1.0/|wgetpaste
```

hrnick, just make sure that the path /devices/pci0000:00/0000:00:1d.2/usb4/4-2/4-2:1.0/ is the same for that rodent   :Wink: 

----------

## hrnick

Here you go! :)

----------

