NI Linux Real-Time Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Touchpad not working on cRIO-9030

Hello,

I am trying to get my touchpad working on my cRIO-9030, and so far it isn't responding. The keyboard works fine.

I am using kernel version 3.10.31.

When I plug in the keyboard/trackpad I get these messages

[ 2000.505600] usb 1-4.1: new low-speed USB device number 11 using xhci_hcd

[ 2000.533942] usb 1-4.1: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes

[ 2000.533957] usb 1-4.1: ep 0x82 - rounding interval to 64 microframes, ep desc says 80 microframes

[ 2000.538819] input: USB Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.0/input/input13

[ 2000.539197] hid-generic 0003:060B:0541.0009: input: USB HID v1.10 Keyboard [USB Keyboard] on usb-0000:00:14.0-4.1/input0

[ 2000.550592] input: USB Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.1/input/input14

[ 2000.551019] hid-generic 0003:060B:0541.000A: input: USB HID v1.10 Mouse [USB Keyboard] on usb-0000:00:14.0-4.1/input1

Does it think the trackpad is a keyboard?

Here is my from my devices file

bash-4.2# cat /proc/bus/input/devices

I: Bus=0019 Vendor=3923 Product=0001 Version=0002

N: Name="nilrt:user1:uservisible=1:states=(0,1)"

P: Phys=nilrt/Manhattan/user1

S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:0b/NIC775D:00/input/input0

U: Uniq=

H: Handlers=event0

B: PROP=0

B: EV=3

B: KEY=1 0 0 0 0

I: Bus=0019 Vendor=0000 Product=0001 Version=0000

N: Name="Power Button"

S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input3

U: Uniq=

H: Handlers=kbd event3

B: PROP=0

B: EV=3

B: KEY=10000000000000 0

I: Bus=0019 Vendor=0000 Product=0003 Version=0000

N: Name="Sleep Button"

P: Phys=PNP0C0E/button/input0

S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input4

U: Uniq=

H: Handlers=kbd event4

B: PROP=0

B: EV=3

B: KEY=4000 0 0

I: Bus=0019 Vendor=0000 Product=0001 Version=0000

N: Name="Power Button"

P: Phys=LNXPWRBN/button/input0

S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input5

U: Uniq=

H: Handlers=kbd event5

B: PROP=0

B: EV=3

B: KEY=10000000000000 0

I: Bus=0019 Vendor=0000 Product=0006 Version=0000

N: Name="Video Bus"

P: Phys=LNXVIDEO/video/input0

S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:00/input/input6

U: Uniq=

H: Handlers=kbd event6

B: PROP=0

B: EV=3

B: KEY=3e000b00000000 0 0 0

I: Bus=0003 Vendor=060b Product=0541 Version=0110

N: Name="USB Keyboard"

P: Phys=usb-0000:00:14.0-4.1/input0

S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.0/input/input13

U: Uniq=

H: Handlers=sysrq kbd event1

B: PROP=0

B: EV=120013

B: KEY=1000000000007 ff800000000007ff febeffdff3cfffff fffffffffffffffe

B: MSC=10

B: LED=7

I: Bus=0003 Vendor=060b Product=0541 Version=0110

N: Name="USB Keyboard"

P: Phys=usb-0000:00:14.0-4.1/input1

S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.1/input/input14

U: Uniq=

H: Handlers=kbd mouse0 event2

B: PROP=0

B: EV=17

B: KEY=fffff8000 2000000 3878d801d001 1e000000000000 0

B: REL=103

B: MSC=10

And here is the readout from xinput --list

bash-4.2# xinput --list

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

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

�   ��� USB Keyboard                                      id=10          [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)]

    ��� USB Keyboard                                      id=11          [slave  keyboard (3)]

I am guessing that I need to install a module for the touchpad to work. If that is correct do you have one suggested that will work with the 9030?

0 Kudos
Message 1 of 16
(6,771 Views)

According to the kernel messages it detects a keyboard:

[ 2000.538819] input: USB Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.0/input/input13

[ 2000.539197] hid-generic 0003:060B:0541.0009: input: USB HID v1.10 Keyboard [USB Keyboard] on usb-0000:00:14.0-4.1/input0

and a mouse:

[ 2000.550592] input: USB Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.1/input/input14

[ 2000.551019] hid-generic 0003:060B:0541.000A: input: USB HID v1.10 Mouse [USB Keyboard] on usb-0000:00:14.0-4.1/input1

So the touchpad is detected as a "mouse" that is part of the composite USB HID device "[USB Keyboard]".

Likely the problem is not with the kernel driver but X/Xfce. Can you re-boot the target with the touchpad plugged in and post the following log files?

  • /var/log/Xorg.0.log
  • /var/log/Xsession.log

Also it would be helpful to know the keyboard/touchpad manufacturer and model information.

0 Kudos
Message 2 of 16
(4,177 Views)

Here they are.

The keyboard and touchpad are from a company called Solidtek.  http://www.solidtekusa.com/mini.htm

The model is ACK-540U

Download All
0 Kudos
Message 3 of 16
(4,177 Views)

Hmm, I think your orginal idea that the touchpad gets confused as a keyboard is right.

The relevant section from Xorg.0.log:

[2982206.991] (II) config/udev: Adding input device USB Keyboard (/dev/input/event2)

[2982206.992] (**) USB Keyboard: Applying InputClass "evdev pointer catchall"

[2982206.992] (**) USB Keyboard: Applying InputClass "evdev keyboard catchall"

[2982206.992] (II) Using input driver 'evdev' for 'USB Keyboard'

[2982206.992] (**) USB Keyboard: always reports core events

[2982206.992] (**) evdev: USB Keyboard: Device: "/dev/input/event2"

[2982206.992] (--) evdev: USB Keyboard: Vendor 0x60b Product 0x541

[2982206.992] (--) evdev: USB Keyboard: Found 20 mouse buttons

[2982206.992] (--) evdev: USB Keyboard: Found scroll wheel(s)

[2982206.992] (--) evdev: USB Keyboard: Found relative axes

[2982206.992] (--) evdev: USB Keyboard: Found x and y relative axes

[2982206.992] (--) evdev: USB Keyboard: Found keys

[2982206.992] (II) evdev: USB Keyboard: Configuring as mouse

[2982206.992] (II) evdev: USB Keyboard: Configuring as keyboard

[2982206.992] (II) evdev: USB Keyboard: Adding scrollwheel support

[2982206.992] (**) evdev: USB Keyboard: YAxisMapping: buttons 4 and 5

[2982206.992] (**) evdev: USB Keyboard: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200

[2982206.992] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.1/input/input2/event2"

[2982206.992] (II) XINPUT: Adding extended input device "USB Keyboard" (type: KEYBOARD, id 11)

[2982206.992] (**) Option "xkb_rules" "evdev"

[2982206.992] (**) Option "xkb_model" "evdev"

[2982206.992] (**) Option "xkb_layout" "us"

[2982206.993] (II) evdev: USB Keyboard: initialized for relative axes.

[2982206.994] (**) USB Keyboard: (accel) keeping acceleration scheme 1

[2982206.994] (**) USB Keyboard: (accel) acceleration profile 0

[2982206.994] (**) USB Keyboard: (accel) acceleration factor: 2.000

[2982206.994] (**) USB Keyboard: (accel) acceleration threshold: 4

[2982206.995] (II) config/udev: Adding input device USB Keyboard (/dev/input/mouse0)

[2982206.995] (II) No input driver specified, ignoring this device.

[2982206.995] (II) This device may have been added with another device file.

Based on this it looks like both the pointer and keyboard rules in '/usr/share/X11/xorg.conf.d/10-evdev.conf' get matched and things get messed up.

I need to do more digging but the solution probably going to be either:

  • writting a more specific .conf that has precendence over 10-evdev.conf - by naming it something that is alphabetically before it;
  • or possibly adding a quirk in '/usr/share/X11/xorg.conf.d/10-quirks.conf' - which would be the more elegant solution.
0 Kudos
Message 4 of 16
(4,177 Views)

Thanks for the help. I don't know how to do either of those.

Do you know if this is an issue with my specific keyboard/trackpad not being compatible with the cRIO or in general between cRIOs and trackpads?

0 Kudos
Message 5 of 16
(4,177 Views)

I am not sure if it is pertinent but I figured I would post the 50-synaptics.conf and 10-evdev.conf files.

Also apparently the name of the touchpad is keyboard is that a problem.

cat /proc/bus/input/devices |grep -i name

N: Name="nilrt:user1:uservisible=1:states=(0,1)"

N: Name="USB Keyboard"

N: Name="USB Keyboard"

N: Name="Power Button"

N: Name="Sleep Button"

N: Name="Power Button"

N: Name="Video Bus"

I was looking over the xorg log, and it seems to be adding the trackpad as a mouse and then says it doesn't have an input driver specified so it is ignoring the device. But I am not sure if it is adding it as a mouse or a keyboard. It is ambiguous since it might be calling the trackpad by its name "USB Keyboard". I think it should be adding it as a trackpad though and not a mouse.

Download All
0 Kudos
Message 6 of 16
(4,177 Views)

Do you know if this is an issue with my specific keyboard/trackpad not being compatible with the cRIO or in general between cRIOs and trackpads?

The issue is not with cRIOs and trackpads, but with this specific keyboard/trackpad model and Linux.

I think the solution is going to be figuring out what to put in '/usr/share/X11/xorg.conf.d/10-quirks.conf' to tell X that is a trackpad and not a keyboard. Sorry I have not been able to figure out the exact details yet (a bit hard w/o having the hardware to test).

0 Kudos
Message 7 of 16
(4,177 Views)

Trying to gather a bit more information. Can you copy the attached file and install it on the cRIO via 'opkg install evtest_1_a1.31-1.ipk'?

This will install the 'evtest' utility.

Run the evtest utility with the touchpad plugged in. It will ask you to select an input device from the list of available devices. Based on the previous logs the touchpad is probably '/dev/input/event2'. After you select it can you see if you get any events by touching the touchpad?

Also can you post the output from running 'evtest'? I am specifically interested in the section that lists the "Input device ID", "Input device name" and "Suported events:"

0 Kudos
Message 8 of 16
(4,177 Views)

It did not install.

admin@NI-cRIO-9030-01A5F6C5:~# ls

devices               evtest_1_a1.31-1.ipk

admin@NI-cRIO-9030-01A5F6C5:~# opkg install evtest_1_a1.31-1.ipk

Unknown package 'evtest'.

Collected errors:

* pkg_hash_fetch_best_installation_candidate: Packages for evtest found, but incompatible with the architectures configured

* opkg_install_cmd: Cannot install package evtest.

If this is relying on my cRIO being able to download packages from the internet, it won't work because of my company's firewall. I'll have to try it off site.

0 Kudos
Message 9 of 16
(4,177 Views)

Can you try with the new package I've attached to this message? I think the issue is you are probably still on the 2014 or 2014sp1 software stack and the previous package I've configured for 2015.

The install should work w/o an internet connection if you copy the package locally on the target.

It should look something like this:

admin@boson:~# opkg install evtest_x86_64_1_a1.31-1.ipk

Installing evtest (1:1.31-1) to root...

evtest: unsatisfied recommendation for evemu-tools

Configuring evtest.

Ignore the bit about the unsatisfied recommendation, it's not relevant.

0 Kudos
Message 10 of 16
(4,177 Views)