Difference between revisions of "Tslib"

From ArmadeusWiki
Jump to: navigation, search
m (Preliminaries checks)
m (beautifying)
Line 53: Line 53:
 
===Config file===
 
===Config file===
 
* To work, Tslib needs a valid config file ''/etc/ts.conf'':
 
* To work, Tslib needs a valid config file ''/etc/ts.conf'':
 +
<pre class="apf">
 
  # cat /etc/ts.conf
 
  # cat /etc/ts.conf
 
   
 
   
Line 60: Line 61:
 
  module dejitter delta=100
 
  module dejitter delta=100
 
  module linear
 
  module linear
 +
</pre>
  
 
===Envt variables===
 
===Envt variables===
 
* You should define some ENVT variables too:
 
* You should define some ENVT variables too:
 +
<pre class="apf">
 
  export TSLIB_TSDEVICE=/dev/input/event0
 
  export TSLIB_TSDEVICE=/dev/input/event0
 
  export TSLIB_TSEVENTTYPE=INPUT
 
  export TSLIB_TSEVENTTYPE=INPUT
 
  export TSLIB_CONFFILE=/etc/ts.conf
 
  export TSLIB_CONFFILE=/etc/ts.conf
 
  export TSLIB_CALIBFILE=/etc/pointercal
 
  export TSLIB_CALIBFILE=/etc/pointercal
 +
</pre>
  
 
* you can add them to your ''/etc/profile'':
 
* you can add them to your ''/etc/profile'':
 +
<pre class="apf">
 
  # vi /etc/profile
 
  # vi /etc/profile
 +
</pre>
  
 
===Device file creation (if not already existing)===  
 
===Device file creation (if not already existing)===  
 
* ''/dev/input/event0'' is created from the infos got from:
 
* ''/dev/input/event0'' is created from the infos got from:
 +
<pre class="apf">
 
  # cat /sys/class/input/event0/dev
 
  # cat /sys/class/input/event0/dev
 
  13:64
 
  13:64
Line 83: Line 90:
 
  crw-r--r--    1 root    root      13,  64 Jan  1 00:39 event0
 
  crw-r--r--    1 root    root      13,  64 Jan  1 00:39 event0
 
  #
 
  #
 +
</pre>
  
 
===Calibration===
 
===Calibration===
 
* ''/etc/pointercal'' is created when running Tslib calibration tool:
 
* ''/etc/pointercal'' is created when running Tslib calibration tool:
 +
<pre class="apf">
 
  # /usr/bin/ts_calibrate
 
  # /usr/bin/ts_calibrate
 +
</pre>
 
[[Image:Tslib_calibrate.png]]
 
[[Image:Tslib_calibrate.png]]
  

Revision as of 17:18, 15 June 2009

Library which provides a common interface to touchscreen and allows touchscreen events filtering or calibrating...

Compiling

Preliminaries checks

Warning Warning:

This part is required on: Ubuntu 6.04, KUbuntu 6.10 or more
This part is normaly not required on following distribution: KUbuntu 9.04


  • Be sure to have libtool package installed (tested with 1.5.22-4 & 1.5.24-1 versions).
    Otherwise you will have following errors:
configure.ac:25: error: possibly undefined macro: AC_DISABLE_STATIC
     If this token and others are legitimate, please use m4_pattern_allow.
     See the Autoconf documentation.
configure.ac:26: error: possibly undefined macro: AC_ENABLE_SHARED
configure.ac:27: error: possibly undefined macro: AC_LIBTOOL_DLOPEN
configure.ac:28: error: possibly undefined macro: AC_PROG_LIBTOOL
  • Be sure to have automake-1.6 or higher package installed (tested with 1.7 version -> working, 1.9.6 -> not working & 1.10 -> working !).
    After automake package installation don't forget to update your /etc/alternatives/automake and /etc/alternatives/aclocal symlinks (tested on Ubuntu).
 $ sudo ln -sf /usr/bin/automake-1.7 /etc/alternatives/automake
 $ sudo ln -sf /usr/bin/aclocal-1.7 /etc/alternatives/aclocal
  -->
 lrwxrwxrwx 1 root root 20 2007-06-27 21:43 /etc/alternatives/aclocal -> /usr/bin/aclocal-1.7
 lrwxrwxrwx 1 root root 21 2007-06-27 21:39 /etc/alternatives/automake -> /usr/bin/automake-1.7
Warning Warning:

The following part is MANDATORY:


  • In Buildroot, if you don't have configured the C++ cross-compiler yet (done in default configuration), then:
 $ make menuconfig
Toolchain Options  --->
    [*] Build/install c++ compiler and libstdc++?
    [*] Build/install a shared libgcc?

Config

  • After all these checks, activate libts package in Buildroot configuration:
$ make menuconfig

Menuconfig package.png

Menuconfig package graphics.png

$ make
  • Or compile it directly:
$ make tslib

Configuration details (some are automatically done)

Config file

  • To work, Tslib needs a valid config file /etc/ts.conf:
 # cat /etc/ts.conf
 
 module_raw input
 module pthres pmin=1
 module variance delta=30
 module dejitter delta=100
 module linear

Envt variables

  • You should define some ENVT variables too:
 export TSLIB_TSDEVICE=/dev/input/event0
 export TSLIB_TSEVENTTYPE=INPUT
 export TSLIB_CONFFILE=/etc/ts.conf
 export TSLIB_CALIBFILE=/etc/pointercal
  • you can add them to your /etc/profile:
 # vi /etc/profile

Device file creation (if not already existing)

  • /dev/input/event0 is created from the infos got from:
 # cat /sys/class/input/event0/dev
 13:64
 # mkdir /dev/input
 # cd /dev/input/
 # mknod event0 c 13 64
 # ls -al
 drwxr-xr-x    2 root     root            0 Jan  1 00:39 .
 drwxr-xr-x    5 root     root            0 Jan  1 00:39 ..
 crw-r--r--    1 root     root      13,  64 Jan  1 00:39 event0
 #

Calibration

  • /etc/pointercal is created when running Tslib calibration tool:
 # /usr/bin/ts_calibrate

Tslib calibrate.png

Testing it

# /usr/bin/ts_test

Tslib test.png

Adding Tslib support to SDL

SDL is by default compiled with Tslib support in current Buildroot distribution. You just have to make SDL knows the presence of Tslib when launching your application:

export SDL_MOUSEDRV=TSLIB
export SDL_MOUSEDEV=$TSLIB_TSDEVICE
export SDL_NOMOUSE=1

To have an example of a SDL application using Tslib, look at target/demos/backlight_control/ sources.

Adding Tslib support to Qt

Work in progress...

Links