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 inputIl 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 :
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
# Set tslib environmentOn 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 :
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
PATH=/usr/local/tslib/bin/:$PATHOn mettra à jour le système de fichiers root de la carte mini2440 soit en NAND Flash, soit sur la carte SD.
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 reboote la carte. Si on lance la commande ts_calibrate, on voit apparaître la fenêtre suivante :
# ts_calibrate
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 :