X / uinput access errors


By default the driver will post touch data via uinput if the uinput device is found.

If it not found the driver will use the X interface to post touch data.

If touch is working in our test program, thus proving the driver is loaded and receiving data from the touch device and the UPDD API is working but touch is not working in the system then one or both of the system interfaces are failing.

In the driver's debug log you can see if the driver has found the uinput device and, if using X, if there is any X access error.

In the log examples below uinput has not been found on any of the expected paths and X has returned an error (in this particular case there was no cursor movement but updd test was fine):

Cannot find uinput

This log extract shows the driver trying, and not succeeding, to find the uinput device at all 'known' locations:

2018/04/24-12:18:15: DBG: Attempting to open virtual device @:/dev/uinput
2018/04/24-12:18:15: DBG: Attempting to open virtual device @:/dev/input/uinput
2018/04/24-12:18:15: DBG: Attempting to open virtual device @:/dev/misc/uinput

Had it been found you would see the message 'Opened virtual device @:[Pathname]'

If uinput path is different from the above default locations you can set the path with the command as described here.
i.e. /opt/updd/upddenv/ /opt/updd/upddutils nodevice set uinput.virtual_input_path [pathname]

Error reported from X when we try to open a connection to X
2018/04/24-12:18:23: ERR: Cannot get root window of screen

This shows the error returned from X when accessed by the driver.

In our software, UPDD Daemon is used to set up permission to access X such that this type of error should not occur.

If, for whatever reason, UPDD Daemon is not running, or there is a possibility this permission has not been set then it can be manually set as described here.

Defining interface to use
The device setting active_touch_interface can be used to explicitly set the interface to use:

i.e. upddutils set active_touch_interface xtouch or uinput

This is useful to test if either of the interfaces is working.