ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: Собрать tslib для Tion  (Прочитано 12465 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Ivan

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 88
Собрать tslib для Tion
« : 31 Октября, 2013, 20:06:29 »

Всем доброго времени суток.

Постараюсь максимально подробно описать возникшую проблему, поэтому пост будет длинным.

Процессорный модуль Тион у нас используется не со штатно поставляемой системой, а с emdebian - системой на базе Debian Linux для процессоров arm. Ядро - 2.6.20.21 с патчами для Тиона. КФС находится на usb-флешке.

До недавнего времени у нас не было необходимости использовать в работе touchscreen, сейчас же такая необходимость появилась.

Что было сделано:
1. Из buildroot2009.08 были выдраны исходники tslib и патчи tslib для Тиона. Все патчи были успешно применены, библиотека была кросс-компилирована и установлена в КФС.
2. При сборке ядра был добавлен модуль для тачскрина (который собирается в ep93xx_ts.ko).
3. Конфигурационные файлы для tslib были взяты из стандартной системы Тиона.

Как пытаюсь насторить тачксрин:

1. Загружаю модуль ep93xx_ts.ko
# insmod path/to/module/ep93xx_ts.ko
После этого в /dev появляется новое устройство /dev/ep93xx_ts

2. Настраиваю переменные окружения:
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_TSDEVICE=/dev/ep93xx_ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_FBDEVICE=/dev/fb0

Содержимое ts.conf:
module_raw ep93xx

module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

3. Пытаюсь запустить ts_calibrate. На этом этапе происходят странные вещи - калибровка экрана происходит САМА. То есть, я еще не успеваю прикоснуться к тачскрину, а крестик, на который надо нажимать, уже делает полный круг, и калибровка завершается. Кроме того, если запустить ts_print, то он начнет выдавать различные значения ровно до тех пор, пока я не прикоснусь к экрану. А ведь должно быть наоборот.

Во всем этом важен еще один момент - когда я, для теста, использую другой Тион со штатной прошивкой, калибровка и ts_print работают корректно.

Соответственно, мой вопрос заключается в следующем: все ли необходимое для корректной работы тачскрина я собрал? Правильно ли я настроил переменные окружения (не нашел, где посмотреть их в стандартной прошивке)? Возможно, надо сделать что-то еще?

Если возникнут дополнительные вопросы, постараюсь на них ответить.

Заранее спасибо!
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Собрать tslib для Tion
« Ответ #1 : 01 Ноября, 2013, 10:32:29 »

Приведите вывод printenv после задания переменных окружения для вызова ts_calibrate.
Записан

Ivan

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 88
Re: Собрать tslib для Tion
« Ответ #2 : 01 Ноября, 2013, 15:03:00 »

Приведите вывод printenv после задания переменных окружения для вызова ts_calibrate.

Здравствуйте! Спасибо за ответ.

Вот вывод переменных окружения:

ep9315:~# printenv                                                             
SHELL=/bin/bash                                                                 
TERM=vt100                                                                     
TSLIB_CONFFILE=/etc/ts.conf                                                     
HUSHLOGIN=FALSE                                                                 
TSLIB_CALIBFILE=/etc/pointercal                                                 
USER=root                                                                       
MAIL=/var/mail/root                                                             
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin               
PWD=/root                                                                       
PS1=\h:\w\$                                                                     
SHLVL=1                                                                         
HOME=/root                                                                     
TSLIB_FBDEVICE=/dev/fb0                                                         
LOGNAME=root                                                                   
TSLIB_TSDEVICE=/dev/ep93xx_ts                                                   
TSLIB_PLUGINDIR=/lib/ts/                                                       
_=/usr/bin/printenv
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Собрать tslib для Tion
« Ответ #3 : 01 Ноября, 2013, 16:17:52 »

Выложите где-нибудь свою КФС (Emdebian) и ядро с модулем ts (если они не в КФС).
Ссылку можете прислать мне на почту, я посмотрю.
Записан

Ivan

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 88
Re: Собрать tslib для Tion
« Ответ #4 : 01 Ноября, 2013, 17:15:13 »

Выложите где-нибудь свою КФС (Emdebian) и ядро с модулем ts (если они не в КФС).
Ссылку можете прислать мне на почту, я посмотрю.

Отправил на почту из Вашего профиля. Если будут вопросы - пишите.

Спасибо за помощь!
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Собрать tslib для Tion
« Ответ #5 : 04 Ноября, 2013, 18:56:36 »

Попробуйте прилагаемый патч. Работает в вашей КФС. Но нужно проверить не
будет ли из-за такого изменения 100% занят процессор в приложении. ts_test и
так 100% занимает процессор, на другой программе я не проверял.
Записан

Ivan

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 88
Re: Собрать tslib для Tion
« Ответ #6 : 05 Ноября, 2013, 12:03:46 »

Попробуйте прилагаемый патч. Работает в вашей КФС.

Спасибо за патч. Теперь в конфигурации дисплея 640х480 тачскрин работает. По крайней мере, работают утилиты ts_test и ts_calibrate. Свое приложение пока проверить не удалось

Однако, есть еще один вопрос. Дело в том, что на самом деле наш дисплей имеет конфигурацию 800х480.

Я покопался в ядре и в файле drivers/video/ep93xxfb.с внес изменения в структуру static struct ep93xxfb_videomodes ep93xxfb_vmods[]:
...
{ // 20
"TFT 800x480 8\"",
800, 40, 40, 144,
480, 8, 3, 30,
72,
        CLK_INTERNAL, EDGE_FALLING, POL_LOW, POL_LOW, POL_LOW,
    },
...

В коде выше изменения минимальны - просто вставил 480 вместо 600, как было изначально.

Теперь в режиме 20 на дисплее отображается честных 800х480 пикселей, но тачскрин в таком режиме после применения патча не реагирует на нажатия вообще (по крайней мере, в утилите ts_calibrate).

Я подозреваю, что надо поменять еще какие-то параметры, вот только пока не могу понять, какие и где. Буду признателен, если подскажете, куда копать...
« Последнее редактирование: 05 Ноября, 2013, 12:13:00 от Ivan »
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Собрать tslib для Tion
« Ответ #7 : 05 Ноября, 2013, 12:25:20 »

Проверьте ещё раз. Разрешение экрана влияет только на приведение значений TS
к экрану, но не на их получение.  Вы проверили работу TS на 640x480 и
поменяли экран на 800x480? Может быть проблема в соединении сигналов TS,
самом TS или его креплении.
Записан

Ivan

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 88
Re: Собрать tslib для Tion
« Ответ #8 : 05 Ноября, 2013, 12:56:48 »

Вы проверили работу TS на 640x480 и поменяли экран на 800x480? Может быть проблема в соединении сигналов TS,
самом TS или его креплении.

Я пробовал на одном и том же дисплее. Когда я передаю ядру video=ep93xxfb:vout=1,vmode=16, дисплей работает с разрешением 640х480, то есть правый край просто обрезается. При такой конфигурации после применения Вашего патча утилиты ts_calibrate и ts_test работают.

Если передать ядру параметры video=ep93xxfb:vout=1,vmode=20, дисплей работает с разрешением 800х480. При этом текст в консоли отображается корректно, GUI-приложение на Qt тоже отображается на весь экран (это к вопросу о параметрах дисплея). Но при такой конфигурации ts_calibrate вообще не реагирует на нажатия, а ts_test и ts_print ведут себя так же, как и до применения патча (возможно это связано как раз с тем, что тачскрин не удается откалибровать).

Именно поэтому я и подумал о том, что не отредактировал какие-то параметры, которые внешне не влияют на изображение на дисплее, но могут влиять на тачскрин...
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Собрать tslib для Tion
« Ответ #9 : 05 Ноября, 2013, 13:16:41 »

У вас точно одинаковый tslib (КФС) в обоих случаях?
Что выводит ts_harvest?
Записан

Ivan

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 88
Re: Собрать tslib для Tion
« Ответ #10 : 05 Ноября, 2013, 13:47:15 »

У вас точно одинаковый tslib (КФС) в обоих случаях?
Что выводит ts_harvest?

tslib одинаковый, КФС одна и та же.

Вывод ts_harvest для 640х480 прикрепил.

А ts_harvest для 800х480 запустить не удается, т.к. он, так же, как и ts_calibrate, не реагирует на нажатия на тачскрин.
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Собрать tslib для Tion
« Ответ #11 : 05 Ноября, 2013, 16:59:29 »

Я поменял в указанной вами структуре 640 на 800 (у дисплея 5.7'') и у меня
ts_calibrate и ts_test работает нормально, разумеется часть экрана я не вижу
используя дисплей 5.7'' 640x480. Результат ts_calibrate при размере по
горизонтали 800 выглядит правдоподобным.

tslib я собирал в присланной вами КФС с указанным патчем, доставив
необходимые для сборки пакеты.
Записан

Ivan

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 88
Re: Собрать tslib для Tion
« Ответ #12 : 05 Ноября, 2013, 17:40:47 »

Я поменял в указанной вами структуре 640 на 800 (у дисплея 5.7'') и у меня
ts_calibrate и ts_test работает нормально, разумеется часть экрана я не вижу
используя дисплей 5.7'' 640x480. Результат ts_calibrate при размере по
горизонтали 800 выглядит правдоподобным.

Большое спасибо за то, что активно пытаетесь помочь мне.

Я получил Ваше письмо.
Попробовал у себя сделать так, как Вы описали - изменить параметры для дисплея 640х480 (а не у 800х600, как я делал раньше). Результат, к сожалению, такой же.

tslib я собирал в присланной вами КФС с указанным патчем, доставив
необходимые для сборки пакеты.

Можете расписать подробнее, как Вы это делали? Какие брали исходники tslib, какие патчи накладывали кроме того, который присылали выше? GCC ставили из репозитория emdebian, или использовали какой-то другой компилятор?

Спасибо!
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: Собрать tslib для Tion
« Ответ #13 : 05 Ноября, 2013, 18:03:31 »

tslib взял версии 1.0 (как в Buildroot).

Патчи:
tslib-1.0-no-cxx.patch
tslib-1.0-remove-bzero.patch
tslib-1.0-remove-return-on-error-from-check-df.patch
tslib-1.0-x-ep93xx.patch
tslib-1.0-x-ep93xx_glibc.patch

> GCC ставили из репозитория emdebian

Да.
Записан

Ivan

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 88
Re: Собрать tslib для Tion
« Ответ #14 : 05 Ноября, 2013, 18:30:06 »

tslib взял версии 1.0 (как в Buildroot).

Патчи:
tslib-1.0-no-cxx.patch
tslib-1.0-remove-bzero.patch
tslib-1.0-remove-return-on-error-from-check-df.patch
tslib-1.0-x-ep93xx.patch
tslib-1.0-x-ep93xx_glibc.patch

> GCC ставили из репозитория emdebian

Да.

Странно, делал все то же самое... Только gcc другой - тот, которым собирал ядро и модули.

Ваше письмо получил. Попробую все поставить уже завтра, т.к. сегодня пора убегать. По результатам отпишусь.

Еще раз огромное спасибо за помощь!
Записан