Сборка Tslib для Qt.
Сборка
Клонируем репозиторий tslib:
$ cd /home/user/beaglebone/
$ mkdir tslib
$ cd tslib
$ git clone https://github.com/kergoth/tslib.git .
Устанавливаем дополнительные пакеты для создания файлов конфигурации:
$ cd /home/user/beaglebone/tslib/
$ sudo apt-get install autoconf automake gettext libtool
$ ./autogen.sh
Создаём скрипт сборки:
$ cd /home/user/beaglebone/tslib/
$ touch build.sh
$ chmod +x build.sh
$ nano build.sh
С текстом:
export CC=/home/user/beaglebone/gcc-linaro-arm-linux-gnueabi-4.8-2014.03_linux/bin/arm-linux-gnueabihf-gcc
export CXX=/home/user/beaglebone/gcc-linaro-arm-linux-gnueabi-4.8-2014.03_linux/bin/arm-linux-gnueabihf-g++
export CONFIG_SITE=arm-linux.autogen
./configure --build=i386-linux --host=arm-linux --target=arm --disable-inputapi --prefix=/usr/share/tslib-armv7
make
Собираем и устанавливаем:
$ ./build.sh
$ sudo make install
Получаем каталог /usr/share/tslib-armv7, копируем на BeagleBone.
Настройка и калибровка
В /dev/input/ требуется определить, какой из event'ов относится к touchscreen. Можно запустить, например, дамп и понажимать на панель:
debian@beaglebone:~$ sudo cat /dev/input/event1 | hexdump
Либо запросить инфу о каждом event'е, пока не найдётся tsc:
debian@beaglebone:~$ sudo udevadm info -n input/event1 -q path
/devices/ocp.3/44e0d000.tscadc/tsc/input/input1/event1
Теперь надо создать симлинк к этому event'у и разрешить доступ к нему. Создаём в каталоге /etc/udev/rules.d файл 80-touchscreen.rules с одной строкой:
KERNEL=="event1", SUBSYSTEM=="input", SUBSYSTEMS=="input", ATTRS{name}=="ti-tsc", SYMLINK+="input/touchscreen", MODE="0644"
и перезагружаемся. Должен появиться /dev/input/touchscreen с правами на чтение для всех. Инструкция по udev. В Debian udevinfo заменяется на udevadm info.
Создаём в Debian скрипт калибровки:
debian@beaglebone:~$ mkdir /home/debian/test
debian@beaglebone:~$ cd /home/debian/test
debian@beaglebone:~/test$ nano ./calibr.sh
С текстом:
#!/bin/sh
export TSLIB_TSDEVICE=/dev/input/touchscreen
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal2
/usr/share/tslib-armv7/bin/ts_calibrate
#/usr/share/tslib-armv7/bin/ts_test
Закрываем редактор. Запускаем скрипт калибровки:
debian@beaglebone:~/test$ chmod +x ./calibr.sh
debian@beaglebone:~/test$ sudo ./calibr.sh
В результате будет создан файл /etc/pointercal2 с данными калибровки. После калибровки, если в скрипте заменить ts_calibrate на ts_test, можно проверить работу touchscreen.