{"id":323,"date":"2016-03-05T22:21:02","date_gmt":"2016-03-05T22:21:02","guid":{"rendered":"http:\/\/www.micha.name\/blog\/?p=323"},"modified":"2016-03-05T22:21:02","modified_gmt":"2016-03-05T22:21:02","slug":"debian-jessie-fixing-monitor-resolution","status":"publish","type":"post","link":"https:\/\/www.micha.name\/blog\/2016\/03\/05\/debian-jessie-fixing-monitor-resolution\/","title":{"rendered":"Debian &#8220;Jessie&#8221; &#8211; Fixing monitor resolution"},"content":{"rendered":"<p>TL;DR: Use a custom EDID to force your monitors to the correct resolution.<\/p>\n<ul>\n<li>Download EDID for your monitor from the Internet and\/or use a utility to extract it from a working system (eg, Windows)<\/li>\n<li>Add configuration lines for your monitor(s) to your xorg.conf<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<p>So I got a shiny new NVidia GTX 960 graphics card. Got it up and running under Windows 7 with my twin (at the time; now triple) iiyama AU5131DT monitors. No worries; apart from the fact that Windows \/ games are stupid when it comes to multiple monitors. But that&#8217;s another story.<\/p>\n<p>I eventually managed to boot into Debian again (I _HATE_ systemd. Seriously, the people responsible need .. anyway), updated the nvidia driver and kernel (from jessie-backports), rebooted, and got into KDE.\u00a0 Except.. the monitors were all running at 1024&#215;768. Their native resolution is 1600&#215;1200, and they were working perfectly happily under Windows.<\/p>\n<p>Long story short, turns out that for some reason the current drivers (352.79-1~bpo8+1) + kernel (4.3+70~bpo8+1) can&#8217;t read the EDID data from the monitors.<\/p>\n<p>Following various guides and HOWTOs, I played around with xrandr, cvt, and gtf\u00a0 utilities for a while, but kept getting the same error:<br \/>\n<span class=\"collapseomatic \" id=\"id6a118c924a6cd\"  tabindex=\"0\" title=\"BadMatch\"    >BadMatch<\/span><div id=\"target-id6a118c924a6cd\" class=\"collapseomatic_content \">\n<pre style=\"padding-left: 30px;\">micha@urutu:~$ cvt 1600 1200 60\r\n# 1600x1200 59.87 Hz (CVT 1.92M3) hsync: 74.54 kHz; pclk: 161.00 MHz\r\nModeline \"1600x1200_60.00\"  161.00  1600 1712 1880 2160  1200 1203 1207 1245 -hsync +vsync\r\nmicha@urutu:~$ xrandr --newmode \"1600x1200_60.00\" 161.00 1600 1712 1880 2160 1200 1203 1207 1245 -hsync +vsync\r\nmicha@urutu:~$ xrandr --addmode eDP1 1600x1200_60.00\r\n  X Error of failed request: BadMatch (invalid parameter attributes)\r\n  Major opcode of failed request: 140 (RANDR)\r\n  Minor opcode of failed request: 18 (RRAddOutputMode)\r\n  Serial number of failed request: 33\r\n  Current serial number in output stream: 34\r\n<\/pre>\n<\/div>\nI tried adding Modelines into xorg.conf, also to no avail.<\/p>\n<p>Finally I decided to make a custom EDID by booting back into Windows and using the Phoenix EDID Designer (<a href=\"http:\/\/www.tucows.com\/preview\/329441\/Phoenix-EDID-Designer\">download here<\/a>). Converted the output file to binary format, added the relevant lines into xorg.conf, restarted X, and bingo, shiny 1600&#215;1200 resolution!<\/p>\n<span class=\"collapseomatic \" id=\"id6a118c924a776\"  tabindex=\"0\" title=\"\/etc\/X11\/xorg.conf.d\/20-nvidia.conf\"    >\/etc\/X11\/xorg.conf.d\/20-nvidia.conf<\/span><div id=\"target-id6a118c924a776\" class=\"collapseomatic_content \">\n<pre style=\"padding-left: 30px;\">Section \"Device\"\r\n        Identifier \"GeForce GTX 960\"\r\n        Driver \"nvidia\"\r\n\r\n        # MKW 2016.03.05 - add custom edid since current drivers don't pick it up\r\n        Option  \"CustomEDID\" \"HDMI-0:\/etc\/X11\/au5131dt_edid.bin; DVI-I-1:\/etc\/X11\/au5131dt_edid.bin; DVI-D-0:\/etc\/X11\/au5131dt_edid.bin\"\r\n        Option  \"IgnoreEDID\"    \"false\"\r\n        Option  \"UseEDID\"       \"true\"\r\nEndSection\r\n<\/pre>\n<\/div>\n<p>Sometimes I really dislike Linux. Today was one of those times.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fix monitor resolution using a custom EDID file.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11,56,29],"tags":[12,30],"_links":{"self":[{"href":"https:\/\/www.micha.name\/blog\/wp-json\/wp\/v2\/posts\/323"}],"collection":[{"href":"https:\/\/www.micha.name\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.micha.name\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.micha.name\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.micha.name\/blog\/wp-json\/wp\/v2\/comments?post=323"}],"version-history":[{"count":3,"href":"https:\/\/www.micha.name\/blog\/wp-json\/wp\/v2\/posts\/323\/revisions"}],"predecessor-version":[{"id":326,"href":"https:\/\/www.micha.name\/blog\/wp-json\/wp\/v2\/posts\/323\/revisions\/326"}],"wp:attachment":[{"href":"https:\/\/www.micha.name\/blog\/wp-json\/wp\/v2\/media?parent=323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.micha.name\/blog\/wp-json\/wp\/v2\/categories?post=323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.micha.name\/blog\/wp-json\/wp\/v2\/tags?post=323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}