Re: XFree86 elographics_drv.o Correll Touch 5000

Todd Weaver <[email protected]>
Newsgroups gmane.comp.xfree86.devel
Message-ID <[email protected]>
In response to myself...

1) There isn't a HOWTO write a XFree86 Driver that I could find.

2) There is samples in the source code, as well as similar drivers
   for touchscreen needs.

What I did was:

get the source code for xserver-xfree86
on debian:
    cd /usr/local/src
    apt-get source xserver-xfree86

then build the source in it's entirety
(so all the libraries and dependencies are build)
    cd /usr/local/src/xfree86-4.3.0.dfsg.1/build-tree/xc-xserver-xfree86-dbg
    make World
    (wait...)

then go find the example driver you want to start hacking up
    cd /usr/local/src/xfree86-4.3.0.dfsg.1/build-tree/xc-xserver-xfree86-dbg/programs/Xserver/hw/xfree86/input/elographics

make a change to the source file to see your code changes work...
    (I would suggest changing something that logs to screen, or the logfile)...
    vi xf86Elo.c
    make
    cp elographics_drv.o /usr/X11R6/lib/modules/input/

make sure you're specifying that driver in XF86Config-4
    Section "InputDevice"
        ...
        Driver     "elographics"
        Option     "Device"          "/dev/ttyS0"
        ...
    EndSection

Start your X server...
    startx

See your change (or see the logging occur).

If that works.
You can now make changes to the source code, and see the changes.

###

NEXT UP: writing your driver for your hardware.

1) Request the Hardware Program manual from the manufacturer.
   (in my case it was ELO that bought out CarrollTouch)

2) Write a simple C script that communicates to the device,
   following the instructions from the Program manual.
   (this was used to quickly debug serial device communication)

3) Incorporate your working C script in the appropriate places
   into your x driver modified above.

4) Possibly change the name of the driver to something
   that resembles your hardware.

5) Submit the code for review, or addition.

###

Which brings me to a question,
HOW DO I submit my code for review or addition?

Thanks!

On Mon, Mar 07, 2005 at 03:31:24PM -0800, todd wrote:
> I have:
>     Correll Touch 5003-0768-01 (Correll Touch was bought out by Elo)
>         -- an infra-red touchscreen wrapper.
>     XFree86 Version 4.3.0.1 (Debian 4.3.0.dfsg.1-10 20041215174925)
> 
> The linux docs for Elo:
>     http://www.elotouch.com/support/linux.asp
>     "Linux drivers for Elo touchscreens are available in the public
>      domain, typically on Linux installation CDs and various FTP
>      sites such as www.xfree86.org. These Linux drivers are compatible
>      with Elo AT4 2215, AccuTouch E271-2210, IntelliTouch E281-2310,
>      IntelliTouch 2500S, and CarrollTouch 4000S controllers."
> 
> The problem:
>     the eloprahics_drv.o spews "Dropping one byte in an attempt to synchronize"
>     when used.
> 
> Troubleshooting done:
>     I have done a "od -h -w10 </dev/ttyS0" from the console,
>     I have not received any characters when screen is touched,
>     but I do see the cursor blinking rapidly, if I unplug the serial cable
>     the blinking slows to regular console blinking pace.
> 
>     I have also plugged in an old serial mouse to /dev/ttyS0 and
>     validated that cat /dev/ttyS0 works fine, so I know the port is /dev/ttyS0.
> 
> TODO (Solution):
>     Write/modify a driver to get this touchscreen working.
> 
> HOW:
>     I haven't seen any documentation on the best practices for writing
>     a XFree86 Driver (or modifying one).
> 
>     Is there a step-by-step "HOWTO write a XFree86 Driver"?
> 
> Thanks!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.