Digimend 數位板,物理繪圖區域比例太小
相關:全高畫質液晶顯示器讀取為 1024x768 CRT,解析度錯誤問題
我的 yiynova mvp22u 數字化儀上的 DVI 電纜出現問題,它不再傳輸 EDID 數據,我碰巧沒有顯示器的 EDID 數據副本,因此為了獲得顯示器的正確解析度,我使用了來自不同的顯示器,這解決了螢幕解析度錯誤的問題,但產生了一個新問題。
指針的區域正確地限制在我的另一個螢幕下方的螢幕上
xinput set-prop 8 "Evdev Axis Calibration" 0 2040 -2000 2020
我的平板顯示器低於另一個 1080p 液晶顯示器。
但是出現的問題是螢幕上的活動繪圖區域與驅動程序中的活動繪圖區域完全不成比例。或者更簡單地說,
現在,如果我用手寫筆在平板電腦上繪圖,螢幕左上角的一個小區域會將我的指針拖到整個螢幕上,我們說的是大約 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,但這不是一個選項,因為電纜嵌入在螢幕中。
任何幫助將不勝感激。
我解決了它,它比我想像的要簡單,我使用 Nvidia 的 Windows 驅動程序為螢幕創建自定義解析度,然後我將創建的 EDID 保存到一個文件中(這基本上只是一個 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 驅動程序顯然是從核心/kms 中提取解析度資訊數據,而不是 X11。(有點像韋蘭)
所以為了解決這個問題,我不得不將我的自定義 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 軸校準以將其恢復到以前的功能。我希望這對某人有所幫助,您不必擁有相同的平板電腦(任何支持數字化的顯示器平板電腦都可能發生同樣的情況)
看起來我終於可以停止在 Windows 上繪圖了:D