16:10 화면에서 4:3 화면비에 맞게 터치스크린 좌표 조정

16:10 화면에서 4:3 화면비에 맞게 터치스크린 좌표 조정

안녕하세요, 요즘 이상한 기기를 작업하고 있습니다. 기본 해상도가 800x1280인 태블릿입니다. 예, 거꾸로입니다. 디스플레이는 세로 모드이고 화면을 회전하고 터치스크린을 회전할 수 있도록 xorg 구성 편집을 수행해야 했습니다. 기본 해상도를 사용하면 제대로 작동하지만 768x1024 해상도를 사용하려고 합니다. 다음 명령을 사용하여 태블릿에서 4:3 모드로 768x1024 해상도를 성공적으로 표시했습니다(양쪽에 검은색 막대가 있는데 이것이 바로 제가 원하는 것입니다).

user1:~ # xrandr --newmode "768x1024_60.00"   65.25  768 816 896 1024  1024 1027 1037 1063 -hsync +vsync
user1:~ # xrandr --addmode DSI-1 768x1024_60.00
user1:~ # xrandr -s 768x1024_60.00

내가 겪고 있는 문제는 실제 터치스크린 디지타이저를 여전히 16:10에 멈춰 있는 것처럼 정렬하는 방법입니다. 이것은 내 xorg 구성 파일입니다.

user1:~ # cat /etc/X11/xorg.conf.d/99-touchscreen.conf
Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "SwapAxes" "true"
        Option "InvertY" "true"
EndSection

user1:~ # cat /etc/X11/xorg.conf.d/50-monitor.conf
Section "Monitor"
    Identifier "DSI-1"
    Option "Rotate" "right"
EndSection

터치스크린의 속성은 다음과 같습니다.

Device 'Goodix Capacitive TouchScreen':
    Device Enabled (152):   1
    Coordinate Transformation Matrix (154): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (284):     0
    Device Accel Constant Deceleration (285):       1.000000
    Device Accel Adaptive Deceleration (286):       1.000000
    Device Accel Velocity Scaling (287):    10.000000
    Device Product ID (276):        1046, 9111
    Device Node (275):      "/dev/input/event2"
    Evdev Axis Inversion (288):     0, 1
    Evdev Axis Calibration (289):   <no items>
    Evdev Axes Swap (290):  1
    Axis Labels (291):      "Abs MT Position X" (282), "Abs MT Position Y" (283), "Abs MT Touch Major" (280), "Abs MT Width Major" (281), "None" (0), "None" (0)
    Button Labels (292):    "Button Unknown" (277), "Button Unknown" (277), "Button Unknown" (277), "Button Wheel Up" (158), "Button Wheel Down" (159)
    Evdev Scrolling Distance (293): 0, 0, 0
    Evdev Middle Button Emulation (294):    0
    Evdev Middle Button Timeout (295):      50
    Evdev Third Button Emulation (296):     0
    Evdev Third Button Emulation Timeout (297):     1000
    Evdev Third Button Emulation Button (298):      3
    Evdev Third Button Emulation Threshold (299):   20
    Evdev Wheel Emulation (300):    0
    Evdev Wheel Emulation Axes (301):       0, 0, 4, 5
    Evdev Wheel Emulation Inertia (302):    10
    Evdev Wheel Emulation Timeout (303):    200
    Evdev Wheel Emulation Button (304):     4
    Evdev Drag Lock Buttons (305):  0
    Evdev Kiosk Touch Mode (306):   0
    Evdev Kiosk Touch Button (307): 1
    Evdev Kiosk Touch Button Delay (308):   0

그럼 터치 매트릭스를 편집해야 하는 경우인가요? 어떤 조언이나 더 쉬운 방법이 있습니까? 도움을 주셔서 감사합니다.

답변1

xinput_calibrator나는 올바른 xorg 교정 데이터를 제공하는 xorg를 사용하여 이 문제를 해결할 수 있었습니다 .

기본적으로 터미널 창을 열고 xinput_calibrator를 시작한 다음 터치하라는 지점을 터치합니다. 완료되면 터미널 창에 xorg에서 사용할 정보가 표시됩니다.

user1:~> xinput_calibrator
Calibrating EVDEV driver for "Goodix Capacitive TouchScreen" id=11
        current calibration values (from XInput): min_x=66, max_x=725 and min_y=-5, max_y=1284

Doing dynamic recalibration:
        Setting new calibration data: 61, 730, -3, 1272


--> Making the calibration permanent <--
  copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf'
Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "Goodix Capacitive TouchScreen"
        Option  "Calibration"   "61 730 -3 1272"
EndSection

관련 정보