Stuff

Korean 27″ Displays

I recently purchased two new 27″ displays from a Korean Ebayer. You can read all about them here and here.  Basically they’re the same panels that are in the nice Apple displays, but they didn’t quite make the cut for one reason or another, so they got sent to obscure Korean manufacturers who sell them in monitors for 1/4 the price.

I purchased Sunday afternoon for $319 each, shipping included, and 48 hours later they arrived. They both look remarkably good, I really had to hunt to find any discernible defect. One has two tiny stuck pixels and the other I *think* is just a hair dimmer than the other, which seemed to go away via brightness adjustment.

Really, though, this post is about how I got them to play nicely with the Nvidia TwinView on my Ubuntu desktop. You see, with the nouveau driver that is loaded by default, one worked fine, but to get the full acceleration and TwinView, I had to install the nvidia module, and for some reason it didn’t want to properly retrieve the monitor’s EDID. The result was a flickering 640 x 480 display; not pretty.

In troubleshooting, I noticed that ‘xrandr –prop’ would get the EDID nicely, but tools like get-edid from the read-edid package would return 128 bits worth of ‘1’s and complain of a corrupt EDID. X seemed to pick up the proper one when running the nouveau driver, and not when running the nvidia driver.

So I fired up a hex editor and pasted the EDID as reported via xrandr, all 128 bytes, and added a custom EDID file to my xorg.conf so the nvidia driver would work with the dual displays.

You can add the following to the screen section of /etc/X11/xorg.conf, just under metamodes or wherever you prefer.

Option “CustomEDID” “DFP:/etc/X11/shimian-edid.bin”

Note you can also do semicolon delimited for multiple displays (or so I’ve read):

Option “CustomEDID” “DFP-0:/etc/X11/shimian-edid.bin; DFP-1:/etc/X11/catleap.bin”

I’m including the QH270 EDID .bin file here, in case anyone is desperately looking for it or having a hard time creating one. It should be similar or even work as a drop-in replacement for the Catleap Q270, aside from the Achieva models.

23 comments

  1. Cocoabean

    This fixed my problem witha Shimian and a GT 430. I am so glad I can use the proprietary drivers. I assumed I was SOL for a while, I didn’t realize the EDID was so important. Thanks again!!!

  2. dogphlap

    Hi,
    I have downloaded the file edid-shimian.bin from http:learnitwithme.com/wp-content/uploads/2012/05/edid-shimian.bin but both parse-edid and get-edid tell me the file is corrupt (repeating the download changed nothing). The md5sum I get is: dc6c58c971715e8043baef058b675eec
    As this file has full root privileges it would seem a good spot for some extra bytes of malware. Please comment.

    Best regards dogphlap.

  3. marcusadmin Post author

    Don’t blame you at all. The file should be really small, 129 bytes (128 for edid + end of file character). If it’s not then it may have downloaded a whole web page or something.

    marcus@marcus-ubuntu:~/Downloads$ wget http://learnitwithme.com/wp-content/uploads/2012/05/edid-shimian.bin
    –2012-10-17 22:03:04– http://learnitwithme.com/wp-content/uploads/2012/05/edid-shimian.bin
    Resolving learnitwithme.com (learnitwithme.com)… 69.27.171.71
    Connecting to learnitwithme.com (learnitwithme.com)|69.27.171.71|:80… connected.
    HTTP request sent, awaiting response… 200 OK
    Length: 129 [application/octet-stream]
    Saving to: `edid-shimian.bin’

    100%[=======================================================================>] 129 –.-K/s in 0s

    2012-10-17 22:03:04 (4.24 MB/s) – `edid-shimian.bin’ saved [129/129]

    marcus@marcus-ubuntu:~/Downloads$ md5sum edid-shimian.bin
    c25b08c9b9310ba6cfef665bdb10f759 edid-shimian.bin

    marcus@marcus-ubuntu:~/Downloads$ parse-edid < edid-shimian.bin
    parse-edid: parse-edid version 2.0.0
    parse-edid: EDID checksum passed.

    # EDID version 1 revision 3
    Section “Monitor”
    # Block type: 2:0 3:fc
    Identifier “QHD270″
    VendorName “ACB”
    ModelName “QHD270″
    # Block type: 2:0 3:fc
    # Block type: 2:0 3:fc
    # Block type: 2:0 3:fc
    # DPMS capabilities: Active off:yes Suspend:no Standby:no

    Mode “2560×1440″ # vfreq 59.951Hz, hfreq 88.787kHz
    DotClock 241.500000
    HTimings 2560 2608 2640 2720
    VTimings 1440 1443 1448 1481
    Flags “-HSync” “+VSync”
    EndMode
    # Block type: 2:0 3:fc
    # Block type: 2:0 3:fc
    # Block type: 2:0 3:fc
    EndSection

  4. dogphlap

    Hi,
    responding to Marcus’s replay to my comment of yesterday.
    Thank you. I just followed your link “I’m including the QH270 EDID .bin file here”. This gave me a file that get-edid and parse-edid were both happy with. The md5sum of this good file was: c25b08c9b9310ba6cfef665bdb10f759.
    I have removed all copies of the corrupt file. However if that corrupt file contained malware my system may already be compromised. Does anyone know where to send such a suspect file to be checked. That task is well beyond my capabilities. Are these edid files linux specific or do other operating systems use these same files ?

    Best regards dogphlap.

  5. dogphlap

    One post-script.
    Both the corrupt and the non-corrupt edid-shimian.bin files worked correctly with my Shimian QH270-IPSB-HLD monitor.

    Best regards dogphlap.

  6. marcusadmin Post author

    If this edid file doesn’t work for you, and you can’t get it via the means I mention, it may be that you’re not getting a full dual link dvi in the conversion. I have seen some special hardware that is required to go from a thunderbolt port to a dual link dvi, for example. Normal apple mini displayport cables are only single link. I wish I could help more than that… perhaps you have another system or one you can loan to try to see if you can get an edid off of it, or at least verify that it works when using a dual link?

  7. Mokilok

    Hi Marcus,
    I just wanted to say thank you for sharing. I bought a Catleap Q270 and freshly installed Mint so obviously once the propriety drivers were installed the screen was not longer working.
    I just used the edid-shimian.bin for my Monitor and it worked perfectly.
    I had spent about a day trying to figure this one out before I saw your post!

    Thanks again!

    Mok,

  8. Phil

    Hi Marcus,

    Just wanted to add my thanks here. I spent two days alternately beating my head against the wall and editing xorg.conf before I found this page. Your fix worked right away with my new Shimian monitor on an NVidia card.

    Phil

  9. edam

    Thanks mate! Your EDID block did the trick for me as well.

    I’m using a GTX 295 which has less than 1GB on each of the cores, so I thought my graphics card might be incompatible for a while! Its such a shame that Nvidia don’t just develop their Linux driver as a FLOSS project.

  10. Johan

    Hey! Thanks a bunch for this. It really helped me a lot. Is is possible to change the values in the bin file? I need to get a higher refresh rate.

  11. marcusadmin Post author

    I don’t think you can, as it defines the capabilities of the hardware, rather than setting what the hardware operates at. I’ve heard of people overclocking their monitors, and it working on certain models (I think the catleap ones), but I don’t think this is how they do it. I haven’t looked at it since I made this post, however, so I could be wrong.

  12. The Fixer

    Hey,

    I’ve got a similar Korean 27″ (Potalion aka “TOPSYNC”), which seems to have a bogus EDID too. My particular issue was the kernel log spam produced by the drm driver (works fine nevertheless), so I decided to take a closer look at it.

    Make sure you have i2c-utils installed, and modprobe `eeprom`. Then, `ls -l /sys/bus/i2c/devices/`and identify all buses having a device on address 0050.

    For each bus, run `decode-edid BUSNUMBER` and find your target (I have two monitors connected, the correct bus turned out to be 5 in my case).

    Next, rmmod eeprom and modprobe i2c-dev. Then, use i2cdump to dump the EDID. In my case (bus 5):

    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
    00: 00 ff ff ff ff ff ff 00 51 f0 9b 04 00 00 00 00 ……..Q???….
    10: 28 15 01 03 a5 3c 22 78 22 6f b1 a7 55 4c 9e 25 (???? 01). The extension is indeed present but all 0xff – Not sure what the specs say, but the drm driver surely isn’t happy about it.

    So, let’s set the extension byte to 0x00, and fixup the checksum at offset 0x7f (it’s 0x08, and should make the sum of bytes[0x00..0x7e] mod 128 equal to 0). So if we remove 1 at 0x7e, we need to add 1 to the checksum byte 0x08 -> 0x09.

    Finally, use i2cset to fix the extension byte and checksum:

    $ i2cset 5 0x50 0x7e 0x00
    $ i2cset 5 0x50 0x7f 0x09

    All done, and drm no longer complains. I suspect this makes it work with the Nvidia driver too – just be sure to make a store a backup of your original EDID in case you need to rollback.

  13. The Fixer

    Ouch. Seems like my i2cdump output messed up (and I forgot to list the actual command). Sorry – it should be pretty straightforward nevertheless: # i2cdump 5 0x50

  14. rebar

    Hello I cant get this to work. I have an korean monitor but not the Catleap Q270 will the bin file work with my monitor still?

    Can I just drag and drop it under /etc/X11/xorg.conf under metamodes?

    this is so frustrating…

  15. marcusadmin Post author

    No, you need to save the file shimian-edid.bin somewhere, and then add Option “CustomEDID” “DFP:/path/to/file” under the ‘screen’ section that applies to your setup (there may be multiple screen sections if you’ve been tinkering with automated utilities). It may be that this dump, being over a year old, no longer applies. You may need to generate your own .bin

    For what it’s worth, I’ve tried ATI/AMD cards as well over the last year and never had to do any of this to get it to work with them

  16. Daniel

    Thanks for this. Made my shimian work properly with the nvidia drivers after I gave up well over a year ago. Nice to use it with my linux box.

  17. Josh

    I love you! Thank you sooo much! I have been so frustrated trying to get my GTX 690 working in Ubuntu, turns out it was my Catleap’s fault. Thank you thank you thank you! :)

    Make sure that bin file stays hosted forever. :p

  18. Alkali

    This was perfect. I must have tried a dozen xorg combinations and for some reason my display alway came out grainy unless I could set it to 96hz, which was infrequent at best. This file saved me and it is going on my Google Drive forever and ever and ever. Thank you for this write up and file!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>