1

Related: FullHD lcd monitor read as 1024x768 CRT, wrong resolution problem

I had issues with my DVI cableo n my yiynova mvp22u digitizer, it's no longer transmitting EDID data, I did not happen to have a copy of the EDID data for the monitor so to get the resolution of the monitor right I used the EDID from a different monitor, this solved the issue of having a wrong screen resolution, but created a new problem.

The area of the pointer is correctly confined to the screen which is below my other screen by way of

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

My tablet monitor is below another 1080p lcd monitor.

However the issue that arose is that the active drawing area on the screen is completely out of proportion with the active drawing area in the drivers. Or to put it more simply,

Right now, if I draw with my stylus on the tablet, a small area in the upper left corner of my screen will drag my pointer across the entire screen, we're talking roughly a 1x1 inch area is being translated to the entire 22inch screen area. If I move the stylus outside of this 1x1 area the pointer will go into the corners of the screen.

I'm using digimend and evdev, these are the parameters I have to work with.

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

The one most likely to be able to fix my issue would be "Coordinate Transformation Matrix" but I have absolutely no idea how it works, I've read a bunch about it online but it doesn't make any sense to me at all.

I wish I could just change out my cable and get the correct EDID out that way but this is not an option since the cable is embedded in the screen.

Any assistance would be greatly appreciated.

0

I solved it, it was simpler than I thought, I used Nvidia's windows driver to create a custom resolution for the screen, then I saved the EDID that this created into a file (this was basically just an EDID that said nothing but that the screen supports 1920x1080 resolution, in theory any EDID with that resolution should have worked) I extracted it using nirsoft MonitorInfoView and saved it to a binary file.

After this, in order for the screen to run at the correct resolution in X11 under nvidia, I had to set an option in xorg.conf.d/10-monitor.conf to tell X to use this EDID for the screen (looked something like this:)

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

Where DVI-I-0 is the DVI port xrandr said my tablet was plugged into.

^this is where I was at when I wrote the original question. However what I didn't realize until now is that the digimend drivers apparently draw the resolution information data from the kernel/kms, not X11. (Kinda like Wayland)

So in order to resolve this issue I had to move my custom EDID file to:

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

and then to finally solve it and make the KMS read that edid for this display I had to add this line to the kernel command line (if you use grub you will be able to set this in /etc/default/grub, you have to run grub-mkconfig and restart for the settings to take effect)

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

(note that you can also skip the DVI-I-0 part and just write '...=edid/edidfilename.bin' )

This solves the issue I was facing, the rest can now be successfully configured via xinput or xorg.conf files by setting the evdev axis calibration for the tablet to restore it to it's previous functionality. I hope this helps someone, you don't have to have the same tablet (the same can probably happen to any digimend supported monitor tablet)

Looks like I can finally stop drawing on Windows :D

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.