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

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

관련된:FullHD LCD 모니터가 1024x768 CRT로 읽혀지고, 잘못된 해상도 문제

yiynova mvp22u 디지타이저의 DVI 케이블에 문제가 있어서 더 이상 EDID 데이터를 전송하지 않습니다. 모니터에 대한 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 MonitorInfoView그리고 바이너리 파일로 저장했습니다.

그 후 화면이 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이 DVI 포트 xrandr에 따르면 내 태블릿이 연결되어 있습니다.

^원래 질문을 썼을 때 제가 있었던 곳입니다. 그러나 지금까지 내가 깨닫지 못한 것은 digimend 드라이버가 분명히 X11이 아닌 커널/km에서 해상도 정보 데이터를 가져온다는 것입니다. (웨일랜드와 비슷해요)

따라서 이 문제를 해결하려면 사용자 정의 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' 이라고 쓸 수도 있습니다)

이로써 제가 직면했던 문제가 해결되었습니다. 이제 태블릿의 evdev 축 보정을 설정하여 이전 기능으로 복원함으로써 xinput 또는 xorg.conf 파일을 통해 나머지를 성공적으로 구성할 수 있습니다. 이것이 누군가에게 도움이 되기를 바랍니다. 동일한 태블릿을 가질 필요는 없습니다. (아마도 디지멘드를 지원하는 모니터 태블릿에서도 같은 일이 일어날 수 있습니다)

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

관련 정보