Connecting a Dell UltraSharp U3014 to a Mac, ugh

Share Button

Note (November 21st 2013): Update added in the fix section for issue that occurred after upgrading to Mavericks (OS X 10.9)

I really like the Dell monitor so this first part is a comparison and why I went with it.  If you ended up here on a search for a blurry Dell monitor connected to your Mac, just jump down to the next section where you see “The Fix!

So this was not as straight forward as I expected, but the end result was great at least. I do a lot of work that requires numerous things on the screen at the same time; consoles outputting data, monitoring software, etc. I run my Mac Book Pro 15 Retina at typically either 1920 x 1200 or an even higher resolution of 2560 x 1600 (requires third party app called SwitchResX) so I can maximize the screen use. Fortunately I have good eyes; most people find my screen nearly unreadable.

When at my office, I wanted to have an external monitor, and I figured why not go as high res as possible for the same reasons I run my screen on the MBPr itself at high res. I was considering the Apple 27″ Thunderbolt display, about $1k at the time of this article, but also noticed some great reviews of the Dell UltraSharp U3014 30″.  I purchased it for about $1200 but as of mid-July 2013, Amazon just dropped the price to $989!

Here are the differences, some good, some bad:

Dell U3014 30″ Apple Thunderbolt 27″ Cinema Display
Maximum Resolution 2560 x 1600 (native) 2560 x 1440 (native)
Aspect Ratio 16:10 16:9
Video Inputs
  • DisplayPort In
  • Mini-DisplayPort In
  • HDMI In
  • DVI-D In
  • (All Via Connectors)
Thunderbolt In (Via Fixed Cable)
Video Outputs DisplayPort Out Thunderbolt Out
USB 3.0
  • (1) Input
  • (2) Rear mounted
  • (2) Side mounted
  • (0) Input; handled via Thunderbolt
  • (3) Rear mounted
SD Card Reader Side Mounted
Gigabit Ethernet Rear Mounted RJ-45
Power Output 12v DC Magsafe for Mac Books
Screen material Traditional LCD monitor Glass face

I went with the Dell monitor for a few reasons; first, it has a higher resolution and I like a LOT of stuff on my screen at once.  Next, my office has windows and is pretty bright during the day; I get glare from my MacBook screen so I knew I’d have the same issue with the glass-faced Apple monitor; third, I may connect a PC to it from time to time so the Thunderbolt won’t work for me.  If you’re exclusively Apple, the Apple display is pretty damn nice; you plop your Mac Book down, plug in the combo Thunderbolt+Magsafe cable and now you’ve just got one small cable running across your desk that takes care of USB ports, wired gigabit Ethernet (via the monitor’s port), display and you can chain more Thunderbolt devices behind it (such as things other than monitors).  It also looks a lot nicer on your desk; the Dell has your traditional old school boxy PC monitor feel with its big plastic bezel.

Where the Dell comes out ahead, besides the resolution and input options, are the fact that it has the card reader and two USB ports on the side.  If you commonly bring these types of things with you, it’s a lot easier to easily plug in there than going around the back of the monitor.  Of course, for some stupid reason, Dell put them mid way up on the side; this is a 30″ monitor, so mid way up is a foot off your desk.  They should have put them at the bottom on the left similar to how the controls are on the bottom right.  In any case, while you can’t chain other non-display devices off of it, you can at least add more DisplayPort devices chained.  Final gripe; the USB ports turn off when the monitor goes to sleep; so you can’t leave something on it to charge while not using the computer.


The Fix!

OS X 10.9 (aka Mavericks) update, November 21st 2013: After upgrading my MBPr 15 from 10.8.4 to 10.9, my computer would not boot past the Apple screen when the external monitor was attached.  If I connected the monitor while the computer was running, it would just turn itself off as if it had no signal.  I ended up having to swap my Thunderbolt Ethernet adapter and my monitor’s mini-DisplayPort cables between the two Thunderbolt ports and then my monitor worked again, albeit with the RGB issue having returned.  So I had to run through this procedure all over again after upgrading to 10.9 and now I’m back to working again.  No explanation for why the port swap was necessary.  The 10.9 upgrade appears to have removed the fix files from the Overrides folder as well, which I’m sure is related, but doesn’t explain the port issue.  Now back to the original story…

Here’s where the problems began.  At first, I did not realize that the Thunderbolt ports on a Mac Book are also Mini-DisplayPorts.  So, not knowing that, I purchased a $100 device to go Thunderbolt to DVI-D along with a DVI cable (which apparently was included in the box).  This kind of worked great but made a mess of my desk.  Kind of because while the picture was perfect at 2560 x 1600, two problems resulted:

  1. If I came in with the Mac sleeping, hooked in and woke it up (by opening the lid), the external display would never be detected.  I tried numerous combinations of plugging the usb (to power the device) in first, thunderbolt in first, before resuming, after, etc.  Nothing worked, always had to reboot.
  2. If the screen was put to sleep, when awaking, all my windows would jumble over to the laptop display (since I use both).  That was incredibly annoying.

So as I’m getting ready to box everything back up and buy the stupid Apple monitor, I notice my monitor came with a mini-DisplayPort to DisplayPort cable.  I plugged it in for the hell of it and hey it works.  Apparently mini-DP and Thunderbolt are the same connector and Apple has wired the Thunderbolt jacks to work with both.  So that eliminates the need for the $100 converter box and the extra thick DVI-D cable running across my desk.

But wait, something is wrong with the picture; it’s fuzzy or blurry and looks like shit.  Fortunately some searching lead me to this thread on a forum about the same issue:

http://embdev.net/topic/284710#3027030

Apparently the Mac Book detects this type of monitor, when using DisplayPort, as if it were a TV and uses the wrong color mode, YCbCr instead of RGB.  Of course as is typical in the Apple world, Apple folks blame the non-Apple hardware, but in reality you can fix it in your Mac but in no easy way.  I’m going to reproduce the script and steps posted in the forum above just in case that site ever goes away.  Also, supposedly Apple is working on a fix for this issue but it’s not present yet in OS 10.8.4 which I installed a few days ago (Summer 2013).

You’re going to need the following Ruby script:

#!/usr/bin/ruby
# Create display override file to force Mac OS X to use RGB mode for Display
# see http://embdev.net/topic/284710
# 
# Update 2013-06-24: added -w0 option to prevent truncated lines

require 'base64'

data=`ioreg -l -w0 -d0 -r -c AppleDisplay`

edid_hex=data.match(/IODisplayEDID.*?<([a-z0-9]+)>/i)[1]
vendorid=data.match(/DisplayVendorID.*?([0-9]+)/i)[1].to_i
productid=data.match(/DisplayProductID.*?([0-9]+)/i)[1].to_i

puts "found display: vendorid #{vendorid}, productid #{productid}, EDID:\n#{edid_hex}"

bytes=edid_hex.scan(/../).map{|x|Integer("0x#{x}")}.flatten

puts "Setting color support to RGB 4:4:4 only"
bytes[24] &= ~(0b11000)

puts "Number of extension blocks: #{bytes[126]}"
puts "removing extension block"
bytes = bytes[0..127]
bytes[126] = 0

bytes[127] = (0x100-(bytes[0..126].reduce(:+) % 256)) % 256
puts 
puts "Recalculated checksum: 0x%x" % bytes[127]
puts "new EDID:\n#{bytes.map{|b|"%02X"%b}.join}"

Dir.mkdir("DisplayVendorID-%x" % vendorid) rescue nil
f = File.open("DisplayVendorID-%x/DisplayProductID-%x" % [vendorid, productid], 'w')
f.write '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">'
f.write "
<dict>
  <key>DisplayProductName</key>
  <string>Display with forced RGB mode (EDID override)</string>
  <key>IODisplayEDID</key>
  <data>#{Base64.encode64(bytes.pack('C*'))}</data>
  <key>DisplayVendorID</key>
  <integer>#{vendorid}</integer>
  <key>DisplayProductID</key>
  <integer>#{productid}</integer>
</dict>
</plist>"
f.close

Now for the steps:

  1. Save the above file to your Downloads folder using the text editor, call it whatever you want, we’ll just call it bugfix.rb for the purposes of these instructions.
  2. You’re going to need an external keyboard and mouse if you’re doing this from a Mac Book laptop and not a Macintosh desktop/tower.
  3. Disconnect all monitors other than the new Dell monitor.  If you’re on a Mac Book, attach a keyboard and mouse (or Bluetooth) along with the new monitor and shut the lid.  It won’t go to sleep as long as the external monitor was working before closing the lid.
  4. Open a command prompt.
  5. Sudo to root; i.e. type:
    sudo su - root

    and enter your password.

  6. Now that you’re logged in as root, type the following (replacing username with your login name; for example, if you log in as JohnSmith, that’s what you need to use):
    cd /Users/username/Downloads/
    ruby bugfix.rb
  7. In that same directory, you should now see a folder named something along the lines of DisplayVendorID-10ac but the last part may change from one monitor to the next.  Type the following, replacing the code with whatever matches what you see in the folder:
    mv DisplayVendorID-10ac /System/Library/Displays/Overrides/
  8. Either reboot, or open the lid back up, disconnect the attached monitor and reconnect it.  That monitor should now be running in RGB mode without all the fuzzy blurry badness and tons of 2560 x 1600 high res goodness.
  9. If at some point you hear Apple has fixed this, you can remove /System/Library/Displays/Overrides/DisplayVendorID-10ac
Share Button

35 Replies to “Connecting a Dell UltraSharp U3014 to a Mac, ugh”

  1. Jim C

    THANK YOU !!!! I just bought a U3014 and had no clue how to hang it on my MacBookPro Retina (mid 2012). I tried HDMI, but only 1920×1080. Then I called Dell Tech Support… OMG… bounced thru 3 people, the last one told me, “We only help you if you have a Dell computer.” When I pointed-out the Dell website makes no mention of the U3014 being supported only on Dell computers, they told me to call Apple before returning the display. Would they have known the TB port is also a mini DP? Dunno, but it just came up 2560×1600 glorious pixels. There does seem to be some halos around high contrast edges, so I’ll have to try your patch next. I’m so thankful for your post… thanks for sharing that. — Jim

    Reply
    • Your Mom Post author

      Glad I could help Jim! Definitely try the fix too; it will cure that remaining issue for you. Kind of annoying but once you have the monitor working at its proper resolution and color mode it’s a whole new world.

      Reply
  2. Bob Smith

    Really great tip. I would like to have the same setup.
    Just one question, will the brightness on the Apple keyboard works for U3014?

    Thanks.

    Reply
    • Your Mom Post author

      Sorry for delayed reply; the keyboard brightness does not affect the monitor, at least in my case from MBPr to U3014 via mini-DP/thunderbolt.

      Reply
  3. Chad

    Should the 4081 file be in the root of the Overrides folder or should it remain within its Vendor folder and the Vendor folder should be in the Overrides? I’ve shut down after trying both and still getting the saturation issue.

    Reply
    • Your Mom Post author

      Hey Chad, I see what you mean, I honestly don’t know at this point if I missed a step from my documentation or the Mac OS moved the folder. Seems odd that I’d have missed a huge step but certainly possible. In any case, what was the DisplayProductID-4081 for me (4081 may not be the same id for your monitor), and what had been present in /System/Library/Displays/Overrides/ on my computer, seems to be located at /System/Library/Displays/Overrides/DisplayVendorID-10ac/ on my MacBook now. I may have completely missed the step of moving the DisplayVendorID folder since the Ruby code does appear to output it. If that is what occurred, then the ~/Downloads/DisplayVendorID-????/folder is what should be moved to Overrides.

      Oh, one other thing I see in my command history: I did a chown -R root:wheel on the /System/Library/Displays/Overrides/DisplayVendorID-10ac/ directory structure to set the ownership to match the other directories in there. The files were readable either way so I don’t think this matters but thought I’d mention it.

      So, from your computer, while ONLY the Dell monitor is connected (i.e. lid closed if on a MacBook), run this command:

      ioreg -l -x -w0 | grep DisplayVendorID

      You should see something like this:

      | | | | | | “DisplayVendorID” = 0x610

      The 610 is my MacBook’s internal monitor so you should get something else, perhaps 10ac like I have on my computer for Dell. If that’s the case, try moving the DisplayProductID-4081 into the relevant /System/Library/Displays/Overrides/DisplayVendorID-???? folder on your computer and reboot again. Hopefully that will get it working.

      I’ll have to re-run this when back at my Dell monitor so I can update the documentation.

      Reply
  4. Chad

    I deleted everything, rebooted, then retried. It’s still running in yPbPr input mode.

    Does this problem only happen over the DisplayPort cable? What about the Mini DisplayPort? Or HDMI? Or DVI (I’d have to get an adapter for this, but that’s not an issue).

    Reply
    • Your Mom Post author

      I’ve only done this from a MacBook Pro but on there I’m using the mini-DisplayPort to DisplayPort cable that came in the box with the monitor. On my MBPr, it has two Thunderbolt ports on the left side that actually function as mini-DP ports as well. You definitely don’t want to use HDMI as it can’t drive the monitor past 1080p resolution which is far less than it can do. You can use DVI but if your Mac behaves like my MBPr, it will not come out of sleep correctly. I had to use a Thunderbolt to DVI adapter when I tried that though. If your mac has a native DVI port, I don’t think you’ll even need this fix because my monitor worked fine when I was doing DVI.

      Reply
  5. Chad

    I tried a DVI-D adapter and I can only get 1920×1080 on the monitor, even while holding Option in the Display window.

    Reply
    • Your Mom Post author

      Ah, yeah for DVI-D, I think you’ll need the SwitchResX app because Apple doesn’t want you going above what they feel is good enough. Here’s a link:

      http://www.madrau.com/indexSRX4.html

      You can go all the way to 2560×1600 with that. You don’t need it when doing DisplayPort/Thunderbolt but do with DVI. I have that on my MBPr because I like to run the built-in screen at native resolution.

      Reply
  6. Chad

    It works!

    There’s a bug in your script on this page. You have:

    Dir.mkdir("DisplayVendorID-%x" % vendorid) rescue nil
    f = File.open("DisplayVendorID-%x/DisplayProductID-%x" % [vendorid, productid], 'w')
    f.write '

    '

    And they have on the linked site:

    Dir.mkdir("DisplayVendorID-%x" % vendorid) rescue nil
    f = File.open("DisplayVendorID-%x/DisplayProductID-%x" % [vendorid, productid], 'w')
    f.write '

    '

    Copy/paste bug? Using this script (http://embdev.net/attachment/highlight/168316) and following your instructions fixed everything.

    Reply
    • Chad

      Weird. It didn’t paste properly. You’ve got some HTML comments in your script in your post that isn’t in the linked script.

      Reply
      • Your Mom Post author

        Yikes I see what you mean; the xml tags got stripped out of the original when I pasted it in to wordpress; similar to your comment having them stripped as well. I just re-pasted the code in source edit mode so it shows up correctly now. Thanks for finding that.

        Reply
  7. waTeim

    I’ll just add that an external keyboard is unnecessary at least if you’re using a power book or probably anything with a backlit display as the class type of the built-in screen is AppleBacklightDisplay instead of AppleDisplay which is what the script chooses.

    To get an idea of that, run

    ioreg -l -i -r -n display0

    Reply
  8. Hans Henrik Ohlers

    Hi – Thanks for this information !!
    I have a iMac (21,5″ mid 2011 – OS 10.7.5)
    I am very interested in a DellU3014 as a second monitor for CAD work, but I was skeptic about the combination, so I did some research, and found this thread.
    In the fix, You mention to close the lid on a MacBook, to close down the screen.
    Can I do this fix on an iMac? How to close the screen on an iMac?
    Also in 4. you mention “open a command prompt” – where?
    I suspect it has something to do with Terminal
    http://blog.teamtreehouse.com/introduction-to-the-mac-os-x-command-line

    BUT – since i have NOOO experience in programming…
    I must admit I am slightly petrified with the thought of fucking up my iMac,
    inexperienced, and tinkering with… something 🙂

    And what do I do, if something goes wrong? Is it possible to unknowingly make changes to something vital in OSX in the proces?
    … argh, the irrational fear of the uneducated !!

    I see this patch is really needed, though – DELL makes some cool monitors.

    Perhaps the instructions could be for dummies too ?
    – absolutely, demeaningly, condescendingly explicit – in detail :-))

    Thanks – or ill just buy the smaller thunderbolt display, and let Apple have its way 🙂

    All the best

    Hans Henrik

    Reply
    • Your Mom Post author

      Hi Hans, in my particular case, the reason for connecting the monitor and then closing the lid was specific to my use of a laptop. The script looks for the active monitor so with both screens active, I didn’t want it to pick up the wrong one, although someone else commented on this post that stated it would not pic up the wrong one since the vendor is not Apple in the case of the Dell monitor.

      So, with that being said, on your imac, I think you’ll be fine just following the steps and not worrying about only having the Dell active. Correct on the use of Terminal.

      As long as you follow the steps precisely, there is no danger; the worst case is it would not allow the computer to display properly on the second monitor, but your first would remain as-is.

      Reply
        • Your Mom Post author

          Nope, there was no difference in the steps after going to Mavericks, I just had to run everything all over again because the custom setup got lost for whatever reason.

          For your 10.7.5 machine, all the steps should still be the same. The red text in steps 6 are where you have to replace the word “username” with the actual login name you use to log into your computer. If you’re set up to not require a login, I’m not actually sure what the username would be, however, you can still determine what it is by adding the following as a new step 4.5 in between steps 4 and 5; just type the command “id” once you’ve opened the command prompt. It should spit out something like this:

          uid=1000(hans)

          if your username was hans for example. Then in step 6 you’d type:

          cd /Users/hans/Downloads/
          ruby bugfix.rb

          The red text in steps 7 and 9 are going to be specific to your computer and monitor. So after you complete step 6, open Finder and navigate to your Downloads directory and look for a folder that starts with the name DisplayVendor; that is the one you need to move in the command shown in step 7.

          Reply
  9. Vilius Šumskas

    I’m trying to connect Dell U3014 monitor to an older Mac Pro (2009) running Mac OS X 10.6. And no matter what I do the colors on that display are insanely aggresive. For example the red is so red that it’s almost magenta.

    At first I’ve noticed that display preferences in the OS says that my monitor runs under 60hz NTSC. So I’ve browsed the web an found your solution to force to RGB mode. It worked in a sense that now display preferences shows the monitor correctly. However those awful colors remained the same. In Color tab I cannot even get Calibrate button to work. As soon I click it Mac OS says that “there is not factory default profile installed” or something along those lines.

    I have also noticed that if I quickly switch back and forth between “Force EDID” and other color profiles I get the correct colors. However as soon as I close System Preferences window the colors become incorrect again. And it’s not only that “Force EDID” profile. Strangely enough I can only get 2 or 3 color profiles to stick. All others jumps back to the default as soon as I close the preferences.

    Any ideas how to fix this?

    Reply
    • Your Mom Post author

      Hi Vilius, unfortunately I have no experience with the U3014 prior to 10.8 and never ran into that problem so I’m afraid I don’t have any ideas.

      Reply
  10. George

    Wel I did all the above and the DP still looks like crap. They only way to get it crisp is with that $100 apple dvi-d to TB adaptor. WTH?
    The other thing is that I think that the monitor was working with DP 1.2 before I ran the Ruby script. Now all I get is a blank screen. I had to return the monitor to DP 1.0 (or 1.1) whatever the default is on the (U3014) to get a display. Anyway Im going to delete the overide 10ac folder and go back to dvi-d and eat the 100 bucks and have that crappy adaptor on my desk. Any ideas before I throw in the towel?

    Reply
    • Your Mom Post author

      What kind of Mac are you connecting to? Do you have an HDMI port you can try just to make sure that works normally (even though the resolution will be less than ideal)? Also, make sure you’re trying to run the monitor at 2560 x 1600 when connected via DP.

      Reply
  11. David

    Your post just saved yet another soul. Moment ago I’ve tried your script with late 2013 Mac Pro and two U3014 – it worked perfectly. Thank you!
    For those trying with similar setup – I run the script with both monitors connected at t he same time and after restart both were running in RGB mode.

    Reply
  12. kamal

    I am trying to connect macbook pro 2011 with dell u3014. hdmi works ok but limited to 1080p. i want to ask whether to go for mdp to dp cable or apple tb to dvi dual link if i need full resolutions. thanks

    Reply
    • Your Mom Post author

      Either one will give you access to the full screen resolution, but going with a DVI adapter, in my experience, cost more, and gave me problems when resuming from sleep. The mini-DP to DP cable will not have any issues, is super cheap, and I’ve been using that for several years now.

      Reply
  13. Why is this so hard? lol

    Hi There! I’m not a ruby expert, but when I cut and paste your script into Atom and save as a .rb and try to run, I’m getting these errors. Do I need to convert to something?
    /Users/username/Downloads/bugfix.rb:18: syntax error, unexpected ‘;’, expecting ‘)’
    …scan(/../).map{|x|Integer(&quot;0x#{x}&quot;)}.flatt…
    /Users/username/Downloads/bugfix.rb:18: numeric literal without digits
    …./).map{|x|Integer(&quot;0x#{x}&quot;)}.flatten
    /Users/username/Downloads/bugfix.rb:18: syntax error, unexpected end-of-input, expecting ‘}’
    …./).map{|x|Integer(&quot;0x#{x}&quot;)}.flatten

    Reply
  14. Tapio

    My HP ZR2440w started switching to 1920×1080 resolution after upgrade to mavericks. Correct resolution is 1920×1200. Applied some fix I found on internet.

    After upgrade to El Capitan the fix broke and I had same problem again. I managed to fix it with the patch-edid.rb -ruby script with few changes:

    1. In El Capitan
    /System/Library/Displays/Overrides
    is now located at
    /System/Library/Displays/Contents/Resources/Overrides

    2. SIP, system integration protection has to disabled to be able to copy the override files to correct location.
    http://www.macworld.com/article/2986118/security/how-to-modify-system-integrity-protection-in-el-capitan.html

    PS. Thanks Apple for making this so easy!

    Reply
    • Your Mom Post author

      lol I see what you mean; it appears blank in the wordpress admin too, so I guess intentionally blank at this point. I’m going to leave it blank though because with the code snippets in the article, I’m worried if I edit it and save at this point, it may screw up some of the other parts of the article by changing characters to html codes, etc.

      Reply

Leave a Reply

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