View previous topic :: View next topic |
Author |
Message |
dwernle n00b
Joined: 07 Mar 2005 Posts: 7
|
Posted: Tue Mar 08, 2005 3:50 pm Post subject: How to get a Handler to a Device .... elo touchscreen |
|
|
if i do a
cat /proc/bus/input/devices
i get my inputdevices, the problem is that i have no idea how to use this one
Code: |
I: Bus=0003 Vendor=04e7 Product=0007 Version=0102
N: Name="Elo TouchSystems, Inc. Elo TouchSystems IntelliTouch 2500U"
P: Phys=usb-0000:00:1d.1-1/input0
H: Handlers=
..:
|
does anyone know how to get this touchscreen running |
|
Back to top |
|
|
sharmay n00b
Joined: 01 Apr 2004 Posts: 27
|
Posted: Fri Mar 18, 2005 4:44 pm Post subject: Any luck ? |
|
|
Hi,
I have same touch screen but I am also not able to make it work. Did you had any luck ?
Thanks |
|
Back to top |
|
|
dwernle n00b
Joined: 07 Mar 2005 Posts: 7
|
Posted: Tue Mar 29, 2005 8:56 am Post subject: sorry |
|
|
No, elo doesn't think they need working drivers for 2.6 and for 2.4 they are ..... so if you have more than enough money you can give them the box and they will try to compile a driver for you, but their prices are a horror -> i will never buy a elo for a customer of us as touchscreens from other vendors work without greater problems. |
|
Back to top |
|
|
Maedhros Bodhisattva
Joined: 14 Apr 2004 Posts: 5511 Location: Durham, UK
|
Posted: Tue Mar 29, 2005 12:01 pm Post subject: |
|
|
Moved from Installing Gentoo. _________________ No-one's more important than the earthworm. |
|
Back to top |
|
|
dol-sen Retired Dev
Joined: 30 Jun 2002 Posts: 2805 Location: Richmond, BC, Canada
|
Posted: Thu Oct 20, 2005 8:20 pm Post subject: |
|
|
I don't know if you've seen, but there are more touchscreen drivers in the kernel now. As of 2.6.12 there is some new elo drivers in the kernel. I have not tried them yet, but it is suppose to handle all the elo protocols. _________________ Brian
Porthole, the Portage GUI frontend irc@freenode: #gentoo-guis, #porthole, Blog
layman, gentoolkit, CoreBuilder, esearch... |
|
Back to top |
|
|
garion911 Tux's lil' helper
Joined: 04 Jun 2002 Posts: 88
|
Posted: Fri Oct 21, 2005 7:04 am Post subject: |
|
|
I have no idea how old your touch screen is, but I had a fairly old ELO USB touchscreen (no clue on the model..).. I have since gotten rid of it (the LCD on it died a beautiful plasma effect death..)
What I recall from getting it to work was that I had to compile in the event interface and USB event support... Then there was a rather obscure X driver you had to compile that worked off the /dev/input/event or something like that...
I --may-- be able to dig up the code for that driver from some old HD's I have laying around if needbe.. But maybe this is enough clues to get ya going..
Please keep in mind that its been over two years since I last setup that LCD, so my memory may be fuzzy... |
|
Back to top |
|
|
garion911 Tux's lil' helper
Joined: 04 Jun 2002 Posts: 88
|
Posted: Fri Oct 21, 2005 7:21 am Post subject: |
|
|
Some more trips down memory lane tell me that yours is the same model as mine was..
Some more notes: You do not need a specific kernel driver.. I got mine working with the basic stuff in 2.6 (fairly sure I was using 2.6 at the time, but definitly pre-UDEV)..
THere's a elographics_drv.o file in your xorg setup.... You need to make a device in your xorg.conf (I think I was using XFree at the time, not sure) similar to this:
Code: |
Section Inputdevice
Identifier touchscreen1
Driver elographics
Option Device /dev/ttyS0
Option AlwaysCore
Option screenno 0
Option MinimumXPosition 600
Option MaximumXPosition 3600
Option MinimumYPosition 600
Option MaximumYPosition 3600
Option UntouchDelay 3
Option ReportDelay 1
EndSection
|
Only using the event stuff I said in my previous message.. |
|
Back to top |
|
|
dol-sen Retired Dev
Joined: 30 Jun 2002 Posts: 2805 Location: Richmond, BC, Canada
|
Posted: Fri Oct 21, 2005 3:23 pm Post subject: |
|
|
No, it is not the same as yours. The 2 I got have the former standard serial interface. I have been able to get it sort-of working using the xorg/xfree86 driver. The only problem is the map size between the touchscreen and the display screen. I have to treat the touchscreen like it is a small touch mosepad and restrict touches to about 1/5th the screen size in the lower left corner.
That was after callibrating with the dos utilities. I have not tried the linux callibrating utility I found in one of the linux_public.zip files I found (not sure where I found that one). _________________ Brian
Porthole, the Portage GUI frontend irc@freenode: #gentoo-guis, #porthole, Blog
layman, gentoolkit, CoreBuilder, esearch... |
|
Back to top |
|
|
evilben Tux's lil' helper
Joined: 14 Jun 2004 Posts: 128 Location: GA, USA
|
Posted: Tue Jan 10, 2006 10:07 pm Post subject: |
|
|
Did you ever get the serial version to work?
Thanks
Ben |
|
Back to top |
|
|
dol-sen Retired Dev
Joined: 30 Jun 2002 Posts: 2805 Location: Richmond, BC, Canada
|
Posted: Wed Jan 11, 2006 2:25 am Post subject: |
|
|
I dever had time to work on it some more, Sorry I still have them, but things got very busy with our small business and my full time day job.
I got your private messages. Some thing to consider about the older touchscreens are that they are not very bright and have as a result more of a green color due to the touchscreen. I even took one of them apart to check and clean all surfaces, but that was not the problem. LCD monitors from the past few years have much brighter displays. I took the touchscreen and placed it in front of my 17 in. LCD monitor and it was much better than the old one. I'll work on it some more when I get some time. It may be a month or two though. BTW I got both for $50, including 1 monitor power supply, no power supplies for the touchscreens. I made an adapter cable to use the computer's power supply. _________________ Brian
Porthole, the Portage GUI frontend irc@freenode: #gentoo-guis, #porthole, Blog
layman, gentoolkit, CoreBuilder, esearch... |
|
Back to top |
|
|
evilben Tux's lil' helper
Joined: 14 Jun 2004 Posts: 128 Location: GA, USA
|
|
Back to top |
|
|
tbart Apprentice
Joined: 31 Oct 2004 Posts: 151
|
Posted: Thu Aug 24, 2006 11:18 am Post subject: |
|
|
Hi there!
I've got some old elo serial touchschreen, too. it's an Accutouch P/N 856093-000 (discontinued, replacement: E77225-000), i can't see the controller itself and don't want to open the TFT atm; is there a way to read out information about the controller via the interface?)
EDIT: Seems to be an AccuTouch 2210 controller, as there do not seem to be other serial controllers for Accutouch panels. Could it be that there is a non-elo controller with an elo touchpanel?
when dumping with od -h -w10, the "typical" 5455 is NOT always at the beginning, seems like i do not have a 10byte protocol or some bytes get lost? i read somewhere that also other protocols exist with less bytes per packet
It sorta works in X with the elographics driver without anything special in the kernel. but
1) the pointer's movement is only somehow related to my finger's movement (very weird movements; it's not calibrated yet, but moving down not always moves the cursor somewhere down)
2) it stops to work after some minutes, no serial data gets received anymore (even raw dumping from /dev/ttyS1 does not give my anything)
i have to unplug the monitor (which includes the touchscreen+controller) to get data again...
seems like a faulty controller, what do you think?
or is it the wrong driver?
How shall the in-kernel driver work? should it provide an event interface? where can one find documentation? did anyone try elo's uniform serial driver? or UPDD?
http://www.touch-base.com/main.asp?item=20
(btw, this one seems one interesting bit of SW to unify these different drivers/architectures/etc)
regarding elo not having drivers for 2.6:
http://www.elotouch.com/support/dnld.asp#linux
they at least say it's for 2.6, too and provide instructions for compiling it for 2.6. It's even open source! (both the Unified Serial Driver and the public driver)
can anyone please point me into the right direction?
tia!
th |
|
Back to top |
|
|
tbart Apprentice
Joined: 31 Oct 2004 Posts: 151
|
Posted: Fri Aug 25, 2006 9:46 pm Post subject: |
|
|
ok solved!
works now. this should even answer the initial question...
take elos own, this works flawlessly.
http://www.elotouch.com/files/unrestricted_drivers/Unified_Serial_v2.zip
just follow the instructions.
plz test this procedure so others know it works (or not!)
1) build driver your own; uncomment the KER define in main.c
2) Code: | cp makefile-2.6 Makefile |
3) I had to modify the Makefile; include directory was missing; this is how it had to look on my machine
Code: |
obj-m := elok_s.o
elok_s-objs := main.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
CFLAGS := $(CFLAGS) -I/usr/include
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
|
4)
5) Code: | cp elok_s.ko /lib/modules/`uname -r`/kernel/drivers/input/touchscreen/ |
6) Code: | chmod u+x eloser && cp eloser /usr/bin |
is /usr/bin a good place for the loser (sorry i always read e-loser, sounds somewhat hip ;->; should be elo-ser i guess)
7) put this rather ugly initscript into your /etc/init.d as elo and
Code: | chmod u+x /etc/init.d/elo |
it.
There are still missing the right eend things i don't really understand..
Code: |
#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
depend() {
# I guess so... coldplug should provide boot-time attached USB-serial converters, hotplug those attached later
# is this right?
need localmount coldplug hotplug
}
start() {
ebegin "Loading elo module and creating /dev nodes"
# Avoid being interrupted by child or keyboard
if [ ! -f /lib/modules/`uname -r`/kernel/drivers/input/touchscreen/elok_s.ko ]
then
eerror "Please compile and copy over the kernel module first"
return 1
fi
if [ ! -f /usr/bin/eloser ]
then
eerror "Please chmod u+x and copy over eloser first"
return 1
fi
trap "echo" SIGINT SIGSEGV SIGQUIT SIGTERM
set +e
# this the loadelo script; i put it right in here... this all seems rather ugly to me..
# however always generating the dev files might be good idea for udev people who
# do not save a dev tarball
# what the heck does it do?
module="elok_s"
mode="664"
elorspfifo="elo/rsp_fifo"
elocmdfifo="elo/cmd_fifo"
elodata="input/elo_ser"
rm -f /dev/${elodata}
rm -f /dev/${elocmdfifo}
rm -f /dev/${elorspfifo}
test -d /dev/elo || mkdir /dev/elo
/sbin/modprobe $module
mkfifo /dev/$elorspfifo
mkfifo /dev/$elocmdfifo
major=`grep $elodata /proc/devices | awk "{print \\$1}"`
if [ $major ]
then
mknod /dev/$elodata c $major 0
chmod $mode /dev/${elodata}
chmod $mode /dev/${elocmdfifo}
chmod $mode /dev/${eloconfig}
fi
# how do you put configuration somewhere into /etc and source it here?
/usr/bin/eloser ttyUSB0
eend $?
}
stop() {
ebegin "Unloading elo module"
# I can't think of anything else that's sensible here...
# removing all the /dev entries seems rather senseless as the start function
# has to do it anyway... right?
/sbin/modprobe -r elok_s
eend $?
}
restart() {
svc_stop
svc_start
}
|
8) Code: | rc-update add elo default |
9) edit your /etc/X11/xorg.conf
Code: |
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "elo1"
EndSection
Section "InputDevice"
Identifier "elo1"
Driver "elo"
Option "Device" "/dev/input/elo_ser"
Option "AlwaysCore"
EndSection
|
10) that should do the trick!
now i'd need some specialists...
1) why the heck does the elographics driver of (modular or not) xorg-x11 not work?
and how could we improve it so that we do not need a startup script and all this interesting /dev fifos a.s.o?
i guess eloser only somehow attaches the /dev/input thing to the pipes, could the open source driver included in xorg do the same thing? why can this driver work for me and elographics not? my hardware must be ok, and there is just this one serial controller. did ne1 ever have success with elographics?
2) please correct/improve my initscript
3) could ne1 do an ebuild?!
if you have got questions, ask. i should be able to answer them.
could dwernle possibly rename the topic to something more general, i.e. the grand elo support thread?
btw i think the usb people could possible reuse parts of my script if elo did the usb drivers somewhat similar... did not look at it.
i would be glad if we could get this running cleanly as touchscreen support seems really bad atm.
any info about how the driver shipped with the kernel sources should work? is this the same as the thing you compile?
we need more info, compiled at one place, so please help out if you can.
thank you all!
PS: we could do a wiki thing when this is ready and add useful applications once this runs (osd keyboard for login will be the next thing i need)
th |
|
Back to top |
|
|
oracleguy n00b
Joined: 13 Sep 2006 Posts: 22
|
Posted: Wed Sep 13, 2006 10:23 pm Post subject: |
|
|
I was able to get my serial based elo touchscreen to mostly work without too much trouble with the 2.6.16 kernel.
I compiled the elo touchscreen serial support into the kernel. Then when I installed Xorg 7.0 I added the elographics flag into the INPUT_DEVICES in the make.conf
Then when I configured X, I set it up similar to garion911 in the xorg.conf file. And the touchscreen worked right away. The problem I am having though is getting the thing calibrated. I had it working on an older Gentoo system but that one died. The calibration program that is included with the elo linux drivers seems to have been written for XFree86 and I think it was only after many tries and the grace of god I got it to give me the calibration information. I can get the calibration program to run but it doesn't respond when I press the target icons. The monitors in that I can touch it and it will move and click the mouse but the calibration is off. |
|
Back to top |
|
|
tbart Apprentice
Joined: 31 Oct 2004 Posts: 151
|
Posted: Fri Sep 15, 2006 9:04 am Post subject: |
|
|
this is interesting...
1) you do not need the in-kernel support if you use the X11 module (at least i think so... could you verify this?)
you need something called inputattach to get an event interface for the in-kernel driver or module. at least you do not get a device or even a dmesg message when loading the module...
2) i don't understand why the X11 module does not work for me when apparently the hardware is ok (b/c it works fine with elo's drivers ... btw: the calibration tool elova packaged with their driver needs to interface with their driver and their eloser program so you won't be lucky using it for calibrating the X11 driver... elo says you can get the calibration data you need to enter into your xorg.conf by booting a DOS disk and using some calibration tool; see http://www.elotouch.com/Support/linux.asp)
X11's driver somewhat works for some time but the movement of my finger and that of the cursor do not really correlate.. after 1 minute or so it stops working... this is weird.
elo's driver however isn't that good either because it causes segmentation faults, memory leaks, kernel oopses and powerdown issues (originating in the problems to unload the modules and stop the service..)
possibly my initscript is faulty, i don't know...
regarding the keeping of calibration data with elo's driver, I also found something:
http://www.elotouch.com/support/webtech/linux_elo_cal.asp
suggestions are welcome!
th |
|
Back to top |
|
|
ozzy n00b
Joined: 02 Sep 2004 Posts: 5 Location: Serbia
|
|
Back to top |
|
|
Trevoke Advocate
Joined: 04 Sep 2004 Posts: 4099 Location: NY, NY
|
Posted: Wed Oct 24, 2007 3:37 pm Post subject: |
|
|
tbart, a correction on step 1:
a) uncomment #define KER in main.c
b) comment #include <ctype.h> in elocontrol.h
c) line 53 and 55 need to be changed from:
MODULE_PARM(debug, "i"); to
module_param(debug, int, 0);
Similar change for line 55.
That's all for now, will let you know how I get on with the rest. _________________ Votre moment detente
What is the nature of conflict? |
|
Back to top |
|
|
ovoskeuiks n00b
Joined: 28 Oct 2003 Posts: 3
|
Posted: Wed Jan 30, 2008 9:45 pm Post subject: |
|
|
You can calibrate the MinX/Y MaxX/Y using the debug from the elographics driver
Set the debug level to 5 using:
Option "debuglevel" "5"
Restart X
Open a terminal and get a 'live' feed of the Xorg log using
tail -f /var/log/Xorg.0.log
Touch a corner of your touch screen and you should see something like following:
Entering ReadInput
Entering xf86EloGetPacket with checksum == 170 and buffer_p == 0
buffer_p is 0, Trying to read 10 bytes from link
Read 10 bytes
0x55-->0xFF 0x54-->0x53 0x84-->0xD7 0x35-->0xC 0x0-->0xC 0xB1-->0xBD 0xA-->0xC7 0xFF-->0xC6 0x0-->0xC6 Expecting checksum 198, got 198
EloConvert Before Fix: Screen(0) - x(-1222544213), y(0)
EloConvert: Screen(0) - v0(53), v1(2737)
EloConvert: Screen(0) - x(-311), y(683)
EloConvert During Fix: Screen(0) - x(-311), y(683)
EloConvert After Fix: Screen(0) - x(-311), y(683)
EloConvert: Screen(0) - v0(53), v1(2737)
EloConvert: Screen(0) - x(-311), y(683)
TouchScreen: x(53), y(2737), Release
The v0 and v1 are the raw X and Y values from the touchscreen, simply find the minimum and maximum X and Y values and put them into your xorg.conf file here is my InputDevice section for reference:
Section "InputDevice"
Identifier "touchscreen"
Driver "elographics"
Option "Device" "/dev/ttyUSB0"
Option "BaudRate" "9600"
Option "StopBits" "1"
Option "DataBits" "8"
Option "Parity" "None"
Option "Vmin" "10"
Option "Vtime" "1"
Option "FlowControl" "None"
Option "DeviceName" "touchscreen"
Option "MinX" "53"
Option "MinY" "52"
Option "MaxX" "4882"
Option "MaxY" "2737"
Option "ReportingMode" "Raw"
Option "SendCoreEvents" "On"
Option "debuglevel" "5"
Option "ReportDelay" "1"
Option "UntouchDelay" "3"
EndSection |
|
Back to top |
|
|
tbart Apprentice
Joined: 31 Oct 2004 Posts: 151
|
Posted: Sun Nov 13, 2016 1:25 am Post subject: |
|
|
Oh my, I really come back to this thread after these years!
To sum it up, the kernel way of doing stuff is this. No need for proprietary drivers or extra xorg input drivers. Yay!
1) enable the following kernel options
Code: | CONFIG_SERIO_SERPORT (or you'll get line discipline errors with inputattach)
CONFIG_TOUCHSCREEN_ELO |
(and other stuff you need for the serial port, probably some USB-serial adapter drivers)
2) Code: | emerge games-util/joystick x11-apps/xinput_calibrator |
3) Code: | inputattach -elo /dev/ttyUSB0 --daemon | (adapt to your serial port and Elo protocol)
4) Code: | xinput_calibrator &> /etc/X11/xorg.conf.d/99-calibration.conf && vi /etc/X11/xorg.conf.d/99-calibration.conf |
5) Put inputattach into some udev rule if you have a USB adapter to trigger it or create a simple initscript
Done! |
|
Back to top |
|
|
|