디지멘드 타블렛, 물리적 도면 영역 비율이 너무 작습니다.

디지멘드 타블렛, 물리적 도면 영역 비율이 너무 작습니다.

관련된:Full HD LCD 모니터는 1024x768 CRT를 읽으며 해상도 오류 문제가 있습니다.

yiynova mvp22u 디지타이저의 DVI 케이블에 문제가 있어서 더 이상 EDID 데이터를 전송할 수 없습니다. 우연히 모니터에 대한 EDID 데이터 사본이 없어서 올바른 모니터 해상도를 얻기 위해 다른 모니터를 사용했습니다. 다른 화면에서 문제가 해결되었습니다. 잘못된 해상도 문제이지만 새로운 문제가 발생했습니다.

포인터 영역이 다른 화면 아래의 화면으로 올바르게 제한됩니다.

xinput set-prop 8 "Evdev Axis Calibration" 0 2040 -2000 2020

내 태블릿 모니터는 다른 1080p LCD 모니터보다 낮습니다.

그러나 발생하는 문제는 화면의 활성 그리기 영역이 드라이버의 활성 그리기 영역과 완전히 불균형하다는 것입니다. 아니면 더 간단하게,

이제 스타일러스로 태블릿에 그림을 그리면 화면 왼쪽 상단에 있는 작은 영역이 포인터를 전체 화면으로 드래그합니다. 이는 대략 1x1인치 영역이 전체 22인치 화면 영역으로 변환되는 것과 같습니다. . 스타일러스를 1x1 영역 밖으로 이동하면 포인터가 화면 모서리로 이동합니다.

저는 digimend와 evdev를 사용하고 있으며 이것이 제가 사용해야 하는 매개변수입니다.

xinput list-props 8
Device 'UC-LOGIC 21.5" Tablet Monitor Pen':
    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 (278): 0
    Device Accel Constant Deceleration (279):   1.000000
    Device Accel Adaptive Deceleration (280):   1.000000
    Device Accel Velocity Scaling (281):    10.000000
    Device Product ID (271):    21827, 77
    Device Node (272):  "/dev/input/event9"
    Evdev Axis Inversion (282): 0, 0
    Evdev Axis Calibration (283):   0, 2040, -2000, 2020
    Evdev Axes Swap (284):  0
    Axis Labels (285):  "Abs X" (275), "Abs Y" (276), "Abs Pressure" (277)
    Button Labels (286):    "Button Unknown" (274), "Button Unknown" (274), "Button Unknown" (274), "Button Wheel Up" (158), "Button Wheel Down" (159), "Button Horiz Wheel Left" (160), "Button Horiz Wheel Right" (161)
    Evdev Scrolling Distance (287): 0, 0, 0
    Evdev Middle Button Emulation (288):    0
    Evdev Middle Button Timeout (289):  50
    Evdev Middle Button Button (290):   2
    Evdev Third Button Emulation (291): 0
    Evdev Third Button Emulation Timeout (292): 1000
    Evdev Third Button Emulation Button (293):  3
    Evdev Third Button Emulation Threshold (294):   20
    Evdev Wheel Emulation (295):    0
    Evdev Wheel Emulation Axes (296):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (297):    10
    Evdev Wheel Emulation Timeout (298):    200
    Evdev Wheel Emulation Button (299): 4
    Evdev Drag Lock Buttons (300):  0

내 문제에 대한 가장 가능성 있는 해결책은 "좌표 변환 행렬"이지만 그것이 어떻게 작동하는지 전혀 모릅니다. 온라인에서 이에 대해 많이 읽었지만 전혀 이해가 되지 않습니다.

케이블을 교체하고 올바른 EDID를 얻을 수 있으면 좋겠지만 케이블이 화면에 내장되어 있기 때문에 그럴 수 없습니다.

어떤 도움이라도 대단히 감사하겠습니다.

답변1

해결했습니다 생각보다 쉬웠어요 Nvidia의 Windows 드라이버를 사용하여 화면에 대한 사용자 정의 해상도를 만든 다음 생성된 EDID를 파일에 저장했습니다. 1920x1080 해상도가 지원된다는 점, 이론적으로는 해당 해상도를 가진 모든 EDID가 작동해야 함) 다음을 사용하여 추출했습니다.nirsoft 모니터링 정보 뷰어그리고 바이너리 파일로 저장합니다.

그 후 화면이 nvidia의 X11에서 올바른 해상도로 실행되도록 하려면 xorg.conf.d/10-monitor.conf에서 X가 화면에서 이 EDID를 사용하도록 지시하는 옵션을 설정해야 했습니다. 이것:)

Section "Screen"
    Identifier             "Screen0" 
    Device                 "Device0" 
    Monitor                "Monitor0"
    DefaultDepth           24
    Option                 "CustomEDID" "DVI-I-0:/path/to/edidfilename.bin"
    SubSection             "Display"
        Depth              24
    EndSubSection
EndSection

DVI-I-0은 xrandr이 내 태블릿이 연결되어 있다고 말하는 DVI 포트입니다.

^원래 질문을 썼을 때 제가 있었던 곳입니다. 그러나 지금까지 내가 깨닫지 못한 것은 digimend 드라이버가 X11이 아닌 kernel/kms에서 해상도 정보 데이터를 가져오는 것 같습니다. (Wayland와 약간 비슷함)

따라서 이 문제를 해결하려면 사용자 정의 EDID 파일을 다음 위치로 이동해야 했습니다.

/usr/lib/firmware/edid/edidfilename.bin

그런 다음 마침내 문제를 해결하고 KMS가 표시된 edid를 읽도록 하려면 커널 명령줄에 다음 줄을 추가해야 했습니다(grub을 사용하는 경우 /etc/default/grub에서 설정할 수 있으며 grub을 실행해야 함) - 설정을 적용하려면 mkconfig 및 재부팅)

drm_kms_helper.edid_firmware=DVI-I-0:edid/edidfilename.bin

(DVI-I-0 부분을 건너뛰고 '...=edid/edidfilename.bin' 이라고 쓸 수도 있습니다.)

이로써 제가 직면했던 문제가 해결되었으며 이제 xinput 또는 xorg.conf 파일을 통해 태블릿의 evdev 축 보정을 설정하고 이전 기능으로 되돌려 나머지를 성공적으로 구성할 수 있습니다. 이것이 누군가에게 도움이 되기를 바랍니다. 동일한 태블릿을 가질 필요는 없습니다. (모든 Digimend 지원 디스플레이 태블릿에서도 동일한 일이 발생할 수 있습니다.)

드디어 Windows에서 그리기를 멈출 수 있게 된 것 같습니다. :D

관련 정보