Сайт | Скачать | Видео | Wiki

Автор Тема: Touchscreen на Quirky  (Прочитано 5749 раз)

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

Оффлайн Samuel

  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Автор темы
Touchscreen на Quirky
« : 19 Ноябрь 2014, 13:10:26 »
Приветствую.
Сразу прошу прощения за то, что размещаю пост не туда. Но оригинальный форум puppy почему то отказывается постить мои сообщения - явно чует что-то. :) Или присоединились к санкциям. :)
В принципе механизм работы с устройствами единый, поэтому я надеюсь, что уважаемые знатоки подскажут.
Есть Touchscreen, подключенный к USB панельного компьютера, на компьютере стоит Quirky. Есть модуль ядра penmount, есть драйвер от производителя в виде файла .so, есть драйвер DirectFB тоже .so, но система упорно подгружает usbhid. А он не калибруется и есть большие проблемы с позиционированием.

Код
# ls
0003:14E1:6000.0001  bInterfaceSubClass  input      supports_autosuspend
bAlternateSetting    bNumEndpoints       interface  uevent
bInterfaceClass      driver              modalias
bInterfaceNumber     ep_02               power
bInterfaceProtocol   ep_81               subsystem
# pwd
/sys/bus/usb/devices/4-2:1.0
# ls -ld driver
lrwxrwxrwx 1 root root 0 ноя 18 13:51 driver -> ../../../../../../bus/usb/drivers/usbhid

В идеале хотелось бы заставить работать драйвер от производителя в приложении для DirectFB, но пока просто не могу сообразить как заставить использовать другой драйвер.
« Последнее редактирование: 19 Ноябрь 2014, 14:01:04 от sfs »

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
Re:Touchscreen на Quirky
« Ответ #1 : 19 Ноябрь 2014, 14:19:21 »
За Quirky точно не скажу, но можно посмотреть вариант: Пуск-система-Конфигурация загрузки (Boot Manager).  В нем - Черный список/добавить модуль/предпочтение одного модуля над другим. Такой вариант в IvannaXP, а она основана на PUPPY-PRICISE
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн Samuel

  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Автор темы
Re:Touchscreen на Quirky
« Ответ #2 : 20 Ноябрь 2014, 08:16:00 »
Здравствуйте, valentin
Да, все так же. Собсно самое большое отличие от Puppy - вместо многослойных UnionFS/AuFS используется f2fs и ОС устанавливается на флешку/SSD/HDD.
Но к сожалению, этот вариант не подходит, т.к. usbhid - не модуль ядра. Модуль ядра из всех драйверов только penmount, но даже если я его подгружаю его командой modprobe, то все равно используется usbhid. Мне же хотелось бы использовать драйвер от производителя, который тоже выполнен не в виде модуля.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Touchscreen на Quirky
« Ответ #3 : 20 Ноябрь 2014, 08:44:18 »
параметрами ядра можно управлять модулями, что-то типа usbhid.disable=1
или посмотреть список доступных параметров в /sys/module/usbhid/parameters/


http://unix.stackexchange.com/questions/55495/prevent-usbhid-from-claiming-usb-device
вот тут хорошее решение, и через параметры загрузки и через правило udev (через правило udev правильнее наверное, т.к. usbhid может еще потребоваться для других устройств)
« Последнее редактирование: 20 Ноябрь 2014, 08:53:14 от Pro »
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
Re:Touchscreen на Quirky
« Ответ #4 : 20 Ноябрь 2014, 11:50:42 »
дайте производителя/модель вашего тачскрина
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн Samuel

  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Автор темы
Re:Touchscreen на Quirky
« Ответ #5 : 20 Ноябрь 2014, 12:47:06 »
параметрами ядра можно управлять модулями, что-то типа usbhid.disable=1
или посмотреть список доступных параметров в /sys/module/usbhid/parameters/


http://unix.stackexchange.com/questions/55495/prevent-usbhid-from-claiming-usb-device
вот тут хорошее решение, и через параметры загрузки и через правило udev (через правило udev правильнее наверное, т.к. usbhid может еще потребоваться для других устройств)
Нет, нету такого параметра:
Код
# cd /sys/module/usbhid/parameters
# ls
ignoreled  mousepoll  quirks
Спасибо, про udev сейчас буду смотреть

дайте производителя/модель вашего тачскрина
Вот тут data sheet и драйверы на управляющую плату:
http://www.salt.com.tw/services_2_2.php
Судя по элементам на плате, у меня распаян PM6300A.

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
Re:Touchscreen на Quirky
« Ответ #6 : 20 Ноябрь 2014, 14:17:21 »
Скачал "для посмотреть" драйвер pmlinux-Ubuntu12.10  .  Запускали скрипт install.sh в терминале? на что ругается?  У меня такого устройства нет, поэтому выполнение
Код
 /usr/sbin/pm-setup -s
прерывается, но иконко запуска, penmount.dat и драйвер в нужные каталоги переносит.
Так-же в архиве идет ярлык для автозапуска PenMount
Код
[Desktop Entry]
Type=Application
Name=PenMount
Exec=/usr/sbin/gPen-wrapper -t
Icon=penmount
Comment=PemMount Utility
Name[en_US]=PenMount
Comment[en_US]=PemMount Utility
X-GNOME-Autostart-enabled=true
но он с тексте install.sh не упоминается , возможно он отрабатывается из /usr/sbin/pm-setup -s  :(

В Puppy для автозапуска приложения можно поместить в /root/Startup/  скрипт
Код
#!/bin/sh

/usr/sbin/gPen-wrapper -t
и не забыть дать право на исполнение  ;)
« Последнее редактирование: 20 Ноябрь 2014, 14:38:54 от valentin »
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн Samuel

  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Автор темы
Re:Touchscreen на Quirky
« Ответ #7 : 20 Ноябрь 2014, 15:04:09 »
Вот вывод install.sh:
Код
# ./install.sh 
Stopping running process of gPen, gCal, gDraw utilities.
Copy applications...
Copy resource files...
/usr/bin/install: cannot create regular file `/usr/share/icons/gnome/48x48/apps/penmount.png': No such file or directory
/usr/bin/install: cannot create regular file `/usr/share/icons/gnome/32x32/apps/penmount.png': No such file or directory
/usr/bin/install: cannot create regular file `/usr/share/icons/gnome/24x24/apps/penmount.png': No such file or directory
/usr/bin/install: cannot create regular file `/usr/share/icons/gnome/22x22/apps/penmount.png': No such file or directory
/usr/bin/install: cannot create regular file `/usr/share/icons/gnome/16x16/apps/penmount.png': No such file or directory
Setting up X Server.
Install on The X.Org Foundation 1.14
+--------------------------------------------------+
|             PenMount Setup Utility               |
+--------------------------------------------------+

Detect PenMount USB
------------------------
PenMount 6000 (14e1:6000) @ /dev/input/event3

Detect PenMount COM
------------------------
Detecting /dev/ttyS0 ,  19200 bps ....... NOT FOUND
Detecting /dev/ttyS0 ,   9600 bps ....... NOT FOUND
Detecting /dev/ttyS1 ,  19200 bps ....... NOT FOUND
Detecting /dev/ttyS1 ,   9600 bps ....... NOT FOUND
Detecting /dev/ttyS2 ,  19200 bps ....... FAIL
Detecting /dev/ttyS2 ,   9600 bps ....... FAIL
Detecting /dev/ttyS3 ,  19200 bps ....... NOT FOUND
Detecting /dev/ttyS3 ,   9600 bps ....... NOT FOUND
Detecting /dev/ttyS4 ,  19200 bps ....... FAIL
Detecting /dev/ttyS4 ,   9600 bps ....... FAIL
Detecting /dev/ttyS5 ,  19200 bps ....... FAIL
Detecting /dev/ttyS5 ,   9600 bps ....... FAIL
Detecting /dev/ttyS6 ,  19200 bps ....... FAIL
Detecting /dev/ttyS6 ,   9600 bps ....... FAIL
Detecting /dev/ttyS7 ,  19200 bps ....... FAIL
Detecting /dev/ttyS7 ,   9600 bps ....... FAIL

Detection Result
------------------------
PenMount 6000 (14e1:6000) @ /dev/input/event3

Writing configurations to /etc/penmount.dat
Remove old penmount_drv.so
Copy Xorg module drivers...
Please logout and re-login to use Penmount device.

Но gPen-wrapper в терминале из X-ов не запускается, говорит, не хватает ему библиотеки libgnomeui-2.so.0 :(
Да собственно мне gPen то и не нужен, поскольку будет в основном работать в приложении под DirectFB, без запуска xwin
« Последнее редактирование: 20 Ноябрь 2014, 15:32:12 от Samuel »

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
Re:Touchscreen на Quirky
« Ответ #8 : 20 Ноябрь 2014, 15:58:31 »
насколько я понял, gPen-wrapper используется для калибровки и его, возможно, придется запустить, хоть раз   :)
Код
# /usr/sbin/gPen-wrapper
main
[PENMOUNT] Using config file : /etc/penmount/penmount.dat
[PENMOUNT] Using config file /etc/penmount/penmount.dat
[PENMOUNT] Loading config file /etc/penmount/penmount.dat OK !

(gPen:24291): Gtk-CRITICAL **: gtk_box_pack: assertion `child->parent == NULL' failed

(gPen:24291): Gtk-CRITICAL **: gtk_box_pack: assertion `child->parent == NULL' failed

(gPen:24291): Gtk-CRITICAL **: gtk_box_pack: assertion `child->parent == NULL' failed
[PENMOUNT] Loading config file /etc/penmount/penmount.dat OK !
[PENMOUNT] Loading config file /etc/penmount/penmount.dat OK !
[PENMOUNT] Loading config file /etc/penmount/penmount.dat OK !
[PENMOUNT] Loading config file /etc/penmount/penmount.dat OK !
[PENMOUNT] Loading config file /etc/penmount/penmount.dat OK !
[PENMOUNT] Loading config file /etc/penmount/penmount.dat OK !
[PENMOUNT] Loading config file /etc/penmount/penmount.dat OK !
[PENMOUNT] Loading config file /etc/penmount/penmount.dat OK !
[PENMOUNT] Loading config file /etc/penmount/penmount.dat OK !
[PENMOUNT] Loading config file /etc/penmount/penmount.dat OK !
PenMount: Using X RandR Extension 1.3
[PENMOUNT] Loading config file /etc/penmount/penmount.dat OK !
In file gPen.c, function do_calibrate: error on system execution of /usr/sbin/gCal 9 /etc/penmount/penmount.dat
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
Re:Touchscreen на Quirky
« Ответ #9 : 20 Ноябрь 2014, 16:23:29 »
И о работе с драйвером .so не из иксов не уверен  :( . Насколько я понял либу копирует в /usr/lib/xorg/modules/input/ и  создается в /usr/share/X11/xorg.conf.d  либо в /etc/X11/xorg.conf.d/ файл с именем в котором есть *penmount*. у вас новый файл в каком-то каталоге создается?
 
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн Samuel

  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Автор темы
Re:Touchscreen на Quirky
« Ответ #10 : 21 Ноябрь 2014, 09:59:07 »
gCal из терминала в X-ах запускается, калибровка проходит успешно... А gCal-wrapper это я так понял чисто обертка для X-ов. Чтоб в красивом меню можно было бы выбрать количество точек калибровки и другие настройки. Все это можно сделать из текстового меню gCal.
По поводу работы под DirectFB меня обнадеживает то, что у DirectFD есть свой драйвер penmount.so, который лежит в /usr/lib/directfb-1.7-6/inputdrivers/libdirectfb_penmount.so

А родной драйвер устанавливается вот сюда:
/usr/X11R7/xorg/modules/input/penmount_drv.so
Вот сюда /etc/X11/xorg.conf я в конце концов добавил секцию InputDevice для  penmount_drv (взял из README драйвера).

По поводу udev скорее всего ничего не получится :( Вот тут http://distro.ibiblio.org/quirky/quirky6/x86/quirky-6.1.4/release-Quirky-6.1.htm
Барри пишет, что использовал eudev без правил.

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
Re:Touchscreen на Quirky
« Ответ #11 : 21 Ноябрь 2014, 10:53:54 »
gCal из терминала в X-ах запускается, калибровка проходит успешно... А gCal-wrapper это я так понял чисто обертка для X-ов. Чтоб в красивом меню можно было бы выбрать количество точек калибровки и другие настройки. Все это можно сделать из текстового меню gCal.
По поводу работы под DirectFB меня обнадеживает то, что у DirectFD есть свой драйвер penmount.so, который лежит в /usr/lib/directfb-1.7-6/inputdrivers/libdirectfb_penmount.so

А родной драйвер устанавливается вот сюда:
/usr/X11R7/xorg/modules/input/penmount_drv.so
Вот сюда /etc/X11/xorg.conf я в конце концов добавил секцию InputDevice для  penmount_drv (взял из README драйвера).

После запуска gCal и калибровки  -  точность и позиционирование при работе под иксами пришли в "норму"?
 Насколько я понял, DirectFD запускается ВМЕСТО Х-сервера.  Может и в  DirectFD есть конфиг, аналогичный xorg.conf - туда и прописать секцию,  с InputDevice.
 
Система:  Athlon XP 2500+  512RAM  Radeon9600

Оффлайн Samuel

  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Автор темы
Re:Touchscreen на Quirky
« Ответ #12 : 21 Ноябрь 2014, 13:22:22 »
Не все так просто... :( Калибровку я мог проводить и раньше. К этому меня побудило просто чудовищное расхождение позиции курсора и места тапа (иногда до половины экрана). И именно из-за калибровки мне надо использовать драйвер от производителя, но система использует драйвер usbhid. Собственно я не могу понять как переключить на него пусть даже пока и в X-ах.
Да, приложение на DirectFB запускается вместо X-ов.
У DirectFB есть файлик fb.modes, но там описаны только режимы экрана. Есть еще файлик .directfbrc, там можно указать устройство, которое будет использоваться для ихнего драйвера libdirectfb_penmount.so. Но есть еще опция linux-input-devices, которая использует для перечисленных устройств драйвера Linux. Соответственно если удастся в системе приживить родной драйвер, то все должно получиться :)
« Последнее редактирование: 21 Ноябрь 2014, 13:37:39 от Samuel »

Оффлайн valentin

  • Ветеран
  • *****
  • Сообщений: 562
  • Репутация: +20/-0
Re:Touchscreen на Quirky
« Ответ #13 : 21 Ноябрь 2014, 14:34:19 »
в тексте /var/log/Xorg.0.log отображает загрузку секции InputDevice для  penmount_drv?
что-то типа
Код
LoadModule: "penmount"
(II) Loading /usr/X11R6/lib/modules/input/penmount_drv.so
(II) Module penmount: vendor="X.Org Foundation"
compiled for 6.9.0, module version = 1.0.0
Module class: X.Org XInput Driver
ABI class: X.Org XInput driver, version 0.5

или по аналогии с мышью
Код
[    13.324] (II) Using input driver 'mouse' for 'Mouse0'
[    13.324] (II) Loading /usr/lib/xorg/modules/input/mouse_drv.so
[    13.324] (**) Option "CorePointer"
[    13.324] (**) Mouse0: always reports core events
[    13.324] (**) Option "Protocol" "IMPS/2"
[    13.324] (**) Option "Device" "/dev/mouse"
[    13.324] (**) Mouse0: Protocol: "IMPS/2"
[    13.324] (**) Mouse0: always reports core events
[    13.346] (==) Mouse0: Emulate3Buttons, Emulate3Timeout: 50
[    13.346] (**) Option "ZAxisMapping" "4 5"
[    13.346] (**) Mouse0: ZAxisMapping: buttons 4 and 5
[    13.346] (**) Mouse0: Buttons: 9
[    13.346] (II) XINPUT: Adding extended input device "Mouse0" (type: MOUSE, id 6)
[    13.346] (**) Mouse0: (accel) keeping acceleration scheme 1
[    13.346] (**) Mouse0: (accel) acceleration profile 0
[    13.346] (**) Mouse0: (accel) acceleration factor: 2.000
[    13.346] (**) Mouse0: (accel) acceleration threshold: 4
[    13.578] (II) Mouse0: ps2EnableDataReporting: succeeded
« Последнее редактирование: 21 Ноябрь 2014, 15:05:29 от valentin »
Система:  Athlon XP 2500+  512RAM  Radeon9600