old touchscreen drivers

Peter Hutterer peter.hutterer at who-t.net
Fri Jul 7 00:31:47 UTC 2017


On Thu, Jul 06, 2017 at 04:08:52PM -0600, Ben Hildred wrote:
> Greetings and apologies,
> 
> In the real world of industrial computing you sometimes need to do some odd
> things, specifically in a case of retro-computing meets state of the art I
> am specifying replacement hardware for a large machine with multiple user
> interface console. This is fun in that each includes of an X server and a
> touch screen and I need to maintain compatibility in both ways,
> specifically I need for the new X server to work with the old touch screen
> and the old X server to work with the new touchscreen. The challenge that I
> am working with is that at the moment is that the old touchscreen uses the
> citron drivers, which
> https://www.x.org/archive/individual/driver/xf86-input-citron-2.2.2.tar.gz
> looks to be the most recent version (if i am wrong and there is a more
> recent, please let me know) and does not compile with more recent x
> servers. when I try to compile it against
> http://ftp.us.debian.org/debian/pool/main/x/xorg/xorg-dev_7.7+19_all.deb i
> get the following error (among many others):
> 
> citron.h:582:2: error: unknown type name 'LocalDevicePtr'
>   LocalDevicePtr local;   /* Pointer to local device */
> 
> Searches point to this being an issue with changes introduces with ABI 12.
> Since I have done no xserver programming I don't know where to start
> updating this driver If you could point me to a abi changelog and
> documentation for the current version, I can try to get this working.

Basically: there's no documentation for the server->input driver API. It's
not a stable interface and the API/ABI isn't one a such anyway since the
whole of the server is exposed to the driver and vice versa. So
unfortunately this means you have to go through and handle the errors
one-by-one.

This first one at least is an easy one, you can do a simple
s/LocalDevicePtr/InputInfoPtr and that's that. But a quick browse of the
sources looks like you're in for a treat, quite a few changes have happened
since. I recommend looking at the evdev or libinput driver because the
scaffolding of those is still the easiest to compare to any other driver so
at least you know what to copy.

Give a thought to writing the citron driver as proper kernel driver. Then
you can use evdev or libinput as X driver and not worry about that bit
anymore. Maybe there's a driver for it in the kernel already but I don't
know.

Cheers,
   Peter


More information about the xorg mailing list