На работе есть киоск который состоит из 22' экрана и телевизора 42', но сенсор установлен только на телек, а малина запускает xinput-calibrator на оба экрана и потому не могу откалибровать сенсор для телека. Подскажите, можно ли его запустит только на телеке( в поиске нахожу настройки только на один дисплей).
На убунте/debian xinput-calibrator позволяет получит список устройств, если получили ваше устройство, то можете выполнить калибровку указав его. На у меня малине altlinux, в манах xinput_calibrator тоже что и на убунте показывает, должно работать.
А как указать область калибровки только по одному экрану. Имя устройства я знаю, но при запуске калибровки все равно включается область двух экранов.
Вы калибратором выполнили поиск, получили список устройств доступных для калибровки, затем выполняете калибровку, указываете, какое из устройств калибровать и у вас область на двух экранах? Попробуйте указать геометрию. Manually provide the geometry (width and height) for the calibration window.
Область на двух экранах. Подскажите пожалуйста как геометрию настроить ( гугл помогает настроить только один экран).
Если вы доверяете гуглу больше чем манам, то я прочитал их за вас. Спойлер: man xinput_calibrator Код (Text): user@my-pc:~$ man xinput_calibrator xinput_calibrator(1) xinput_calibrator(1) NAME xinput_calibrator - A generic touchscreen calibration program for X.Org SYNOPSIS xinput_calibrator [OPTIONS] DESCRIPTION xinput_calibrator is a program for calibrating your touchscreen, when using the X Window System. It currently features: - 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 see http://www.freedesktop.org/wiki/Software/xinput_calibrator OPTIONS -h, --help Print a help message listing the version and available options. -v, --verbose Print debug messages during the process. --list List the calibratable input devices. --device device_name_or_id Select a specific device to calibrate; use --list to list the calibratable input devices. --precalib min_x max_x min_y max_y Manually provide the current calibration setting. This is useful if the calibration values are stored in your xorg.conf, but the driver does not export them through XInput (eg. the calibrator can not know these values) --misclick nr_of_pixels set the misclick threshold (0=off, default: 15 pixels) --no-timeout turns off the timeout --output-type auto|xorg.conf.d|hal|xinput type of config to output (auto=automatically detect, default: auto) --fake Emulate a fake driver (for testing purposes) Useful to test the calibrator without applying the values, and possibly even without having a touchscreen. --geometry widthxheight Manually provide the geometry (width and height) for the calibration window. USAGE Run xinput_calibrator in a terminal, as it prints out the calibration values and instructions on standard output. After clicking the 4 calibration points, xinput_calibrator will calculate the new calibration values. Depending on the Xorg touchscreen driver you use, the new values can be made permanent in different ways: Evdev: Automatically recalibrates the driver for this session, Supports following --output-types: auto, xorg.conf.d, hal, xinput Usbtouchscreen: Automatically recalibrates the *kernel module*, saved in /etc/modprobe.conf.local Supports following --output-types: auto Other Xorg touchscreen drivers: No automatic calibration possible, Supports following --output-types: auto, xorg.conf.d, hal EXAMPLES To run the calibrator, type in your terminal: xinput_calibrator If something goes wrong, or not as expected, turn on verbose messages: xinput_calibrator -v If you have to manually provide the current calibration values (when using EVDEV, you can use this to reset the calibration first): xinput_calibrator --precalib 0 1000 0 1000 TROUBLESHOOTING In general, run the calibrator with the -v option, it will tell you what happens and what goes wrong. Mis-click detection, the calibrator can automatically detect clicks with unreasonable values. This prevents you from ending up with a bogus calibration. If you keep getting the message 'Mis-click detected, restarting...', one of the following is happening: 1. you are bad at clicking on crosses, use a stylus or increase the --misclick threshold 2. your device is not properly supported by the kernel, it interprets the clicks wrong 3. your screen has a non-linear deformation, 4-point calibration can not help you SEE ALSO xinput(1) AUTHORS Tias Guns <tias@ulyssis.org> Tias Guns
Это я находил, все что тут более менее подходит это --geometry widthxheight если правильно понимаю. Этим я задаю область калибруемого экрана?
Вы всё в темную как-то, командную строку показали-бы отладочную информацию включали? команда - как определяли устройства и вывод её команда - как калибровали и что указали в геометрии указывали ли вручную текущие настройки калибровки
У меня вот основная проблема https://ibb.co/wKHMm1n.Уже все команды запускал все без изменений. Как эту область изменить я не знаю.
Пишу и думаю, только бы не как в прошлый раз, ожидал в текстовом виде выполняемые команды и их вывод, а получил фото результата. И как теперь понять что xinput_calibrator возвращал в списке устройств доступных для калибровки и какая команда выполнялась при самой калибровке?
Спойлер: xinput list-props 6 Device 'E&T INC. E&T IR SCREEN': Device Enabled (135): 1 Coordinate Transformation Matrix (136): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Calibration Matrix (267): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Calibration Matrix Default (268): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Send Events Modes Available (269): 1, 0 libinput Send Events Mode Enabled (270): 0, 0 libinput Send Events Mode Enabled Default (271): 0, 0 Device Node (272): "/dev/input/event6" Device Product ID (273): 6830, 31 Спойлер: display=:0.0 xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ E&T INC. E&T IR SCREEN id=6 [slave pointer (2)] ⎜ ↳ Microsoft Microsoft® Nano Transceiver v2.0 Mouse id=9 [slave pointer (2)] ⎜ ↳ Microsoft Microsoft® Nano Transceiver v2.0 Consumer Control id=10 [slave pointer (2)] ⎜ ↳ Microsoft Microsoft® Nano Transceiver v2.0 Consumer Control id=11 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ E&T INC. E&T IR SCREEN id=7 [slave keyboard (3)] ↳ Microsoft Microsoft® Nano Transceiver v2.0 id=8 [slave keyboard (3)] ↳ Microsoft Microsoft® Nano Transceiver v2.0 System Control id=12 [slave keyboard (3)] ↳ Microsoft Microsoft® Nano Transceiver v2.0 Consumer Control id=13 [slave keyboard (3)] ↳ Microsoft Microsoft® Nano Transceiver v2.0 Consumer Control id=14 [slave keyboard (3)]
Сейчас в #11 приводите вывод xinput непонятно зачем, ведь в пером сообщении говорили, что пользуетесь xinput_calibrator и возникли сложности с двумя дисплеями Я предложил сначала узнать список устройств доступных для калибровки Ожидал от вас увидеть вывод этого списка Код (Text): xinput_calibrator -v --list DEBUG: XInputExtension version is 2.3 DEBUG: Skipping virtual master devices and devices without axis valuators. DEBUG: Skipping device 'Virtual core XTEST pointer' id=4, does not report Absolute events. DEBUG: Skipping device 'Logitech K230' id=9, does not report Absolute events. No calibratable devices found. У меня нет устройств доступных для калибровки поэтому получаю No calibratable devices found. У вас должны быть доступны какие-то устройства, например устройство_1 и устройство_2 Предложил явно указать найденное устройство при выполнении калибровки Код (Text): xinput_calibrator -v --device устройство_1 DEBUG: XInputExtension version is 2.3 DEBUG: Skipping virtual master devices and devices without axis valuators. Error: Device "устройство_1" not found; use --list to list the calibratable input devices. Или явно указать геометрию Код (Text): xinput_calibrator -v --device устройство_1 --geometry 1024x768 DEBUG: XInputExtension version is 2.3 DEBUG: Skipping virtual master devices and devices without axis valuators. Error: Device "устройство_1" not found; use --list to list the calibratable input devices. т.е. малина сама запускает и вышла из под контроля? мистика какая-то
Подключил к буку тачовый hdmi дисплей, тач подключен по usb, получил одно устройство доступное для калибровки. Код (Text): user@my-pc:~$ xinput_calibrator --list Device "WaveShare WS170120" id=9 Как калибровать не понятно, икс-инпут сам по себе работает с тач-инпут устройством, а икс-сервер сам с двумя дисплеями. Устройство для калибровки одно, а дисплея два. Тачоывй дисплей назначил основным, а встроенный - продолжением основного, тачевый расположил левее встроенного, координаты x=0 y=0 оказываются на тачевом. Запустил калибратор, указав в геометрии ширину высоту тачового дисплея, увидел на тачевом экран для калибровки, на встроенный он не вылезает. Но радости от этого мало, левая верхняя точка калибруется, а при нажатии на правую верхнюю точку, курсор выскакивает на соседний дисплей, калибратор говорит что ты промазал и начинает калибровку сначала. Отключаю xrandr-ом встроенный дисплей и запускаю калибратор не указывая геометрии, дисплей-то один остался. Только с отключенным дисплеем, который не участвует в калибровке, удалось успешно откалиброваться.
Собрал конфигурацию как на фото #9, не-тачевый (это встроенный дисплей бука) сверху и снизу тачеывый подключенный по hdmi и usb Подключенные дисплеи: Код (Text): user@my-pc:~$ xrandr |grep ' connected' eDP-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 309mm x 173mm HDMI-1 connected primary 1024x600+0+0 (normal left inverted right x axis y axis) 255mm x 255mm Устройство для калибровки: Код (Text): user@my-pc:~$ xinput_calibrator --list Device "WaveShare WS170120" id=9 отключаем не-тачевый дисплей ограничиваем тачевое устройство пределами тачевого дисплея выполняем калибровку восстанавливаем режимы дисплеев ещё раз выполняем xinput --map-to-output Код (Text): user@my-pc:~$ xrandr --output eDP-1 --off && xinput --map-to-output WaveShare\ WS170120 HDMI-1 && xinput_calibrator && xrandr --output eDP-1 --mode 1920x1080 --pos 0x0 --rotate normal --output HDMI-1 --mode 1024x600 --pos 0x1080 --rotate normal && xinput --map-to-output WaveShare\ WS170120 HDMI-1 Calibrating standard Xorg driver "WaveShare WS170120" 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). --> Making the calibration permanent <-- copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' (/usr/share/X11/xorg.conf.d/ in some distro's) Section "InputClass" Identifier "calibration" MatchProduct "WaveShare WS170120" Option "MinX" "400" Option "MaxX" "65039" Option "MinY" "1338" Option "MaxY" "66218" 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 После выполнения калибровки, при касании курсор попадает в нужную позицию.
Привет! Возникла такая же задача. Два дисплея: один - обычный сверху, и ниже - еще один сенсорный. Попробовал способ который в предыдущем посте написан. Действия вроде как выполняю правильно, полученный результат (секцию "InputClass" пишу в соответствующий файл), но после перезагрузки никакого эффекта нет. В Вашем способе после перезагрузки все сохранялось? Работа сенсорного дисплея была корректной? Сейчас мое промежуточное решение - это просто команда Код (Text): xinput --map-to-output 6 HDMI-2 где 6 - это ид.устройства ввода, а HDMI-2 - это сенсорный дисплей. После выполнения этой команды все начинает работать корректно, но после перезагрузки все возвращается в исходное состояние. Может и у Вас работало только из-за этой команды? Пока у меня эта команда поставлена в автозагрузку. Но все-таки хочется сделать через калибровку.
Именно так и работало, т.е. после выполнения команды, но этого к сожалению не нужно. Я добавил правило для udev при подключении usb-touch выполняю скрипт, в котором выполняю xinput --map-to-output, но получаю ошибку 'unable to find device 'WaveShare WS170120'' Пока не разобрался, как xinput выполнить без ошибок при подключении тачскрина.