Записки техсаппортаКонцепцияЧеловек видит дерево, в его мозгу возникает изображение будущей формы этого дерева, и человек начинает реализовывать свою концепцию. — Т. Старджон, «Медленная скульптура»

ИТ-аутсорсинг в Туле. Обслуживание 1С в Туле. Кассовые решения. Автоматизация торговли — Тула. Тел. 58-95-99

Thinstation 2.5 и Keetouch (USB)

Thinstation 2.5 и Keetouch (USB)


Notice: Функция get_bloginfo вызвана с аргументом, который считается устаревшим с версии 2.2.0! Параметр siteurl семейства функций bloginfo() считается устаревшим. Используйте параметр url.. in /var/www/blog.adminvtule.ru/wp-includes/functions.php on line 4045

Тачскрин keetouchТЗ Подключить сенсорный монитор со стеклом keetouch(USB интерфейс) к тонкому клиенту Thinstation.
Предыстория Подключенный сенсор заработал сразу же. Но как оказалось у него проблема с калибровкой. Мышь ходит по небольшой области экрана порядка 300х400 пикселей, с перевёрнутой осью X и к тому же с рандомным смещением. Запросы в google выдали аналогичные проблемы и на других Linux системах с такими же или подобными стеклами-сенсорами. По советам с форумов вносились соответствующие правки в xorg. Попытки подгрузки драйверов в том числе официальных от keetouch. Дрова конфликтовали с evdev, но и его удаление не помогло. К тому же сенсор работал, просто не был калиброван. Чтение мануалов по xorg и evdev внесло ясность, да и xinput_calibrator(утилита калибровки сенсора) помог.
Хронология
1. Необходимо собрать пакет который будет создавать правило в xorg.conf.d с необходимыми параметрами калибровки.
2. В пакет включить утилиту калибровки xinput_calibrator.
3. Параметры калибровки вынести в конфигурационный файл thinstation.
По пунктам…
1.Требуемое правило будет выглядеть так

Section "InputClass"
	Identifier	"calibration"
	MatchProduct	"HID ID"
	Option	"Calibration"	"minX maxX minY maxY"
EndSection

Где
MatchProduct «HID ID» — ID — калибруемое устройство,
Options — точки калибровки.
Это же правило было опробовано с данным монитором на Ubuntu.
2. Нашли необходимые библиотеки и xinput_calibrator (скопированы с Ubuntu).
Несколько слов по его работе. Необходимо запустить сесcию xterm.
Указав в конфиге thinstation следующее:

SESSION_0_TYPE=xterm

(Соответственно изначально должен быть добавлен пакет xterm в thinstation).
После чего загрузится экран с командной строкой, в которой необходимо выполнить команду xinput_calibrator. Откроется экран калибровки, нажимаем поочерёдно крестики. Экран пропадает, ищем необходимые значения.
Ищем строку с «HID далее наш ID.
И строку начинающуюся с Setting new calibration data: далее следуют 4 значения minX maxX minY maxY.
Эту и будут данные для правильной калибровки.
3. В конфигурационном файле необходимо добавить строки для загрузки пакета и передачи ему параметров:

PKG_PACKAGES="touch"
PKG_PREFIX=pkg
TOUCH_DEVICE="ID"
TOUCH_MIN_X=minX
TOUCH_MAX_X=maxX
TOUCH_MIN_Y=minY
TOUCH_MAX_Y=maxY

Соответственно ID, minX, maxX, minY, maxY значения из п.2.
Архив с пакетом. Скорее всего он подойдет к большинству touchscreen мониторов подключаемых по USB.

touch.zip (

, , ,

55 комментариев на “Thinstation 2.5 и Keetouch (USB)”

  • paladim777:

    Спасибо, очень познавательная статья!
    У меня похожая ситуация, только elotouch 2700-USB аппарат.
    Подскажите пожалуйста, как можно приладить Ваше решение, под мой сенсор?
    Мне нужна только калибровка, с сохранением параметров.

  • SS_:

    Вероятнее всего вам подойдет данное решение, авто сохранения калибровки, к сожалению, не делал. Откалибровать можете аналогично через консоль, затем параметры переписать в блокнотик. А далее внести их в конфигурационный файл thinstation.

  • paladim777:

    Я тестировал на Thinstation 2.5, 5.0, 5.1 и везде результат одинаковый.
    Все проделал, как Вы описали, но у меня возникла проблема:
    Первая проблема которая была, перевернута ось X и Y – я решил, физически перевернул сенсорную панель на 180 градусов, относительно самого монитора.
    Проблем с областью 300х400, или похожее, не возникло.
    А вот проблема со смещением, чуть-чуть есть…
    Перехожу к делу:
    После запуска «xinput_calibrator», запускается утилита калибровки, все нормально. Выдает следующие параметры http://s019.radikal.ru/i638/1205/99/e79d8d172b30.jpg В текущем сеансе курсор теперь откалиброван нормально!
    После внесения в thinstation.conf.network

    PKG_PACKAGES="touch"
    PKG_PREFIX=pkg
    TOUCH_DEVICE="04e7:0020"
    TOUCH_MIN_X=56
    TOUCH_MAX_X=4033
    TOUCH_MIN_Y=73
    TOUCH_MAX_Y=4073

    TOUCH_DEVICE – определил через команду lsusb http://s005.radikal.ru/i209/1205/09/c00f9b0a3d8a.jpg
    После запуска thinstation – все по прежнему, параметры калибровки не применяются.
    Подскажите пожалуйста, как побороть данную проблему?
    Очень нужно настроить на 6-ти девайсах.

  • SS_:

    Правильно ли написан device, после калибровки программа xinput_calibrator создает файл в xorg.conf.d.
    Пакет который во вложении при загрузке создает файл в выше указанном месте, считывая параметры из конфига.
    Из вашего скриншота на месте hid — id=8, соответственно скорее всего

    TOUCH_DEVICE="8"

    Вариантов может быть несколько неправильный device, не подхватываются настройки из конфига или создаваемый файл xorg отличается от того что у меня.
    Подробнее смогу сказать завтра.

  • paladim777:

    На счет device — неуверен в правильности, но id=8 пробовал, не помогает. Пакет создает файл при загрузке в /etc/X11/xorg.conf.d/99-calibration.conf ? Если так, то параметры с thinstation.conf.network в 99-calibration.conf попадают. http://s019.radikal.ru/i626/1205/5e/9a6856337fef.jpg
    А сразу после калибровки программа xinput_calibrator создает в xorg.conf.d, какой файл с параметрами? тот же 99-calibration.conf ?

  • SS_:

    Да, xinput_calibrator создает 99-calibration.conf или тусует настройки в xinput (тут его нет, потому так быть не может). ID твой точно 04e7:0020. Проверь не появляется файл 69-evtouch.conf. Могут быть внесеные изменения и в соседние файлы xorg. Потому запусти утилиту xinput_calibrator, а далее поиск:

    find ~ -type f -mtime -1
  • paladim777:

    Файл 69-evtouch.conf — не появляется.
    до запуска xinput_calibrator есть только файлы в /etc/X11/xorg.conf.d:
    00-keyboard.conf 10-evdev.conf 50-synaptics.conf 50-vmmouse.conf 90-input.conf 99-calibration.conf
    После запуска xinput_calibrator и поиска find ~ -type f -mtime -1 результат: http://s019.radikal.ru/i614/1205/5b/a5f095a6326e.png

  • SS_:

    К сожалению у меня нет лишних панелей Elo на которых можно было бы опробовать. В хелпах ubuntu есть такая статья EloTouchScreen в ней подключение панели к Ubuntu. Я не уточнял панель же USB? Подключается ли данная панель к Ubuntu версии 11 или старше без установки дополнительных пакетов, кроме evtouch? Настраивается ли она исходя из параметров указанных в абзаце:

    Section "InputClass"
            Identifier "Elo class"
            MatchProduct "Elo TouchSystems"
            MatchDevicePath "/dev/input/event*"
            Driver          "evtouch"
            Option          "minX"          "530"
            Option          "minY"          "570"
            Option          "maxX"          "3500"
            Option          "maxY"          "3500"
            Option          "swapY"         "1"
    EndSection

    Файл можно создать с прежним названием 99-cal…
    В конфиге выше и в моем различно используются MatchProduct, Identifier и Driver. Что может вызывать проблему, но это поправить не сложно.

    Если же у тебя девайсы E271-2210,E271-2200,E281-2310, то тебе требуется другой драйвер elographics, которого в пакете собранном мной нет.

  • paladim777:

    Да панель-контроллер USB (http://www.elotouch.com/Products/Touchscreens/IntelliTouch/c2701rsu.asp), и работает сразу без драйверов. Пробовал на Ubuntu 11.10. Калибровку выполнял с помощью xinput_calibrator, все нормально, но до первой перезагрузки. Настройку по инструкции для Ubuntu, не делал, т.к. не было цели работать на Ubuntu. В понедельник более детально проверю на Ubuntu, и попробую с 99-calibration.conf

  • paladim777:

    Сделал все по хелпу на Ubuntu 10.10
    1. Установил пакет evdev
    sudo apt-get install xserver-xorg-input-evtouch
    2. Создал файл 69-evtouch.conf в /usr/share/X11/xorg.conf.d/
    Section «InputClass»
    Identifier «Elo class»
    MatchProduct «Elo TouchSystems»
    MatchDevicePath «/dev/input/event*»
    Driver «evtouch»
    Option «minX» «56»
    Option «minY» «73»
    Option «maxX» «4033»
    Option «maxY» «4073»
    EndSection
    После перезагрузки все заработало.

  • SS_:

    Хорошо, не сложно, сегодня-завтра пересоберу пакет.

  • paladim777:

    Спасибо, жду!

  • SS_:

    Файл с жестко забитыми параметрами для Elo touch
    Для добавления в конфиг

    PKG_PACKAGES="elostouch"
    PKG_PREFIX=pkg
  • paladim777:

    Не пошло…
    После подключения пакета, курсор перестает реагировать через сенсорный экран, а через мышь работает. Походу нужен драйвер для «evtouch», т.к. в Ubuntu 10.10 требовалось его доустановить. А в Thinstation 2.5, 5.0 и 5.1 я не нахожу его присутствия.

  • SS_:

    Скинь логи. Если при сборке указывал www, то на терминал можно зайти через браузер. С указанием порта например так http://192.168.1.15:6800/. И посмотреть ошибки при старте панели.

  • SS_:

    Да точно evtouch не входит я его зашивал в один из пакетов на thinstation 2.2, перепутал с evdev.

  • SS_:

    Да все верно не находит evtouch, думаю сегодня пересоберу с драйвером. Посмотрим что получится.

  • paladim777:

    Я пробовал перед сборкой подсунуть «evtouch_drv.so» туда же, где лежит “evdev_drv.co” в …5.1/packages/xorg7/lib/xorg/moduleles/input/
    Номер не прошел (((

  • SS_:

    В одном из предыдущих постов ты писал что после калибровки по thinstation у тебя монитор работает нормально. Скопируй 99-calib* после правки xinput_calibrator. Тебе не нужен evtouch на скрине он говорит что использует evdev.

  • paladim777:

    Беда в том, что после «xinput_calibrator» файл «99-calibration.conf» остается без изменений, но экран при этом откалиброван!

  • SS_:

    А вот и момент видимо твоя панель не по HID ID определяяется
    это то что у тебя

    May 25 15:00:28 TestTouchHost user.info kernel: input: Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface as /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input5

    это как у меня

    May 23 00:59:21 ts_f46d04e5712e user.info kernel: input: HID 1aad:0001 as /devices/pci0000:00/0000:00:1d.2/usb4/4-2/4-2:1.0/input/input3

    Т.е видимо «HID 1aad:0001» = «Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface»

    Но желательно подтвердить что в 99-calibrator.conf твой HID ID не сокращен до чего то вроде Elo TouchSystems

  • SS_:

    Архив с поправленным hid, распаковать и аналогично

    PKG_PACKAGES="elostouch"
    PKG_PREFIX=pkg
  • paladim777:

    В первом-изначальном пакете пробовал менять (именно в пакете, везде где нашел) «HID 1aad:0001» на полную «Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface» и в файле конфигурации тоже разные варианты пробовал.
    Во втором пакете пробовал менять также на полную строку, но тут подробнее:
    Похоже, что сокращенный вариант панель подхватывает!
    Section «InputClass»
    Identifier «Elo class»
    MatchProduct «Elo TouchSystems»
    MatchDevicePath «/dev/input/event*»
    Driver «evtouch»

    Просто в таком варианте, перестает вообще работать панель, а значит распознает конкретное устройство. А как только изменяю на «Elo To22uchSystems1234», все работает по прежнему. Аналогично и с несокращенной строкой.
    Третий пакет и другие варианты не успел сегодня опробовать. Продолжу испытания в понедельник.
    Еще не могу понять, куда же xinput_calibrator засовывает параметры калибровки? После его проделок нет измененных файлов.

  • paladim777:

    Пакет с поправленным hid – заработал!
    Проблема я так понял была в:
    1. «MatchProduct»
    2. Основная «Option» в координатах, т.к. при использовании «evdev» нужно прописывать координаты одной строкой, а не по отдельности как с «evtouch».

    А как теперь облагородить пакет, чтобы координаты задавать через файл конфигурации, как в первоначальном пакете?

  • paladim777:

    Содержимое 99-calibration.conf http://s05.radikal.ru/i178/1205/fd/cf634507a9bf.jpg
    Использовался первоначальный пакет.
    В файле конфигурации: thinstation.conf.network
    TOUCH_DEVICE=»Elo TouchSystems»

    Мешает «HID»

  • SS_:

    Поправлю вечерком просто перенесу HID из зашитого файла в файл с конфигурацией, изначально предполагал что все панели используют HID.

  • paladim777:

    Большое спасибо!
    Все отлично работает.

  • paladim777:

    Подскажите, пожалуйста (отдельная тема)
    Есть моноблок Asus EeeTop ET2010PNT, с сенсорным экраном NextWindows 1950 (USB).
    Ситуация куда более хуже, чем с EloTouch. Хорошая новость, что сенсорную панель вообще калибровать не надо. Но плохая новость как оказалось в плане прикрутки к Ubuntu и Thinstation, обойтись evdev – не удается. В данной ситуации требуется сторонний драйвер. Драйвер в природе существует, и даже работает (тестировал на Ubuntu 12.04). По умолчанию после установки Ubuntu – никаких признаков жизни экран не подает, хотя «lsusb» говорит что есть устройство «Bus 001 Device 006: 1926:0083 NextWindow 1950 HID Touchscreen». После поисков по просторам сети, под Ubuntu нашлось решение, а именно нужно установить два пакета:
    xf86-input-nextwindow_0.3.4~precise1_i386.deb (http://ppa.launchpad.net/djpnewton/xf86-input-nextwindow/ubuntu/pool/main/x/xf86-input-nextwindow) и nwfermi-0.6.5.0_i386.deb (https://launchpad.net/nwfermi). А также в догонку потребовалось еще несколько пакетов: patch, akeroot и dkms. После установки и перезагрузки, панель работает. Стоит ли вообще связываться с прикруткой к Thinstation, или гиблое дело? Есть еще решение (http://www.nextwindow.com/nextwindow_support/app_working_under_linux_2.html), но оно не работает на Ubuntu, и скорее всего предназначено под другие панели.

  • SS_:

    Открой консоль на thinstation сделай cat /dev/nwfermi* возможно называется по другому и потыкай пальцами в экран. Evdev может не поддерживать потому что это multitouch.

  • SS_:

    Так же подключи экран и попробуй запустить xinput_calibrator если после того заработает, соответственно evdev пойдет.

  • SS_:

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

  • paladim777:

    xinput_calibrator – говорит «Error: No calibratable devices found.», т.к. видимо мышка-подобного сенсора не находит.
    Лог с Thinstation: «Jun 2 22:43:12 ts_705ab6e55cb7 user.info kernel: generic-usb 0003:1926:0083.0003: hiddev0,hidraw2: USB HID v1.11 Device [NextWindow Touchscreen] on usb-0000:00:1d.7-7.4/input1»
    «сat /dev/nwfermi*» (должно «nwfermi0») – все без результатов.
    Lsusb: «Bus 001 Device 006: 1926:0083 NextWindow 1950 HID Touchscreen».
    ls -lh /dev/input/* — в списке нет похожего на экран.
    ls -lh /dev/* — nextwindow или подобных устройств нет.

    Далее эксперименты в Ubuntu 12.04
    Без пакетов тоже самое, что в Thinstation.
    После установки xf86-input-nextwindow_0.3.4~precise1_i386.deb и nwfermi-0.6.5.0_i386.deb, все задвигалось.
    «сat /dev/nwfermi*» — тараканы бегают, аналогично с «nwfermi0»
    ls -lh /dev/* говорит /dev/nwfermi0 – присутствует
    cat /proc/bus/input /devices – теперь:
    N: Name= «NextWindow Fermi Touchscreen»
    S: Sysfs=/devices/virtual/input/input8
    Часть методов взято отсюда: http://www.linux.org.ru/forum/linux-hardware/7491174
    Похоже, что эти два пакета жизненно необходимы.

  • SS_:

    Соберу на днях, посмотрим что получится.

  • SS_:

    Собрал пробуй. Пакет nextwindow.pkg. Если не запустится попробуй обновить список правил udev, как то так

    udevadm control --reload-rules

    .
    Или так тригеры из правил для kernel

    udevadm trigger

    Естественно логи приветствуются.)

  • paladim777:

    Попробовал, пакет не запустился. Логи http://zalil.ru/33420424
    Проблема походу с запуском демона. Обновить список правил udev, пробовал… результат в логах.

  • SS_:

    Да модуль не загрузился видимо небольшие ошибки в udev поправлю,а также он не подгрузился из X11 конфига. Драйвер должен присутствовать в логе xorg.

  • paladim777:

    Не пошел… результат в логах.
    http://zalil.ru/33424675

  • SS_:

    Первый момент появились ли устройства nwfermi* или nw-fermi* в /dev и второй драйвер so в xorg так и не подгрузился. Но ругаться на udev перестал — соответственно устройства наверно создал. Еще появляется ли драйвер в usr/lib/xorg/modules/input/nextwindow.so

  • paladim777:

    Устройства nwfermi, или подобные не наблюдаются. Только есть на аппаратном уровне, как и были. Драйвер nextwindow_drv.so в usr/lib/xorg/modules/input/ есть.
    А может быть, что не хватает дополнительных пакетов, которые пришлось доставлять под Ubuntu?

  • SS_:

    пакеты уже добавил но видимо они не подгружаются хотя в логах чисто

  • SS_:

    Хм что то в логах скрипта не видно, проглядел. Видимо он не стартанул по каманде ps виден nwfermi_daemon?

  • SS_:

    попробуй

    nwfermi_daemon &
    <Enter>
    udevadm trigger --action=change

    после чего проверь появление устройств

  • SS_:

    udev правило возможно неправильно отрабатывает или вообще не отрабатывает, необходима доп. информация по устройству

    udevadm info --query=all  --name=/dev/audio

    вместо /dev/audio путь до устройства nextwindow, до event* или до /dev/input/…

    Либо инфу можно взять из ubuntu по устройству nwfermi*

  • paladim777:

    На счет дополнительных пакетов я имел введу: patch, akeroot и dkms, т.к. без них xf86-input-nextwindow_0.3.4~precise1_i386.deb и nwfermi-0.6.5.0_i386.deb не ставились на Ubuntu.
    По команде ps нет nwfermi_daemon http://s019.radikal.ru/i606/1206/a3/9c09a469032a.jpg
    После команды nwfermi_daemon http://s019.radikal.ru/i623/1206/18/3d690981a7ae.jpg
    и дальше не идет
    В логах :
    Jun 12 22:03:37 ts_705ab6e55cb7 uucp.debug nwfermi_daemon[1618]: Starting process…
    Jun 12 22:07:03 ts_705ab6e55cb7 daemon.notice acpid: client 1555[0:0] has disconnected

  • paladim777:

    Далее сбор информации по устройству:
    lsusb: Bus 001 Device 005: ID 1926:0083 NextWindow 1950 HID Touchscreen

    Далее под Ubuntu (пакеты установлены и работают)

    ls -lh /dev/* | grep nwfermi
    lrwxrwxrwx  1 root root           8 июня  12 22:31 /dev/nw-fermi -&gt; nwfermi0
    crw-------  1 root root    180, 192 июня  12 22:31 /dev/nwfermi0
    lrwxrwxrwx 1 root root 11 июня  12 22:31 180:192 -&gt; ../nwfermi0
     
    cat /proc/bus/input /devices
    I: Bus=0000 Vendor=0000 Product=0000 Version=0000
    N: Name="Nextwindow Fermi Touchscreen"
    P: Phys=
    S: Sysfs=/devices/virtual/input/input8
    U: Uniq=
    H: Handlers=mouse0 event8 js0
    B: PROP=0
    B: EV=b
    B: KEY=30020 0 0 0 0 0 0 0 0
    B: ABS=2630000 3
     
    dmesg | grep nwfermi
    [    7.068096] nwfermi 1-7.4:1.0: NextWindow Fermi device now attached to nwfermi-192
    [    7.068221] usbcore: registered new interface driver nwfermi

    udevadm info —query=all —name=/dev/nw-fermi http://i073.radikal.ru/1206/34/d35be4d331e3.jpg

  • SS_:

    определение девайса под разными системами видимо разное потому как следую из строки этой

    kernel: generic-usb 0003:1926:0083.0003: hiddev0,hidraw2: USB HID v1.11 Device [NextWindow Touchscreen] on usb-0000:00:1d.7-7.4/input1

    и этой в udev->rules

    KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTR{idVendor}=="1926", MODE="0666", SYMLINK+="nw-fermi-device"

    subsistem= hidraw, на Ubuntu же явно видно USB
    Под 5.1 thinstation у меня демон запустился

    ts_001485******:/# nwfermi_daemon &
    ts_001485******:/# StartThreads
    Starting tl thread
    Starting bulk thread
     
    ts_001485******:/#

    Попробуй так под thinstation:

    udevadm info --query=all --name"=Nextwindow Fermi Touchscreen"

    У меня просто нет ни одного устройства generiс usb уже все мышки и клавы перебрал.
    А для построение монтирования устройства udev нужны хоть какие то переменные чтоб зацепиться.

  • paladim777:

    Команда: udevadm info —query=all —name=»Nextwindow Fermi Touchscreen»
    Говорит: device node not found
    А вот у меня демон не стартует, не могу помять почему ((
    Задачу понял, что Ubuntu в данной ситуации не подходит для определения девайса.
    Попробую выдрать максимально информации под Thinstation, по данному девайсу.

  • SS_:

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

  • paladim777:

    Что-то у меня появилось желание, отказаться от идеи, прикрутки данного экрана к Thinstation ((
    Как вариант рассматриваю, сделать облегченный тонкий клиент на Ubuntu, т.к. с дровами для сенсорной панели все норм.. HDD – по умолчанию есть. Обвески FreeRDP, VNC, SSH и т.п. доставить несложно.
    Пробовал ради эксперимента, поставить пакеты на Debian 6.0.4 от Ubuntu которые, не пошло ((
    Или есть все-таки шансы на Thinstation?
    Тоже интересное решение http://habrahabr.ru/post/144822/

  • SS_:

    Устройство на thinstation определяется, необходимо лишь собрать линк и подтянуть драйвер верхнего уровня для xorg. Просто отладка затрудняется тем что у меня нет устройства.

  • paladim777:

    Понятно, спасибо за помощь.
    К сожалению, у меня нет больших познаний в никсах и просеивания Thinstation, поэтому сроки поджимают. А пока попробую все-таки клиент на Ubuntu собрать. А потом продолжу с Thinstation, т.к. пока больше не знаю, как предоставить больше информации по устройству для сборки пакета.


Notice: Undefined variable: comment_form_default_fields in /var/www/blog.adminvtule.ru/wp-content/themes/black-with-orange/comments.php on line 24

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *