How can I get 4K60 output over HDMI 2.0 on my Kaby Lake NUC?

I have an Intel NUC7i5BNK, which is a Kaby Lake NUC (i5-7260u) with HDMI 2.0 supporting 4K/60Hz output. I installed a fresh copy of Ubuntu 17.04 on it, but I can only output 4K/30Hz to my TV. I'm a relatively inexperienced user, I don't see any settings for refresh rate in the display settings.

My intention for this NUC is to use it as an HTPC so 4K/60Hz output is pretty important to me. How can I enable it?


Nick's post was a real help in leading me this this solution:

xrandr --newmode "3840x2160x60.00"  533.250000  3840 3888 3920 4000  2160 2163 2167 2222  +HSync -VSync
xrandr --addmode DP-1 "3840x2160x60.00"
xrandr --output DP-1 --mode 3840x2160x60.00

This 7i5 NUC now displays UHD on a Samsung TV (UN40MU6300).

Four+ hours I've spent figuring this out. Above working Modeline was finally found via the Universal Modeline Calculator in 'Reduced Blanking Timing' mode. I don't know the disadvantage, but it's now 60HZ and crystal clear. Ubuntu and the TV's 'info mode' both show 3840x2160/60Hz.

umc.exe 3840 2160 60 -rbt

Also 7th Gen NUC HDMI 2.0 firmware must be upgraded to an April 2018+ release (Sorry but the update tool only runs on Win10). Get a certified HDMI 2 cable too (trying an old cable just now made the image snowy).

Verification of resolution

Root cause is almost certainly Intel's on-chip Iris Plus Graphics 650 having a relatively low max pixel rate (533Mhz is in the working modeline, but cvt wanted 712Mhz)


I think I've got this figured out. It's now working for me at least. The secret is figuring out the correct modelines. What worked for my monitor might not work for a different monitor, but if the monitor supports 4k 60hz, then I suspect that the solution will be similar.

I searched until I rounded up a modeline that I thought might work for my monitor, and then I used xrandr to force the mode with the following steps:

  1. Add the new mode:

    xrandr --newmode "4096x2160_60" 556.730 4096 4104 4136 4176 2160 2208 2216 2222 +HSync -VSync
    
  2. Associate the new mode with your connected display. Could be DP-1, or DP-2, or maybe even HDMI. Just run xrandr by itself to see which display you're using, then add the mode:

    xrandr --addmode DP-2 4096x2160_60
    
  3. Tell your display to use the new mode that you've added:

    xrandr --output DP-2 --mode 4096x2160_60
    

I'm using the pluggable USBC to HDMI cable for my 4K TV, and the HDMI2 port goes to a 1080p monitor. Here's the cable I'm using: https://www.amazon.com/gp/product/B0727QQLV2

Ubuntu 17.04 on my NUC7i5BNH is now working exactly as I hoped it would.


What CPU? Most of Intel's iGPUs are limited to 4k @ 30Hz over HDMI (lame, I know). You'll more than likely have to get a display port -> HDMI adapter. Make sure it's one that supports 4k @ 60Hz; there's only a couple out there right now.

Here's a Display Port -> HDMI adapter on Amazon that has decent reviews and supports 4k @ 60Hz

Example: I7-7700T only supports 4k @ 60Hz over Display Port; it's limited to 24Hz through HDMI

Max Resolution (HDMI 1.4)‡
4096x2304@24Hz

Max Resolution (DP)‡
4096x2304@60Hz

Max Resolution (eDP - Integrated Flat Panel)‡
4096x2304@60Hz