Xinput calibrator astra linux

Xinput calibrator astra linux

www/ Software/ xinput calibrator

xinput calibrator

A generic touchscreen calibration program for X.Org

  • Latest version: 0.7.5 (see README)
  • Source and bugtracker: http://github.com/tias/xinput_calibrator
  • Packages: Tarball, Debian Testing (mentors), Ubuntu 10.04 (ppa), Fedora 13, Arch linux, OE recipe xinput_calibrator is created to fill the gap of touchscreen calibration software, featuring:
  • works for any standard Xorg touchscreen driver (uses XInput protocol)
  • mis-click detection (prevents bogus calibration)
  • dynamically recalibrates the evdev driver
  • outputs the calibration as xorg.conf.d snippet or HAL policy file
  • and more For some background information on Xorg’s touchscreen handling, see this short article. The application is stable and with packaging support. Any help getting it in distributions is greatly appreciated, you can contact me at tias@ulyssis.org

Architecture

The calibrator consists of 2 possible frontend GUIs and currently has backends for the recommended evdev touchscreen driver, the (older) usbtouchscreen driver and for standard X.Org touchscreen drivers (like evtouch, mutouch, elographics, . )

*---------* *-----------* | GUI_X11 | | GUI_gtkmm | *---------* *-----------* | / *-----------------* | | *-------------------------------* | CALIBRATOR | | Evdev: dynamic recalibration | | | / *-------------------------------* | (coordinates | *-----------------------------------------------------------* | from Xinput) | - | XorgPrint: prints xorg.conf and FDI policy file on stdout | | | *-----------------------------------------------------------* *-----------------* \ *-------------------------------------------------------------* | Usbtouchscreen: dynamic recalibration (superseded by evdev) | *-------------------------------------------------------------*

There is room for more frontends and backends. Feature requests are managed in the issue tracker

History

Before this application was created, the author spent quite some time trying to find a generic touchscreen calibration program. An overview of the calibration programs found is available at http://tias.ulyssis.org/calibration/. An overview of how touchscreens are handled in linux nowadays is also available: http://tias.ulyssis.org/calibration/device_support.html

Because all existing calibrators were driver dependent and hard to use, xinput_calibrator was created.

Xinput_calibrator is based on a simple calibrator that was proposed on the Xorg mailinglist. The first release(v0.2.0) improved upon it by reading axis valuators from Xinput, hence making it generic for all touchscreen drivers. The announcement was done on the Xorg mailinglist, and the code is on Tias’ webpage.

The new version (v0.4.0) writes Xorg.conf and (HAL) FDI policy file values, and contains a wrapper script to get axis valuator information for the evtouch driver (evtouch does not export the current calibration through its axis valuators). It is also the first program to support dynamic evdev calibration, by using its advanced Xinput functionality.

Читайте также:  Date linux в переменную

The v0.5.0 version is written entirely in the X window system, needing no external dependencies. Because of its modular structure, other frontends can be easily created too.

v0.6.0 contains many improvements suggested by different users, especially from the OE community. The most important changes are an autotools build system, debugging option, specific device selection, a manpage and much more (see Changelog).

Version 0.7.0 has mis-click detection and proper packaging support: proper make dist, one binary, has manpage, menu entry and icon. DEB and RPM package meta-data in their respective VCS branches.

Источник

Калибровка тачскрина

Тачскрин работает, но неправильно, нужно откалибровать. Установил и запустил xinput_calibrator , ткнул 4 точки. Ничего не изменилось (хотя на этом этапе уже должно правильно работать!) Попробовал по указанию программы сохранить настройки в файлик /usr/share/X11/xorg.conf.d/99-calibration.conf :

Section "InputClass" Identifier "calibration" MatchProduct "Silead GSLx680 Touchscreen" Option "MinX" "67097" Option "MaxX" "401" Option "MinY" "-8966" Option "MaxY" "62759" Option "SwapXY" "0" # unless it was already set to 1 Option "InvertX" "0" # unless it was already set Option "InvertY" "0" # unless it was already set EndSection 

В этой директории и другие похожие файлы есть, вроде 70-wacom.conf и пр. После ребута так же ничего не изменилось. Попробовал и в /etc/X11/xorg.conf.d/ закинуть (директорию пришлось создать) – так же ничего не поменялось.

Вот еще информация, которая может помочь: xinput -list

⎡ Virtual core pointer [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer [slave pointer (2)] ⎜ ↳ SteelSeries Rival Gaming Mouse [slave pointer (2)] ⎜ ↳ SteelSeries Rival Gaming Mouse [slave pointer (2)] ⎜ ↳ Silead GSLx680 Touchscreen [slave pointer (2)] ⎜ ↳ ImPS/2 Logitech Wheel Mouse [slave pointer (2)] ⎣ Virtual core keyboard [master keyboard (2)] ↳ Virtual core XTEST keyboard [slave keyboard (3)] ↳ Power Button [slave keyboard (3)] ↳ Video Bus [slave keyboard (3)] ↳ Power Button [slave keyboard (3)] ↳ SteelSeries Rival Gaming Mouse [slave keyboard (3)] ↳ PC Cam [slave keyboard (3)] ↳ AT Translated Set 2 keyboard [slave keyboard (3)] ↳ SteelSeries Rival Gaming Mouse [slave keyboard (3)] 

(Мой девайс под номером 13)

Device 'Silead GSLx680 Touchscreen': Device Enabled (155): 1 Coordinate Transformation Matrix (157): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Calibration Matrix (314): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Calibration Matrix Default (315): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Send Events Modes Available (279): 1, 0 libinput Send Events Mode Enabled (280): 0, 0 libinput Send Events Mode Enabled Default (281): 0, 0 Device Node (282): "/dev/input/event9" Device Product ID (283): 0, 0 

Попробовал поиграться с set-prop – тоже безрезультатно. Свойство вроде применяется (?), но эффекта нет. xinput set-prop 13 —type=atom —format=32 InvertX 1 , xinput list-props 13 :

Device 'Silead GSLx680 Touchscreen': Device Enabled (155): 1 Coordinate Transformation Matrix (157): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Calibration Matrix (314): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Calibration Matrix Default (315): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Send Events Modes Available (279): 1, 0 libinput Send Events Mode Enabled (280): 0, 0 libinput Send Events Mode Enabled Default (281): 0, 0 Device Node (282): "/dev/input/event9" Device Product ID (283): 0, 0 InvertX (578): "PRIMARY" (1) 

Этот тред я читал, но не понял, как тамошний гуру всё разрулил, да и у того человека калибровка уже работала, а у меня ничего.

Читайте также:  Команда отображения конфигурации сетевых интерфейсов linux

Источник

Проблема калибровки тачскрина ноутбука Toughbook CF-19 под управлением GNU/Linux и возможные пути решения

В качестве единственного личного компьютера у меня служит несколько нестандартный ноутбук — Panasonic Toughbook CF-19Mk5. За годы использования в качестве ОС на нём использовал различные дистрибутивы Linux. В начале практически любой дистрибутив исправно и в условно полном объёме работал с железом. В том числе без всякой отдельной калибровки чётко работал резистивный тачскрин ноутбука. Однако года 4 назад произошло непонятное мне изменение в Linux, и с какого то момента калибровка съехала. Собственно, нескольким попыткам решения проблемы и посвящена заметка. Пишу по памяти, так сказать с чистого листа.

Тачскрин на ноутбуке — элемент пусть не первой необходимости, но иногда бывает полезен чтобы не скролить курсор из угла в угол — тыкнул куда надо стилусом и всё. Но когда ты тыкаешь стилусом в точку а курсор оказывается где-то внизу слева от этой точки, то это нервирует. Проявилось это после одного из обновлений используемого тогда Mint Linux.

Поиски решения начал с установки винчестера с комплектной Win XP и калибровки экрана. В среде Win всё работало чётко. Поиск решения в сообществе mint выявил, что съезжающая калибровка у toughbook в linux — проблема старинная. Из описанных решений можно выделить использование утилиты из состава продуктов проекта X.Org — xinput_calibrator

При запуске утилиты от sudo на экране последовательно отрисовывается 4 мишени которые надо нажать стилусом. Окно закрывается и в терминале отрисовывается текст, который надо записать в соответствующий конфиг:

xinput_calibrator
Calibrating standard Xorg driver «Fujitsu Component USB Touch Panel»
current calibration values: min_x=0, max_x=65535 and min_y=0, max_y=65535
If these values are estimated wrong, either supply it manually with the —precalib option, or run the ‘get_precalib.sh’ script to automatically get it (through HAL).

Читайте также:  Get parent pid linux

—> Making the calibration permanent copy the snippet below into ‘/etc/X11/xorg.conf.d/99-calibration.conf’
Section «InputClass»
Identifier «calibration»
MatchProduct «Fujitsu Component USB Touch Panel»
Option «MinX» «90»
Option «MaxX» «65412»
Option «MinY» «-64»
Option «MaxY» «65299»
EndSection

Создал соответствующий файл, записал туда вывод калибровщика — и никакого результата.

Некоторое время спустя пробовал Astra Linux — там xinput_calibrator сработал исправно. Но в целом мне дистрибутив не понравился и я перебрался на Manjaro. Тут вопрос калибровки тачскрина снова встал «в полный рост». Опять пробовал вышеупомянутую утилиту, пробовал калибровку вписывать по очередной найденной инструкции. Без какого либо положительного результа.

Однако через некоторое время подключил сторонний репозиторий. Изучал что там есть и наткнулся на сборку малоизвестной альтернативы xinput_calibrator. Программа называется xcalibrate

страница программы https://github.com/reinderien/xcalibrate
Программа написана на Python c использованием tk

Кстати автор написал эту программу потому что на его старом ноутбуке Panasonic Toughbook CF-29 не работала программа xinput_calibrator 🙂

Pointer devices:
ID Name
4 Virtual core XTEST pointer
9 Fujitsu Component USB Touch Panel
11 PS/2 Generic Mouse

Old calibration:
[[ 1.126767 0. -0.089242]
[ 0. 1.175728 -0.037727]
[ 0. 0. 1. ]]

Calibrate? [y]: y
Point count (min 3) [4]: 4
Disable rotation? [y]: y

Указано 3 мишени из 4

/usr/bin/xcalibrate:210: FutureWarning: rcond parameter will change to the default of machine precision times max(M, N) where M and N are the input matrix dimensions.
To use the future default and silence this warning we advise to pass rcond=None, to keep using the old, explicitly pass rcond=-1.
m_transform, residuals, rank, singular = np.linalg.lstsq(m_mouse, m_screen)

New calibration:
[[ 1.12516318 0. -0.08927897]
[ 0. 1.18247197 -0.03973887]
[ 0. 0. 1. ]]
Quality (should be at least 3): 4.5

Test? [y]: y
Point count (min 3) [4]: 12

Use calibration? [y]: y
Create a file (for example 99-libinput-ts-calib.conf) in /usr/share/X11/xorg.conf.d/ and put in the following

Section «InputClass»
Identifier «calibration»
MatchProduct «Fujitsu Component USB Touch Panel»
Option «CalibrationMatrix» «1.1251631837961777 0.0 -0.08927897169357178 0.0 1.18247197158914 -0.03973886907469457 0.0 0.0 1.0»
EndSection

Собственно, в уже существующий файл добавил вывод и всё сразу заработало!

Надеюсь, заметка окажется кому-нибудь полезной.

Источник

Оцените статью
Adblock
detector