0

I'm working on a project and we are trying to make a touch-screen work using Qt with Tslib. We already made some previous prototypes and we managed to make them fully functional. But when creating a new, fourth prototype, we got the following message when running the main app:

# QWSTslibMouseHandlerPrivate: ts_open() failed with error: 'No such file or directory'

It was as if something related to Tslib was missing. Now this was strange: the fourth prototype was exactly as the previous one in terms of Linux kernel version, main apps, SD card with libraries used for the Qt application, etc.. Trying to find differences, I finally noticed that in the prototype with the problem, the file /dev/input/event0 is missing; in fact, the "imput" folder is not even created, while in the working prototypes both the imput folder as well as the event0 file exists (and a link to the last one under the name "touscreen0").

Since this folder and files are supposed to be created by the Linux kernel during boot, it would seem like if the touch-screen device is not being recognized and so Linux don't create anything related to input during startup (we checked the Linux kernel and verified that the touch-screen driver for our hardware is being included).

After tons of research throughout the web I found this post where the user mentions a "mdev -s" which seems to be the responsible for detecting the touch-screen. I couldn't find it to run it, but most importantly why would it be the case that "mdev -s" creates event0 in some systems but not in others?

Any tips and suggestions on how I could solve this problem of the missing event0 are welcome.

1

So after some tries, we managed to solve the problem.

First, it is interesting to notice that two error messages were noticed that appeared during the linux boot:

tps6507x 1-0048: Read from reg 0xd failed
(...)
tps6507x 1-0048: failed to register tps6507x-pmic regulator

tps6507x is the touch-screen driver used. So what we noticed was that even the driver was failing to start, definitivaly not a Qt's fault. So one of or technicians end up detecting some hardware differences between the working hardware and the problematic ones: some resistors in key places needed to be removed. It would seem they were stopping the system from detecting the touch-screen hardware. After that, it started to work.

  • For future reference: Devices in /dev are created by udev, which in turn reacts to events delivered by the kernel drivers. /dev/input devices are fairly standardized, so there's a high probability the driver is having problems if the file is missing in that location, even if it doesn't complain in the syslog (which of course it should). – dirkt Jan 7 '17 at 9:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.