mini2440. Séance 6 : configuration et compilation de la bibliothèque tslib pour l'écran tactile

Salut.

Pour cette séance 6 de mise en oeuvre de la carte mini2440, nous allons voir comment configurer et compiler la bibliothèque tslib pour l'écran tactile de la carte mini2440. Nous avons ici utilisé un écran 7" de type A70.

On installe dans un premier temps les sources de tslib :
$ cd mini2440
$ git clone http://github.com/kergoth/tslib.git

On  procédera comme précédemment maintenant. On configurera tslib avec le shell script goconfig :

$ cd tslib
$ cat goconfig
./autogen.sh
./configure --host=arm-none-linux-gnueabi --prefix=/usr/local/tslib --enable-static --enable-shared
$ ./goconfig

On notera que l’installation ne se fera pas directement dans le système de fichiers root sous root_fs/ mais dans le répertoire absolu /usr/local/tslib/ du PC hôte. Il faut procéder comme cela car Qt/embedded aura codé en dur ces chemins absolus et l’on ne peut pas avoir un chemin en /home/… comme précédemment sous peine de non fonctionnement.

On compilera tslib avec le shell script go :

$ cat go
make
$ ./go

On installera tslib avec le shell script goinstall sous /usr/local/tslib/ du PC hôte en étant superutilisateur :

$ cat goinstall
make install
$ su
# ./goinstall

tslib sera installé dans le système de fichiers root sous root_fs/ :

$ cd mini2440
$ su
# cp -r /usr/local/tslib/* ./root_fs/usr/local/tslib/
On créera un fichier ts.conf dont le contenu est le suivant que l'on mettra sous ./root_fs/usr/local/tslib/etc :
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
Il faut au préalable configurer des variables d’environnement pour tslib. On placera ces variables d’environnement dans le fichier root_fs/etc/init.d/rcS :
# Set tslib environment
export TSLIB_TSEVENTTYPE=INPUT
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts

export LD_LIBRARY_PATH=/usr/local/tslib/lib:/usr/local/qt/lib:/lib:/usr/lib

if [ -f /etc/pointercal ]; then
  echo "Touchscreen already calibrated..."
else
  echo "Calibrating Touchscreen..."
  /usr/local/tslib/bin/ts_calibrate
fi
On placera aussi ces variables d’environnement dans le fichier root_fs/etc/profile pour qu’elles soient renseignées quand on accède au shell Linux de la carte mini2440 :
PATH=/usr/local/tslib/bin/:$PATH 
HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATH HOSTNAME

# Set tslib environment
export TSLIB_TSEVENTTYPE=INPUT
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts

export LD_LIBRARY_PATH=/usr/local/tslib/lib:/usr/local/qt/lib:/lib:/usr/lib
On mettra à jour le système de fichiers root de la carte mini2440 soit en NAND Flash, soit sur la carte SD.
On reboote la carte. Si on lance la commande ts_calibrate, on voit apparaître la fenêtre suivante :
# ts_calibrate

calibrate.png

Il faut noter que l'on utilise ici le framebuffer qui a été validé lors de la configuration du noyau Linux...

Prochaine séance : configuration et compilation de Qt/embedded pour la carte mini2440...

++

Sources :

Vus : 2165
Publié par Eddy33 : 81