2009-01-25 22:49:22

by Max Weninger

[permalink] [raw]
Subject: support of touchscreen reported as eGalax but is not working

Hi

I recently got a used USB touchscreen and try to get it working
It looks like a eGalax type but not really is :-(

I am using kernel 2.6.28.2 but also tried the one that comes with
fedora 10 (2.6.27) When I connect the touchscreen dmesg shows

usb 2-1: new low speed USB device using uhci_hcd and address 13
usb 2-1: string descriptor 0 read error: -32
usb 2-1: string descriptor 0 read error: -32
usb 2-1: configuration #1 chosen from 1 choice
usb 2-1: string descriptor 0 read error: -32
generic-usb: probe of 0003:0EEF:0001.000B failed with error -32
usb 2-1: New USB device found, idVendor=0eef, idProduct=0001
usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0

lsusb -vv for the device gives

Bus 002 Device 013: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax
TouchScreen Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0eef D-WAV Scientific Co., Ltd
idProduct 0x0001 eGalax TouchScreen
bcdDevice 1.00
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 4
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 44mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.12
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 141
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 5

/proc/bus/usb/devices gives

T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 13 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0eef ProdID=0001 Rev= 1.00
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 44mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=5ms

I compared this output to other eGalax and discovered some differences
like that iManufactur and iProduct is not filled also
bInterfaceSubClass and bInterfaceProtocol

The kernel is not installing any input device for the touchscreen
so /proc/bus/input/devices does not show the touchscreen

To check if the thing is actually working I did a quick test on XP
and there it works.

Any chance to get this thing working?
I can test any patch maybe required and provide more information if
needed. If am wrong on this mailing list please tell me where
I should post this question.

Thanks for any help

Max


Attachments:
signature.asc (197.00 B)

2009-01-26 10:52:30

by Niels de Vos

[permalink] [raw]
Subject: Re: support of touchscreen reported as eGalax but is not working

Max Weninger wrote:
> Hi
>
> I recently got a used USB touchscreen and try to get it working
> It looks like a eGalax type but not really is :-(
>
...
> /proc/bus/usb/devices gives
>
> T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 13 Spd=1.5 MxCh= 0
> D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
> P: Vendor=0eef ProdID=0001 Rev= 1.00
> C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 44mA
> I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
> E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=5ms
>
> I compared this output to other eGalax and discovered some differences
> like that iManufactur and iProduct is not filled also
> bInterfaceSubClass and bInterfaceProtocol

Looks like a touchscreen which is supported by a closed(?) source driver
of eGalax we have here too:
$ /sbin/modinfo tkusb.ko
filename: tkusb.ko
license: GPL
description: USB TouchScreen Driver
author: eGalax Inc. http://www.egalax.com.tw
srcversion: B0872D8913B07BF5665B5BA
alias: usb:v3823p0001d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0EEFp0002d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0EEFp0001d*dc*dsc*dp*ic*isc*ip*
alias: usb:v1234p0002d*dc*dsc*dp*ic*isc*ip*
alias: usb:v1234p0001d*dc*dsc*dp*ic*isc*ip*
depends: usbcore
vermagic: 2.6.17-8.wn mod_unload 686 REGPARM 4KSTACKS gcc-4.0

You can obviously download the drivers from
<http://home.eeti.com.tw/web20/TouchKitDriver/linuxDriver.htm>.

It would be great if eGalax could be convinced to get these drivers
included in main-line ;)

Hope that helps,
Niels


Attachments:
signature.asc (189.00 B)
OpenPGP digital signature

2009-01-26 11:50:37

by Max Weninger

[permalink] [raw]
Subject: Re: support of touchscreen reported as eGalax but is not working

Hi

On Mon, 26 Jan 2009 11:46:01 +0100
Niels de Vos <[email protected]> wrote:

> Max Weninger wrote:
> > Hi
> >
> > I recently got a used USB touchscreen and try to get it working
> > It looks like a eGalax type but not really is :-(
> >
> ...
> > /proc/bus/usb/devices gives
> >
> > T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 13 Spd=1.5 MxCh= 0
> > D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
> > P: Vendor=0eef ProdID=0001 Rev= 1.00
> > C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 44mA
> > I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
> > E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=5ms
> >
> > I compared this output to other eGalax and discovered some differences
> > like that iManufactur and iProduct is not filled also
> > bInterfaceSubClass and bInterfaceProtocol
>
> Looks like a touchscreen which is supported by a closed(?) source driver
> of eGalax we have here too:
> $ /sbin/modinfo tkusb.ko
> filename: tkusb.ko
> license: GPL
> description: USB TouchScreen Driver
> author: eGalax Inc. http://www.egalax.com.tw
> srcversion: B0872D8913B07BF5665B5BA
> alias: usb:v3823p0001d*dc*dsc*dp*ic*isc*ip*
> alias: usb:v0EEFp0002d*dc*dsc*dp*ic*isc*ip*
> alias: usb:v0EEFp0001d*dc*dsc*dp*ic*isc*ip*
> alias: usb:v1234p0002d*dc*dsc*dp*ic*isc*ip*
> alias: usb:v1234p0001d*dc*dsc*dp*ic*isc*ip*
> depends: usbcore
> vermagic: 2.6.17-8.wn mod_unload 686 REGPARM 4KSTACKS gcc-4.0
>
> You can obviously download the drivers from
> <http://home.eeti.com.tw/web20/TouchKitDriver/linuxDriver.htm>.
>
> It would be great if eGalax could be convinced to get these drivers
> included in main-line ;)

Thanks for your quick reply
BUT: I have tried those driver also

I tried this "brandnew" one (but also older ones)
http://home.eeti.com.tw/web20/drivers/touch_driver/Linux/2.06.2416/TouchKit-2.06.2410-32b-k26.tar.gz
after making it compile for 2.6.28.2 :)
since there is source code delivered

If I didnt make any error I get exactly the same error
maybe I did some error in the configuration but
it loads the tkusb kernel module instead of the usbtoucscreen
(which I added to the module blacklist) when plugin the screen
so I think I did it right :)

So maybe the problem is that the kernel is just too new
and some other changes broke the support :)
So I will try with the kernel you are using
(2.6.17-8) to make sure

Regards

max



--
_______________________________________________________________
\
o/\_ DI Max Weninger
<\__,\ Email ([email protected])
">. |
` .-|
. \
. \
.-|
_________._|____________________________________________________


Attachments:
signature.asc (189.00 B)

2009-01-26 12:19:20

by Niels de Vos

[permalink] [raw]
Subject: Re: support of touchscreen reported as eGalax but is not working

Max Weninger wrote:
> Niels de Vos <[email protected]> wrote:
>> You can obviously download the drivers from
>> <http://home.eeti.com.tw/web20/TouchKitDriver/linuxDriver.htm>.
>>
>> It would be great if eGalax could be convinced to get these drivers
>> included in main-line ;)
>
> Thanks for your quick reply
> BUT: I have tried those driver also
>
> I tried this "brandnew" one (but also older ones)
> http://home.eeti.com.tw/web20/drivers/touch_driver/Linux/2.06.2416/TouchKit-2.06.2410-32b-k26.tar.gz
> after making it compile for 2.6.28.2 :)
> since there is source code delivered

For what it's worth; the version we use from eGalax is 1.0.3.1701. I
don't have the hardware here atm, so I can't test an other driver
now.

Cheers,
Niels


Attachments:
signature.asc (189.00 B)
OpenPGP digital signature

2009-01-27 00:38:42

by Max Weninger

[permalink] [raw]
Subject: Re: support of touchscreen reported as eGalax but is not working

Hi

On Mon, 26 Jan 2009 13:13:23 +0100
Niels de Vos <[email protected]> wrote:

> Max Weninger wrote:
> > Niels de Vos <[email protected]> wrote:
> >> You can obviously download the drivers from
> >> <http://home.eeti.com.tw/web20/TouchKitDriver/linuxDriver.htm>.
> >>
> >> It would be great if eGalax could be convinced to get these drivers
> >> included in main-line ;)
> >
> > Thanks for your quick reply
> > BUT: I have tried those driver also
> >
> > I tried this "brandnew" one (but also older ones)
> > http://home.eeti.com.tw/web20/drivers/touch_driver/Linux/2.06.2416/TouchKit-2.06.2410-32b-k26.tar.gz
> > after making it compile for 2.6.28.2 :)
> > since there is source code delivered
>
> For what it's worth; the version we use from eGalax is 1.0.3.1701. I
> don't have the hardware here atm, so I can't test an other driver
> now.

I tried kernel 2.6.23.17 and there the touchscreen is recognized
using the builtin usbtouchscreen driver

/proc/bus/usb/devices delivers
T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0eef ProdID=0001 Rev= 1.00
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 44mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbtouchscreen
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=5ms

and

/proc/bus/input/devices
I: Bus=0003 Vendor=0eef Product=0001 Version=0100
N: Name="USB Touchscreen 0eef:0001"
P: Phys=usb-0000:00:1d.0-2/input0
S: Sysfs=/class/input/input3
U: Uniq=
H: Handlers=mouse2 event3
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=3

I also tried to blacklist the usbhid with 2.6.28.2
then it display Driver=usbtouchscreen in /proc/bus/usb/devices
but still no entry in /proc/bus/input/devices

Any ideas?

Regards

max


Attachments:
signature.asc (197.00 B)

2009-01-27 00:48:40

by Max Weninger

[permalink] [raw]
Subject: Re: support of touchscreen reported as eGalax but is not working

Hi



On Tue, 27 Jan 2009 01:38:06 +0100
Max Weninger <[email protected]> wrote:

> Hi
>
> On Mon, 26 Jan 2009 13:13:23 +0100
> Niels de Vos <[email protected]> wrote:
>
> > Max Weninger wrote:
> > > Niels de Vos <[email protected]> wrote:
> > >> You can obviously download the drivers from
> > >> <http://home.eeti.com.tw/web20/TouchKitDriver/linuxDriver.htm>.
> > >>
> > >> It would be great if eGalax could be convinced to get these
> > >> drivers included in main-line ;)
> > >
> > > Thanks for your quick reply
> > > BUT: I have tried those driver also
> > >
> > > I tried this "brandnew" one (but also older ones)
> > > http://home.eeti.com.tw/web20/drivers/touch_driver/Linux/2.06.2416/TouchKit-2.06.2410-32b-k26.tar.gz
> > > after making it compile for 2.6.28.2 :)
> > > since there is source code delivered
> >
> > For what it's worth; the version we use from eGalax is 1.0.3.1701. I
> > don't have the hardware here atm, so I can't test an other driver
> > now.
>
> I tried kernel 2.6.23.17 and there the touchscreen is recognized
> using the builtin usbtouchscreen driver

It also works with 2.6.26.8

Regards

Max


Attachments:
signature.asc (197.00 B)

2009-01-27 01:05:48

by Max Weninger

[permalink] [raw]
Subject: Re: SOLVED support of touchscreen reported as eGalax but is not working

Hi again

On Tue, 27 Jan 2009 01:48:22 +0100
Max Weninger <[email protected]> wrote:

> On Tue, 27 Jan 2009 01:38:06 +0100
> Max Weninger <[email protected]> wrote:
>
> > Hi
> >
> > On Mon, 26 Jan 2009 13:13:23 +0100
> > Niels de Vos <[email protected]> wrote:
> >
> > > Max Weninger wrote:
> > > > Niels de Vos <[email protected]> wrote:
> > > >> You can obviously download the drivers from
> > > >> <http://home.eeti.com.tw/web20/TouchKitDriver/linuxDriver.htm>.
> > > >>
> > > >> It would be great if eGalax could be convinced to get these
> > > >> drivers included in main-line ;)
> > > >
> > > > Thanks for your quick reply
> > > > BUT: I have tried those driver also
> > > >
> > > > I tried this "brandnew" one (but also older ones)
> > > > http://home.eeti.com.tw/web20/drivers/touch_driver/Linux/2.06.2416/TouchKit-2.06.2410-32b-k26.tar.gz
> > > > after making it compile for 2.6.28.2 :)
> > > > since there is source code delivered
> > >
> > > For what it's worth; the version we use from eGalax is
> > > 1.0.3.1701. I don't have the hardware here atm, so I can't test
> > > an other driver now.
> >
> > I tried kernel 2.6.23.17 and there the touchscreen is recognized
> > using the builtin usbtouchscreen driver
>
> It also works with 2.6.26.8

After comparing the usbtouchscreen.c sources between the different
versions I got it working by commenting the follwoing lines

...
#ifdef CONFIG_TOUCHSCREEN_USB_EGALAX
/* ignore the HID capable devices, handled by usbhid */
{USB_DEVICE_HID_CLASS(0x0eef, 0x0001), .driver_info = DEVTYPE_IGNORE},
{USB_DEVICE_HID_CLASS(0x0eef, 0x0002), .driver_info = DEVTYPE_IGNORE},
...

Now the entry in /proc/bus/input/devices is created as in the
older versions.

So it seems that usbhid is not correctly handling my type
of touchscreen if I understand the comment there correctly

Regards

Max


Attachments:
signature.asc (197.00 B)

2009-01-30 23:18:52

by Andrew Morton

[permalink] [raw]
Subject: Re: SOLVED support of touchscreen reported as eGalax but is not working

(cc restored - please jsut do reply-to-all, always)

On Tue, 27 Jan 2009 02:05:29 +0100
Max Weninger <[email protected]> wrote:

> Hi again
>
> On Tue, 27 Jan 2009 01:48:22 +0100
> Max Weninger <[email protected]> wrote:
>
> > On Tue, 27 Jan 2009 01:38:06 +0100
> > Max Weninger <[email protected]> wrote:
> >
> > > Hi
> > >
> > > On Mon, 26 Jan 2009 13:13:23 +0100
> > > Niels de Vos <[email protected]> wrote:
> > >
> > > > Max Weninger wrote:
> > > > > Niels de Vos <[email protected]> wrote:
> > > > >> You can obviously download the drivers from
> > > > >> <http://home.eeti.com.tw/web20/TouchKitDriver/linuxDriver.htm>.
> > > > >>
> > > > >> It would be great if eGalax could be convinced to get these
> > > > >> drivers included in main-line ;)
> > > > >
> > > > > Thanks for your quick reply
> > > > > BUT: I have tried those driver also
> > > > >
> > > > > I tried this "brandnew" one (but also older ones)
> > > > > http://home.eeti.com.tw/web20/drivers/touch_driver/Linux/2.06.2416/TouchKit-2.06.2410-32b-k26.tar.gz
> > > > > after making it compile for 2.6.28.2 :)
> > > > > since there is source code delivered
> > > >
> > > > For what it's worth; the version we use from eGalax is
> > > > 1.0.3.1701. I don't have the hardware here atm, so I can't test
> > > > an other driver now.
> > >
> > > I tried kernel 2.6.23.17 and there the touchscreen is recognized
> > > using the builtin usbtouchscreen driver
> >
> > It also works with 2.6.26.8
>
> After comparing the usbtouchscreen.c sources between the different
> versions I got it working by commenting the follwoing lines
>
> ...
> #ifdef CONFIG_TOUCHSCREEN_USB_EGALAX
> /* ignore the HID capable devices, handled by usbhid */
> {USB_DEVICE_HID_CLASS(0x0eef, 0x0001), .driver_info = DEVTYPE_IGNORE},
> {USB_DEVICE_HID_CLASS(0x0eef, 0x0002), .driver_info = DEVTYPE_IGNORE},
> ...
>
> Now the entry in /proc/bus/input/devices is created as in the
> older versions.
>
> So it seems that usbhid is not correctly handling my type
> of touchscreen if I understand the comment there correctly
>

So... how do we fix this for real?

2009-01-31 22:09:22

by Max Weninger

[permalink] [raw]
Subject: Re: SOLVED support of touchscreen reported as eGalax but is not working

Hi to all

On Fri, 30 Jan 2009 15:18:36 -0800
Andrew Morton <[email protected]> wrote:

> (cc restored - please jsut do reply-to-all, always)
>
> On Tue, 27 Jan 2009 02:05:29 +0100
> Max Weninger <[email protected]> wrote:
>
> > Hi again
> >
> > On Tue, 27 Jan 2009 01:48:22 +0100
> > Max Weninger <[email protected]> wrote:
> >
> > > On Tue, 27 Jan 2009 01:38:06 +0100
> > > Max Weninger <[email protected]> wrote:
> > >
> > > > Hi
> > > >
> > > > On Mon, 26 Jan 2009 13:13:23 +0100
> > > > Niels de Vos <[email protected]> wrote:
> > > >
> > > > > Max Weninger wrote:
> > > > > > Niels de Vos <[email protected]> wrote:
> > > > > >> You can obviously download the drivers from
> > > > > >> <http://home.eeti.com.tw/web20/TouchKitDriver/linuxDriver.htm>.
> > > > > >>
> > > > > >> It would be great if eGalax could be convinced to get these
> > > > > >> drivers included in main-line ;)
> > > > > >
> > > > > > Thanks for your quick reply
> > > > > > BUT: I have tried those driver also
> > > > > >
> > > > > > I tried this "brandnew" one (but also older ones)
> > > > > > http://home.eeti.com.tw/web20/drivers/touch_driver/Linux/2.06.2416/TouchKit-2.06.2410-32b-k26.tar.gz
> > > > > > after making it compile for 2.6.28.2 :)
> > > > > > since there is source code delivered
> > > > >
> > > > > For what it's worth; the version we use from eGalax is
> > > > > 1.0.3.1701. I don't have the hardware here atm, so I can't
> > > > > test an other driver now.
> > > >
> > > > I tried kernel 2.6.23.17 and there the touchscreen is recognized
> > > > using the builtin usbtouchscreen driver
> > >
> > > It also works with 2.6.26.8
> >
> > After comparing the usbtouchscreen.c sources between the different
> > versions I got it working by commenting the follwoing lines
> >
> > ...
> > #ifdef CONFIG_TOUCHSCREEN_USB_EGALAX
> > /* ignore the HID capable devices, handled by usbhid */
> > {USB_DEVICE_HID_CLASS(0x0eef, 0x0001), .driver_info =
> > DEVTYPE_IGNORE}, {USB_DEVICE_HID_CLASS(0x0eef,
> > 0x0002), .driver_info = DEVTYPE_IGNORE}, ...
> >
> > Now the entry in /proc/bus/input/devices is created as in the
> > older versions.
> >
> > So it seems that usbhid is not correctly handling my type
> > of touchscreen if I understand the comment there correctly
> >
>
> So... how do we fix this for real?

Well I am really not an expert in kernel programming :-)
I found out that these lines where added based on this thread from 2008

http://kerneltrap.org/mailarchive/linux-kernel/2008/6/28/2286264/thread

So all I can do is to provide any help in testing if needed

Regards

Max