Tableta Digimend, las proporciones del área de dibujo físico son demasiado pequeñas

Tableta Digimend, las proporciones del área de dibujo físico son demasiado pequeñas

Relacionado:Monitor LCD FullHD leído como 1024x768 CRT, problema de resolución incorrecta

Tuve problemas con mi cable DVI en mi digitalizador yiynova mvp22u, ya no transmite datos EDID, no tenía una copia de los datos EDID para el monitor, así que para obtener la resolución correcta del monitor utilicé el EDID de un monitor diferente, esto resolvió el problema de tener una resolución de pantalla incorrecta, pero creó un nuevo problema.

El área del puntero está correctamente confinada a la pantalla que está debajo de mi otra pantalla a través de

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

El monitor de mi tableta está debajo de otro monitor LCD de 1080p.

Sin embargo, el problema que surgió es que el área de dibujo activa en la pantalla está completamente desproporcionada con el área de dibujo activa en los controladores. O para decirlo más simplemente,

En este momento, si dibujo con mi lápiz óptico en la tableta, un área pequeña en la esquina superior izquierda de mi pantalla arrastrará mi puntero por toda la pantalla, estamos hablando aproximadamente de un área de 1x1 pulgadas que se traduce a toda la pantalla de 22 pulgadas. área. Si muevo el lápiz fuera de esta área de 1x1, el puntero irá a las esquinas de la pantalla.

Estoy usando digimend y evdev, estos son los parámetros con los que tengo que trabajar.

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

El que tiene más probabilidades de solucionar mi problema sería "Matriz de transformación de coordenadas", pero no tengo ni idea de cómo funciona. He leído mucho sobre ello en línea, pero no tiene ningún sentido para mí.

Desearía poder cambiar mi cable y obtener el EDID correcto de esa manera, pero esta no es una opción ya que el cable está incrustado en la pantalla.

Cualquier ayuda sería muy apreciada.

Respuesta1

Lo resolví, fue más simple de lo que pensaba, usé el controlador de Windows de Nvidia para crear una resolución personalizada para la pantalla, luego guardé el EDID que esto creó en un archivo (esto era básicamente solo un EDID que no decía nada más que la pantalla). admite resolución de 1920x1080, en teoría cualquier EDID con esa resolución debería haber funcionado) Lo extraje usandonirsoft MonitorInfoViewy lo guardó en un archivo binario.

Después de esto, para que la pantalla se ejecutara con la resolución correcta en X11 bajo nvidia, tuve que configurar una opción en xorg.conf.d/10-monitor.conf para decirle a X que usara este EDID para la pantalla (parecía algo como esto:)

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

Donde DVI-I-0 es el puerto DVI al que xrandr dijo que estaba conectada mi tableta.

^Aquí es donde estaba cuando escribí la pregunta original. Sin embargo, de lo que no me di cuenta hasta ahora es que los controladores digimend aparentemente extraen los datos de información de resolución del kernel/kms, no del X11. (Algo así como Wayland)

Entonces, para resolver este problema, tuve que mover mi archivo EDID personalizado a:

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

y luego, para finalmente resolverlo y hacer que el KMS lea ese edid para esta pantalla, tuve que agregar esta línea a la línea de comando del kernel (si usa grub podrá configurar esto en /etc/default/grub, debe ejecute grub-mkconfig y reinicie para que la configuración surta efecto)

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

(tenga en cuenta que también puede omitir la parte DVI-I-0 y simplemente escribir '...=edid/edidfilename.bin' )

Esto resuelve el problema que estaba enfrentando, el resto ahora se puede configurar exitosamente a través de archivos xinput o xorg.conf configurando la calibración del eje evdev para que la tableta restaure su funcionalidad anterior. Espero que esto ayude a alguien, no es necesario tener la misma tableta (probablemente le pueda pasar lo mismo a cualquier tableta con monitor compatible con digimend)

Parece que finalmente puedo dejar de dibujar en Windows :D

información relacionada