Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:3
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
tslib статическая компиляция
MTh
Добавлено 10.04.2011 21:19
0
Сообщение: 1
MTh
0

Пункты: 921
Регистрация: 19.09.2010
Вопрос: нужно поднять тачскрин. Драйвер поднялся, QT тоже. Теперь пытаюсь калибрануть. Нашел рабочий бинарник размером 119 кБ (в Linux BSP идет). Калибровку он мне выдал, правда кривую - но это к сути вопроса не относится.

А вопрос вот в чем: скачал tslib - собрал по простому:
Код

autogen.sh
configure --build=i386-linux --host=arm-none-linux-gnueabi --target=arm --prefix=$PWD/build --enable-static --enable-shared --enable-debug
make
make install


Все замечательно, но размеры ts_calibrate и иже с ними в пределах 20 кБ - что явно говорит об их динамической сборке. Ну и readelf -d подтверждает.

Пробовал убрать ключ --enable-shared - вкомпилируется libts.so и все. Однако файл такой на плате не запускается - пишет:
Код

-sh: ts_calibrate: not found

Что конкретно not found - не говорит, типа сами знаете...
И кроме того - если не поставить --enable-shared не получится использовать tslib с QT - оно тупо не может открыть работу с тачем, что логично.
Я так предпологаю что not found - это uClibc и еже с ними - readelf сообщает о трех библиотеках...
Пытаюсь данные либы вкомпилить в бинарники, перед configure делаю:
Код

export LDFLAGS="-static -s"
export LIBS="<ПУТЬ_ДО_ЛИБЫ>/libdl.so.0 <ПУТЬ_ДО_ЛИБЫ>/libc.so.0 <ПУТЬ_ДО_ЛИБЫ>/ld-uClibc.so.0"


Опять configure и тут каюк - при проверке генерирования файла (есть такой пункт при конфигурировании) - отваливается. Лезу в config.log и вижу такую вешчь - attempted static link of dynamic object

Тут я перепробовал столько всяких ключиков (-ldl -Wl и во сяких конфигурациях) что уже не вспомню...

Голова больше не генерирует идей - подскажите куда копнуть?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 11.04.2011 00:06 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Да, я тоже сейчас с этим столкнулся. Можно поподробнее?

э-э.. давно это было, практически ничего не помню..
повторюсь - система под Дебьян для АРМ (никаких бизибоксов)
собирал libts, потом стал прикручивать тачскрин к Иксам, столкнулся с тем, что работала 1/4 площади (калибровка и тест работали нормально). Вот тогда я и вычитал о баге - что-то правил, пересобирал и заработало.

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
MTh
Добавлено 11.04.2011 05:26 Сообщение: 3
MTh
0

Пункты: 921
Регистрация: 19.09.2010
Цитата

э-э.. давно это было, практически ничего не помню..
повторюсь - система под Дебьян для АРМ (никаких бизибоксов)
собирал libts, потом стал прикручивать тачскрин к Иксам, столкнулся с тем, что работала 1/4 площади (калибровка и тест работали нормально). Вот тогда я и вычитал о баге - что-то правил, пересобирал и заработало.


А это не связано с отрицательными значениями и последней цифрой 65536?
Спуститься к концу Подняться к началу
Персональная информация
MTh
Добавлено 04.05.2011 18:05 Редактировалось 04.05.2011 18:06 Сообщение: 4
MTh
0

Пункты: 921
Регистрация: 19.09.2010
Копать надо было в сторону libtool... buildroot проходит tslib при помощи libtool и генерит рабочие бинарники...

Вот только проблема с неправильными координатами осталась...

Jury093 вся надежда на Вас... google не помогает, может я не там искал?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.05.2011 18:39 Редактировалось 04.05.2011 18:44 Сообщение: 5
sasamy
4.71

Пункты: 83564
Регистрация: 14.08.2009
Цитата

Вот только проблема с неправильными координатами осталась...


Не знаю что вы делаете, но что-то не то. tslib нормально собирается в буилдруте, калибруется, работает и выдает правильные координаты. qt тоже прекрасно с ней работает - зачем вообще вам понадобилась статическая сборка ?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 05.05.2011 00:20 Сообщение: 6
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Вот только проблема с неправильными координатами осталась...
Jury093 вся надежда на Вас... google не помогает, может я не там искал?

даже не знаю, чем и помочь..
у меня вообще все мур-мурит нормально со штатным драйвером (от Павла)
ts_test - рисует
ts_calibrate - калибрует и создает файлик \etc\pointercal внутри
Код
root@armets:~# cat /etc/pointercal
-8080 58 32069788 35 -4811 18199480 655366

тачскрин прописан в конфиге иксов
Код
Section "InputDevice"
Identifier "tslib"
Driver "tslib"
Option "CorePointer"
Option "TslibDevice" "/dev/input/event1"
Option "Width" "480"
Option "Height" "272"
Option "SendCoreEvents" "on"
Option "ReportingMode" "Raw"
Option "DeviceName" "touchscreen"
Option "Calibrate" "1"
# Option "Emulate3Buttons" "false"
EndSection

прописан в .bashrc
Код
export TSLIB_TSDEVICE='/dev/input/event1'
export TSLIB_PLUGINDIR='/usr/lib/ts0'

номер, чтобы прописать event смотрю так
Код
root@armets:~# dmesg |grep input
input: gpio-keys as /devices/platform/gpio-keys/input/input0
input: ADS7843 Touchscreen as /devices/platform/spi_gpio.3/spi3.0/input/input1
input: USB Optical Mouse as /devices/platform/atmel-ehci/usb1/1-2/1-2.3/1-2.3:1.0/input/input2
generic-usb 0003:15CA:00C3.0001: input,hidraw0: USB HID v1.10 Mouse [USB Optical Mouse] on usb-atmel-ehci-2.3/input0
input: USB Keyboard as /devices/platform/atmel-ehci/usb1/1-2/1-2.4/1-2.4:1.0/input/input3
generic-usb 0003:04D9:1603.0002: input,hidraw1: USB HID v1.10 Keyboard [ USB Keyboard] on usb-atmel-ehci-2.4/input0
input: USB Keyboard as /devices/platform/atmel-ehci/usb1/1-2/1-2.4/1-2.4:1.1/input/input4
generic-usb 0003:04D9:1603.0003: input,hidraw2: USB HID v1.10 Device [ USB Keyboard] on usb-atmel-ehci-2.4/input1

запустил и провел слева/сверху вниз/вправо
Код
root@armets:~# ts_print_raw
1304539989.764299: 3712 3352 7500
1304539989.894300: 3499 3102 7500
1304539989.924285: 3439 3047 7500
1304539989.964282: 3321 2968 7500
1304539990.104283: 2723 2655 7500
1304539990.124284: 2607 2599 7500
1304539990.154285: 2415 2511 7500
1304539990.204248: 2111 2371 7500
1304539990.224227: 2005 2296 7500
1304539990.244596: 1853 2259 7500
1304539990.254275: 1790 2223 7500
1304539990.284261: 1591 2127 7500
1304539990.294306: 1527 2103 7500
1304539990.324252: 1380 1999 7500
1304539990.334272: 1327 1975 7500
1304539990.364253: 1215 1911 7500
1304539990.374272: 1176 1884 7500
1304539990.384272: 1135 1859 7500
1304539990.414280: 1015 1788 7500
1304539990.424299: 971 1759 7500
1304539990.454254: 810 1667 7500
1304539990.474284: 702 1592 7500
1304539990.484305: 669 1544 7500
1304539990.504287: 569 1472 7500
1304539990.534278: 436 1345 7500
1304539990.564282: 319 1211 7500
1304539990.574303: 288 1135 7500
1304539990.594039: 0 0 0
1304539990.594049: 288 1135 0

какие пакаджи стоят для TS:
Код
root@armets:~# dpkg -l libts*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
ri libts-0.0-0 1.0-7 touch screen library
ii libts-bin 1.0-7 touch screen library utilities
ii libts-dev 1.0-7 touch screen library, development files
un libts0 <none> (no description available)


ядро штатное, корневая на дебьяне 6.0..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
MTh
Добавлено 05.05.2011 16:47 Сообщение: 7
MTh
0

Пункты: 921
Регистрация: 19.09.2010
Jury093 - большое спасибо :)

Цитата

Не знаю что вы делаете, но что-то не то. tslib нормально собирается в буилдруте, калибруется, работает и выдает правильные координаты. qt тоже прекрасно с ней работает - зачем вообще вам понадобилась статическая сборка ?


Статическая сборка понадобилась по одной простой причине - попробовал собрать... собралось. Всегда стараюсь научиться чему-то новому. Раньше все собирал только buildroot'ом.

buildroot'ом вчера собрал - собралось и запустилось... но при этом вываливается после запуска с segmentation fault после тапа по тачу:
Код

# ./ts_calibrate
NUC900_VA_IRQ = F0000000
TSC2007 Opened !!
Loading module /lib/input.so
Loading module /lib/pthres.so
Loading module /lib/variance.so
Loading module /lib/dejitter.so
Loading module /lib/linear.so
Segmentation fault
#


В env прописано следующее:
Код

TSLIB_ROOT=/lib
HISTFILESIZE=1000
INPUTRC=/etc/inputrc
TSLIB_TSDEVICE=/dev/event0
USER=root
HOSTNAME=uclibc
LD_LIBRARY_PATH=%LD_LIBRARY_PATH:/lib
HOME=/root
PAGER=/bin/more
PS1=#
TSLIB_PLUGINDIR=/lib
LOGNAME=root
TERM=vt100
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/bin:/lib
TSLIB_CONFFILE=/etc/ts.conf
DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
HISTSIZE=1000
SHELL=/bin/sh
PWD=/root
QWS_MOUSE_PROTO=tslib:/dev/event0
TSLIB_CALIBFILE=/etc/pointercal
EDITOR=/bin/vi


Содержимое /etc/ts.conf:
Код

# cat /etc/ts.conf
# Uncomment if you wish to use the linux input layer event interface
module_raw input

# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
# module_raw collie

# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860
# module_raw corgi

# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface
# module_raw ucb1x00

# Uncomment if you're using an HP iPaq h3600 or similar
# module_raw h3600

# Uncomment if you're using a Hitachi Webpad
# module_raw mk712

# Uncomment if you're using an IBM Arctic II
# module_raw arctic2

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


В buildroot при сборке поставил галку на tslib и набрал make ARCH=arm...

Перетянул библиотеки из рутфс и ts_calibrate...

Единственное что pointercal у меня на nand'e лежит... добавил я симлинк:
Код

# ls /etc/pointercal -la
lrwxrwxrwx 1 root root 21 Dec 31 17:00 /etc/pointercal -> /mnt/nand/pointercall



Что я сделал не так?
Спуститься к концу Подняться к началу
Персональная информация
MTh
Добавлено 05.05.2011 18:19 Сообщение: 8
MTh
0

Пункты: 921
Регистрация: 19.09.2010
Такс, закомментил в /etc/ts.conf строчку

module linear

и перестал падать с segfault ts_calibrate. ts_test тоже работает... но координаты... как будто оси перевернуты. Такое ощущение что... выводы на таче не совпадают с моими на плате...
Спуститься к концу Подняться к началу
Персональная информация
MTh
Добавлено 05.05.2011 18:40 Сообщение: 9
MTh
0

Пункты: 921
Регистрация: 19.09.2010
Все, провода перевернул - теперь все более или менее... Всем спасибо за внимание :)

Есть еще вопрос - в крайних областях экрана тач как будто хуже понимает прикосновения... Это нормально?

Например в ts_test трудно попасть по кнопке draw - надо долго корячиться чтобы вытащить курсор к кнопке...
или это из-за того что я вырубил linear?
Спуститься к концу Подняться к началу
Персональная информация
MTh
Добавлено 05.05.2011 18:55 Редактировалось 05.05.2011 19:11 Сообщение: 10
MTh
0

Пункты: 921
Регистрация: 19.09.2010
Такс.... если pointercall пустой то калибровка падает с сегфолтом из-зи linear... если отключить linear, откалибровать, а потом вернуть linear то все ок... Другими словами если в pointercal пусто - проги будут валиться...

Косяк с крайними положениями из-за linear был - если его включаешь, то все ок.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux