09-09-2015 11:19 AM
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?
09-09-2015 12:56 PM
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?
Also it would be helpful to know the keyboard/touchpad manufacturer and model information.
09-09-2015 02:01 PM
Here they are.
The keyboard and touchpad are from a company called Solidtek. http://www.solidtekusa.com/mini.htm
The model is ACK-540U
09-09-2015 04:06 PM
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:
09-10-2015 07:15 AM
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?
09-10-2015 07:39 AM
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.
09-10-2015 04:52 PM
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).
09-11-2015 11:23 AM
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:"
09-11-2015 11:41 AM
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.
09-11-2015 01:21 PM
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.