Калибровка тачскрина
Тачскрин работает, но неправильно, нужно откалибровать. Установил и запустил xinput_calibrator , ткнул 4 точки. Ничего не изменилось (хотя на этом этапе уже должно правильно работать!) Попробовал по указанию программы сохранить настройки в файлик /usr/share/X11/xorg.conf.d/99-calibration.conf :
В этой директории и другие похожие файлы есть, вроде 70-wacom.conf и пр. После ребута так же ничего не изменилось. Попробовал и в /etc/X11/xorg.conf.d/ закинуть (директорию пришлось создать) – так же ничего не поменялось.
Вот еще информация, которая может помочь: xinput -list
(Мой девайс под номером 13)
xinput list-props 13 :
Попробовал поиграться с set-prop – тоже безрезультатно. Свойство вроде применяется (?), но эффекта нет. xinput set-prop 13 —type=atom —format=32 InvertX 1 , xinput list-props 13 :
Этот тред я читал, но не понял, как тамошний гуру всё разрулил, да и у того человека калибровка уже работала, а у меня ничего.
Такое ощущение, что xorg все устройства ввода по два раза обрабатывает, применительно к тачскрину, сначала он в /dev как evdev9 регистрируется, потом ниже как mouse2.
На калибровку может и не повлияет такое, но странно.
Zubok , может глянешь, если есть время?
«libinput Calibration Matrix» пробовал через setprop менять?
А таких опций вроде у libinput нет. См. man libinput. Есть Option «CalibrationMatrix» или свойство «Calibration Matrix»
Попробовал xinput set-prop 13 «Coordinate Transformation Matrix» -1 0 1 0 1 0 0 0 1 – сработало! Касания свапнулись по оси X. Попробовал прописать Option «CalibrationMatrix» «-1 0 1 0 1 0 0 0 1» в файл /usr/share/X11/xorg.conf.d/99-calibration.conf – тоже сработало! Тач пашет после ребута. Теперь буду вручную подбирать коэффициенты.
sleeply4cat , Zubok , огромное спасибо! не знаю, почему сам не допёр до очевидного решения.
Остаётся одна незначительная проблема. Тачскрин именно что управляет курсором, а привычные жесты вроде скрола, удержания (для контексного меню) – не работают. Подозреваю, что есть уже готовые решения, куда копать? В кедах есть некие «Действия при проведении по сенсорному экрану», но что-то оно не пашет.
P.S. Кто будет читать этот тред, возможно вам поможет статья на арч вики, там объясняют за libinput Calibration Matrix .
А таких опций вроде у libinput нет.
Да, видимо, xinput_calibrator рассчитан на какой-то другой драйвер (или как там), который как раз с такими опциями работает.
Лучше в /etc/X11/xorg.conf.d положить. /usr/share/ больше для конфигураций, поставляемых пакетами, то есть для нужд системы, и лучше туда свои конфиги не класть, а то потом будешь вспоминать, что это такое и кто принес.
Теперь буду вручную подбирать коэффициенты.
Источник
Ubuntu: Linux на планшете | Наладка сенсорного экрана
Содержание:
Далее давайте заставим нормально работать сенсорный экран. Сначала определим его тип, используя xinput. В случае с Linx 1010 это емкостной сенсорный экран Goodix. Нам нужно заставить сенсорный экран поворачивать свою матрицу, когда поворачивается дисплей, чтобы она работала и в портретном, и в ландшафтном режимах. Сделать это поможет команда xinput:
Теперь сенсорный экран должен правильно работать в горизонтальном режиме ландшафта. Пока вам потребуется делать это вручную при каждом входе в Ubuntu, а сенсорный экран перестанет работать, если вы повернете его в режим портрета. Если вы хотите иметь возможность поворачивать и изображение, и сенсорный экран вместе, надо адаптировать скрипт rotate-screen.sh с http://bit. ly/RotateScreen (переключитесь в вид Raw [Необработанный], затем щелкните правой кнопкой мыши и выберите Save page as [Сохранить страницу как], чтобы сохранить его на свой планшет). Затем откройте скрипт в Gedit или nano и внесите изменения в следующие строки:
Сохраните и выйдите, затем запустите скрипт:
Замените option на normal (портрет), inverted, left или right, чтобы повернуть и изображение, и матрицу сенсорного экрана. Перед запуском скрипта надо сначала отменить текущий поворот экрана с помощью Screen Display — восстановить вид по умолчанию, а затем запустить ./rotate_desktop.sh вправо, чтобы совместить сенсорную панель и сенсорный экран.
Теперь советуем создать скрипт, запускаемый при загрузке: откройте dash и наберите startup для запуска Startup Applications [Приложения, запускаемые при загрузке]. Нажмите Add [Добавить]. Введите подходящее осмысленное название, нажмите Browse [Просмотр], найдите и выберите свой скрипт — когда закончите, щелкните в поле Command [Команда] и убедитесь, что добавили right в конец скрипта. Нажмите Save [Сохранить], перезагрузитесь — и после входа в систему обнаружите, что планшет и сенсорный экран прекрасно работают с внешней клавиатурой и тачпадом.
Вы успешно установили Ubuntu на свой планшет Bay Trail. Что дальше? Следите за последними обновлениями ядра и форумами, чтобы увидеть, когда предприимчивые люди найдут обходные пути и хитрости, необходимые для нормальной работы аппаратной части планшета. Ну, а мы пойдем смотреть, удастся ли заставить снова работать встроенный звук и Wi-Fi, а затем займемся настройками ACPI.
Источник
Dobrica PavlinuЕЎiД‡’s Weblog / Blog
Personal weblog about technology, Open Source, perl, GNU etc.
- Home
- Touch screen configuration using xinput
Touch screen configuration using xinput
- Posted on December 3, 2013
- by Dobrica Pavlinušić
- in howto
When you are trying to configure touch screen on Linux machine, internet offers examples Xorg.conf configuration but without explanation were numbers in it came from. If you have different touch screen you might be out of luck or guess what to do. In this post, I will try to explain how to examine your device using evtest and try out settings using xinput without restarting X server or installing any drivers other than built-in evdev.
We have a couple of 3M MicroTouch M150 touch screens which are VGA monitors (1024*768 resolution) with USB touchscreen interface which is reported as: A bit of googling later, I found out that there are two different drivers for microtouch devices, but both of them support serial devices only. Not giving up that easily I decided to see what xinput reports about it (without any additional drivers installed!): This seems like a good news, but when I tried to use it, it seemed that cursor would move only in middle of screen (with X axis swapped) so I wasn’t very happy about it. Examining properties of device in more detail revealed that it has property to swap axes and calibrate them, but what to write into those values? First task was was to flip x axes to make it move left-right instead of right-left. This can be acomplised using following command: Parameters are device id, property id, X axis swap and Y axis swap. If you don’t know how many parameters property takes, just put one, try it out and if it returns errors, keep adding parameters until it suceeds.
Next, I needed to calibrate screen to track my finger moving over surface. This is where evtest comes into play. It’s low level utility which enables you to see input events before they are passwd to Xorg server. You will have to run it as root as follows: Immidiatly we can see minimum and maximum values for both axes and putting figer on top-left corner of screen produced (a lot of) output like this: After a few touches I had coordinates which where something like this:
14046,2722 | 2380,2986 |
7994,7819 | |
13743,13616 | 2624,13545 |