You are not logged in.
With the upgrade from linux 3.1.9 to 3.2.1, my touchscreen device is no longer recognised.
Hoping someone may be able to shed some light on the situation.
Here are my Xorg logs for both kernels:
http://home.exetel.com.au/padfoot/logs/xorg.log.3.1.9
http://home.exetel.com.au/padfoot/logs/xorg.log.3.2.1
xinput list for 3.1.9
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SONiX USB Keyboard id=12 [slave pointer (2)]
⎜ ↳ eGalaxTouch Virtual Device for Multi id=14 [slave pointer (2)]
⎜ ↳ eGalaxTouch Virtual Device for Single id=15 [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)]
↳ 1.3M Rear id=9 [slave keyboard (3)]
↳ 1.3M Front id=10 [slave keyboard (3)]
↳ SONiX USB Keyboard id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
xinput list for 3.2.1
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SONiX USB Keyboard id=12 [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)]
↳ 1.3M Rear id=9 [slave keyboard (3)]
↳ 1.3M Front id=10 [slave keyboard (3)]
↳ SONiX USB Keyboard id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
↳ Acer WMI hotkeys id=14 [slave keyboard (3)]
dmesg extract for 3.1.9
[ 4.920911] input: eGalax Inc. USB TouchController as /devices/pci0000:00/0000:00:13.0/usb5/5-1/5-1:1.0/input/input10
[ 4.923565] generic-usb 0003:0EEF:7302.0001: input,hiddev0,hidraw0: USB HID v2.10 Pointer [eGalax Inc. USB TouchController] on usb-0000:00:13.0-1/input0
[ 7.701218] input: eGalaxTouch Virtual Device for Multi as /devices/virtual/input/input13
[ 7.701692] input: eGalaxTouch Virtual Device for Single as /devices/virtual/input/input14
dmesg extract for 3.2.1
[ 3.853443] usb 5-1: new full-speed USB device number 2 using ohci_hcd
[ 3.990164] usb 5-1: device descriptor read/64, error -62
[ 4.226771] usb 5-1: device descriptor read/64, error -62
[ 4.460091] usb 5-1: new full-speed USB device number 3 using ohci_hcd
[ 4.593421] usb 5-1: device descriptor read/64, error -62
[ 4.830326] usb 5-1: device descriptor read/64, error -62
[ 5.063660] usb 5-1: new full-speed USB device number 4 using ohci_hcd
[ 5.470315] usb 5-1: device not accepting address 4, error -62
[ 5.600320] usb 5-1: new full-speed USB device number 5 using ohci_hcd
[ 6.006989] usb 5-1: device not accepting address 5, error -62
[ 6.256982] usb 5-5: new full-speed USB device number 6 using ohci_hcd
Holding off on upgrading to kernel 3.2 until this can be resolved
Appreciate your help.
Cheers.
Last edited by Padfoot (2012-01-21 01:35:03)
Offline
I have a Dell Duo with an eGalax touchscreen. It stopped working after updating to Kernel 3.2.
Where should I file a bug about this?
Here are some relevant outputs.
$ lsusb
-----
Bus 004 Device 002: ID 0eef:725e D-WAV Scientific Co., Ltd
And xinput --list output before and after the update
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ eGalax Inc. USB TouchController id=10 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)]
⎜ ↳ eGalaxTouch Virtual Device for Multi id=14 [slave pointer (2)]
⎜ ↳ eGalaxTouch Virtual Device for Single id=15 [slave pointer (2)]
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
Offline
Offline
Similar problem here, also with an eGalax touchscreen. Where should this bug be reported?
Offline
Well it happened on the kernel upgrade, so thinking there is a problem in the usbinput hook. Needs to be reported to kernel devs.
Offline
Moderator: Merged threads
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
I have emailed the kernel dev mailing list with a bug report. Will keep you posted as I get further information.
Cheers.
Offline
Ok. Thanks.
Offline
Ok, I have the solution. Multitouch is now working with kernel 3.2.1. It seems the kernel devs are separating multitouch devices from the generic input stack as they can cause issues. Here is the reply I got from the linux-input mailing list:
Well, many eGalax devices are multitouch devices, and can not be
handled by the generic input hid layer without having strange issues.
We have a patch in 3.2 that auto detect such devices and release them
from the generic input stack.
Then, it's easier for people to handle the devices through
hid-multitouch as the recompilation of the kernel is not required
anymore.
I also submitted a patch to catch multitouch devices in
hid-multitouch, but it has not been accepted as it would require
everybody to load hid-multitouch for every hid device.To enable your device, do (as root)
# modprobe hid-multitouch
# echo 3 VID PID 104 >
/sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_idwhere:
- 3 is the bus, usb here
- VID: vendor ID (must be 0eef in your case)
- PID: product ID
- 104 is the number of the right class of multitouch device to use
(see MT_CLS_* definitions in hid-multitouch)
VID/PID can be retrieved from lsusb.If it's working, then you should also give us your PID so that we can
add it in the source of hid-multitouch.
So, I did the following to enable multitouch:
1. Before upgrading your kernel (should also work after, but may as well be prepared):
# lsusb
.......
Bus 005 Device 002: ID 0eef:7302 D-WAV Scientific Co., Ltd
.......
VID is 0eef
PID is 7302
2. Now we need to get the MT_CLS_* definition for our device (extracted from http://lxr.free-electrons.com/source/dr … titouch.c)
86
87 /* classes of device behavior */
88 #define MT_CLS_DEFAULT 0x0001
89
90 #define MT_CLS_SERIAL 0x0002
91 #define MT_CLS_CONFIDENCE 0x0003
92 #define MT_CLS_CONFIDENCE_MINUS_ONE 0x0004
93 #define MT_CLS_DUAL_INRANGE_CONTACTID 0x0005
94 #define MT_CLS_DUAL_INRANGE_CONTACTNUMBER 0x0006
95 #define MT_CLS_DUAL_NSMU_CONTACTID 0x0007
96
97 /* vendor specific classes */
98 #define MT_CLS_3M 0x0101
99 #define MT_CLS_CYPRESS 0x0102
100 #define MT_CLS_EGALAX 0x0103
101
I have an eGalax device, so I need MT_CLS_* = 0x0103 (259 in decimal)
3. We have all we need to set up the device. Install kernel 3.2.1
# pacman -S linux
4. Start the hid-multitouch module on boot
# nano /etc/rc.conf
........
# -----------------------------------------------------------------------
# HARDWARE
# -----------------------------------------------------------------------
#
# MODULES: Modules to load at boot-up. Blacklisting is no longer supported.
# Replace every !module by an entry as on the following line in a file in
# /etc/modprobe.d:
# blacklist module
# See "man modprobe.conf" for details.
#
MODULES=(hid-multitouch)
.........
Now reboot to see if your device is auto configured with the hid-multitouch module. If so, you are all good to go. If not, continue as follows:
5. Ensure your device details are passed to the hid-multitouch module
# nano /etc/rc.local
........
echo 3 0eef 7302 259 > /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id
.........
The command above contains my device details, replace with your details obtained from steps 1 & 2 above:
echo 3 VID PID MT_CLS_*
(If someone can point me in a better direction for setting up these details at boot, it would be appreciated)
Reboot again to see if the device is now working. If not, you may need binary drivers from the vendor. I know in my case, my device needs the eGalax touch daemon driver. A package for this is available in the AUR https://aur.archlinux.org/packages.php?ID=55050
Of course, as the email states, if you have a device that is not automatically configured with the hid-multitouch module, yet it does work after step 5, submit your device details to the linux-input mailing list so it may be added to the source.
Cheers.
Last edited by Padfoot (2012-01-21 01:34:42)
Offline
Hi there,
I have a Dell Duo. I was unable to get the touchscreen working. It seems that I need to place GRUB_CMDLINE_LINUX_DEFAULT="usbhid.quirks=0x0eef:0x725e:0x40" to grub /etc/default/grub. I don't see that in the /etc/default. Where do I modify that. How do I make my touchscreen works in Arch Linux. I am recently using Arch Linux. I just installed on my laptop and desktop.
Also, for step 2. the link is invalid. How do I find MT_CLS_*. How do you get the 256?
2. Now we need to get the MT_CLS_* definition for our device (extracted from http://lxr.free-electrons.com/source/dr … titouch.c)
Everything is working well, except I could not get the touch working or get multitouch. Thank you.
Rage
Last edited by Rage24 (2012-01-22 21:47:44)
Offline
I have a Dell Duo. I was unable to get the touchscreen working. It seems that I need to place GRUB_CMDLINE_LINUX_DEFAULT="usbhid.quirks=0x0eef:0x725e:0x40" to grub /etc/default/grub. I don't see that in the /etc/default. Where do I modify that. How do I make my touchscreen works in Arch Linux. I am recently using Arch Linux. I just installed on my laptop and desktop.
Are you using grub, or grub2? I sounds like grub if /etc/default/grub does not exist. So for your usbhid.quirks, you need to add that to your kernel line in /boot/grub/menu.lst
Also, for step 2. the link is invalid. How do I find MT_CLS_*. How do you get the 256?
2. Now we need to get the MT_CLS_* definition for our device (extracted from http://lxr.free-electrons.com/source/dr … titouch.c)
The link works for me, but have a look at the code block I listed in step 2. It lists the different types of MT_CLS_*, which I extracted from the link. Find the line appropriate to your device. The number at the end is in hexadecimal. You need to convert that to decimal, so in my case 0x0103 hexidecimal = 259 decimal.
Cheers.
Last edited by Padfoot (2012-01-23 06:34:26)
Offline
Thanks padfoot, it works great. I started a stub in the wiki.
Hi there,
I have a Dell Duo. I was unable to get the touchscreen working. It seems that I need to place GRUB_CMDLINE_LINUX_DEFAULT="usbhid.quirks=0x0eef:0x725e:0x40" to grub /etc/default/grub. I don't see that in the /etc/default. Where do I modify that. How do I make my touchscreen works in Arch Linux. I am recently using Arch Linux. I just installed on my laptop and desktop.
padfoot instructions are correct, although you don't need to do this anymore since the eGalax driver is working properly now (in fact, using usbhid.quirks disables multitouch, only single touch would work).
Also, for step 2. the link is invalid. How do I find MT_CLS_*. How do you get the 256?
There is only an exta ')' at the end. Anyway, the Duo also have an eGalax touchscreen so MT_CLS_*=MT_CLS_EGALAX=259 also (watch your typo, if not it won't work). In my case, lsusb shows the touchscreen as
lsusb
-----
Bus 004 Device 002: ID 0eef:725e D-WAV Scientific Co., Ltd
so the command you need to add to /etc/rc.local is
echo 3 0eef 725e 259 > /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id
You should follow padfoot's instructions with the values you get and (259 as MT_CLS_*) and everything should be OK. In my case the Y-axis of the touchscreen was inverted, I explain how to fix it in the archwiki link above.
Also there is a wiki page for the Dell Duo.
Offline
Thanks padfoot, it works great. I started a stub in the wiki.
Excellent work gjasso
Offline
Hi Padfoot,
thanks for the solution.
On first try I was thinking the 3 on echo command was a typo and I have inserted 5 as number of USB bus, this is not the number of USB bus but refer to bus 3 as USB is true?
After change and reboot it work well.
Now I'll investigate to update EasyStroke for new-style multitouch.
Bye
Offline
Now I'll investigate to update EasyStroke for new-style multitouch.
The patched version with multitouch support is available from the AUR.
Offline
Hi Padfoot,
thanks for the solution.
On first try I was thinking the 3 on echo command was a typo and I have inserted 5 as number of USB bus, this is not the number of USB bus but refer to bus 3 as USB is true?
After change and reboot it work well.
Now I'll investigate to update EasyStroke for new-style multitouch.Bye
Yes, it's a little confusing. Bus 3 is USB. Mine reports as 5 as well, but I have to use 3 in the echo command.
Great news on EasyStroke. Hopefully you can get true multitouch working with it rather than the 'single touch workaround' you have currently employed.
I am playing aroung with kivy at the moment (in AUR). It is a true multitouch toolkit (similar vein to GTK and QT) built with cython, so you have the high level convenience of programming in python with the speed of C for processor intensive code.
Cheers.
Offline
ant1-antuan wrote:Now I'll investigate to update EasyStroke for new-style multitouch.
The patched version with multitouch support is available from the AUR.
Hi gjasso, ant1 is the maintainer of eaststroke-mt in AUR. It's not true multitouch at the moment, without being rude to ant (he has done excellent work there), it's a single touch 'fudge' to emulate multitouch.
With the egalax driver in AUR, I included the sample code provided by egalax, to access true multitouch data from the driver. This is what ant is investigating. It will provide true multitouch to easystroke (at least for egalax devices anyway).
Cheers.
Offline
Thank you for the quick reply. I updated my grub today. However, I followed Padfoot's instructions. I rebooted, and I got touch on my dell duo. However, when I touched the screen, the mouse jumped in a different direction. How do I fix so it won't jump away from my finger when I touched the screen. It should work like a mouse. Do I need to download the Egalax drive to modify the file. I saw this in the wiki. I don't have that file to change it from 0 to 2.
/etc/eGtouchd.ini
...
DetectRotation 0
Direction 2
Orientation 0
Thank you again.
Rage
Last edited by Rage24 (2012-01-26 03:35:14)
Offline
Thank you for the quick reply. I updated my grub today. However, I followed Padfoot's instructions. I rebooted, and I got touch on my dell duo. However, when I touched the screen, the mouse jumped in a different direction. How do I fix so it won't jump away from my finger when I touched the screen. It should work like a mouse. Do I need to download the Egalax drive to modify the file. I saw this in the wiki. I don't have that file to change it from 0 to 2.
/etc/eGtouchd.ini
...
DetectRotation 0
Direction 2
Orientation 0Thank you again.
Rage
If touch is working without the egalax driver, then you can correct your 'mouse' direction using xinput.
Use:
$ xinput list
to find the device id and then use the following command to adjust your pointer direction.
$ xinput set-prop ID "Evdev Axis Inversion" x, y
where ID is the device id and x, y are 0 for normal or 1 for inverted.
Cheers.
Offline
Hi Padfoot,
I used the commands above. I got an error message. My device ID is 10
xinput set-prop 10 "Evdev Axis Inversion" 1,0 (I am not sure about this, I am testing it out)
I got an error message.
I checked xinput --list-props 10
Evdev Axis Inversion (264): 0,0
Evdev Axis Calibration (265): <no items>
Should there be some items in the Calibration? If there should be some items, how do I add it?
Thank you again
Rage
Offline
Do I need to download the Egalax drive to modify the file. I saw this in the wiki. I don't have that file to change it from 0 to 2.
/etc/eGtouchd.ini
...
DetectRotation 0
Direction 2
Orientation 0
Yes, you need to install the driver. When you install the driver you'll find the file /etc/eGTouchd.ini in your system and change the value of Direction to 2.
Also, don't forget to add
/usr/bin/eGTouchd
to your /etc/rc.local file to load the driver at start up.
Offline
Rage24 wrote:Do I need to download the Egalax drive to modify the file. I saw this in the wiki. I don't have that file to change it from 0 to 2.
/etc/eGtouchd.ini
...
DetectRotation 0
Direction 2
Orientation 0Yes, you need to install the driver. When you install the driver you'll find the file /etc/eGTouchd.ini in your system and change the value of Direction to 2.
Also, don't forget to add
/usr/bin/eGTouchd
to your /etc/rc.local file to load the driver at start up.
You only need the driver if touch is not working without it.
Offline
Hi Padfoot,
I used the commands above. I got an error message. My device ID is 10
xinput set-prop 10 "Evdev Axis Inversion" 1,0 (I am not sure about this, I am testing it out)
I got an error message.
I checked xinput --list-props 10
Evdev Axis Inversion (264): 0,0
Evdev Axis Calibration (265): <no items>
Should there be some items in the Calibration? If there should be some items, how do I add it?
Thank you again
Rage
Please let us know what the error message is, and post the output of xinput list.
Offline
I went ahead and install the drive that you packaged. It works. However, it seems I don't have multitouch. This is my first time playing with multitouch in Linux. The usr/bin/eGTouchd did not load the drive for some reasons. I have to go through step 1 and 2 from padfoot to activate the touch. Any advice would be appreciated.
Offline
I went ahead and install the drive that you packaged. It works. However, it seems I don't have multitouch. This is my first time playing with multitouch in Linux. The usr/bin/eGTouchd did not load the drive for some reasons. I have to go through step 1 and 2 from padfoot to activate the touch. Any advice would be appreciated.
Post the output of lsusb and xinput list. Also post the contents of /etc/rc.conf and /etc/rc.local along with your X log from /var/log
Offline