As I mentioned, I'm building a new Linux based desktop PC – currently running RHEL 8. Since I'm planning it as a primary desktop system for my home lab, I want to eventually migrate workflows from MacBook Pro to the new PC – and this means I want to use my existging LG 5K UltraFine 27" display. This seemed like an interesting Unix Tutorial Project from the very start!
Work In Progress
WARNING: this is a work in progress article, I plan to revisit and update it in the next few weeks/months.
LG 5K UltraFine Display
This is a great 5K display that's still one of the only few options available for getting 5K resolution display in macOS without buying an iMac or iMac Pro from Apple.
It's great for photography and excellent for day-to-day use cause all the browser, documents and terminal windows are super crisp. You'll get similar results on 4K displays available for PCs but LG 5K UltraFine has better colour gamut and screen brightness than most.
Here's how it looks:
… on the back, as you can see, there are only USB-C format ports: 1 for input and 3 for additional devices:
Why Using LG 5K on a PC is Tricky
LG 5K is a stunning monitor, created by LG in collaboration with Apple, specifically for use with Apple laptops. This poses four complications for anyone planning to use LG 5K with non-Apple hardware:
- You need Thunderbolt over USB-C Connectivity
- You need drivers for supporting camera, microphone and ambient light sensor that are installed in the LG 5K display
- You need software support for LG 5K brightness controls (there are no control buttons on this display – I kid you not!)
- You need software/drivers support for the 5K display – it's called display tiling support
LG 5K display in Linux
So far, I figured out Issue 1, kind of started looking into Issue 2, ignored Issue 3 altogether and spent considerable amount of time with no result on Issue 4.
WARNING: I haven't completed this project yet, meaning I get output via USB-C connector into LG 5K Display, but it's not 5K resolution yet.
Display Tiling for 5K+ resolutions
Because many interfaces simply don't have the bandwidth to push all these 5K+ pixels at acceptable (30Hz or 60Hz) rates, there's a commmon workaround in hi-res displays, called display tiling. Resolution of 5120×2880 pixels is very bandwidth hungry when it comes to video cable connection.
Display tiling means you connect your hi-res display over multiple ports. Each port appears to be a separate display of typically half the resolution of your screen. Each of these virtual displays is called a tile, and your graphics adapter, its driver and possibly OS software should all support this tiling concept for a seamless experience – meaning your display appears to have 5K resolution, with software cleverly stitching tiles together into a single image you see.
In LG 5K case, half the display is driven by one tile of 2560×2880 pixels and another half is driven by 2nd cable and 2nd tile over it. Combined together, they give you the 5K resolution: 5120×2880 pixesl. But if you have old software or driver, you may see just half the screen image or sub-5K resolution.
Connecting LG 5K to PC over Thunderbolt 3
In short, Issue 1 is: this monitor has only one input: USB-C cable that actually acts as a Thuderbolt 3 cable. The idea behind it is great: you plug this cable into a MacBook, and magic happens:
- MacBook shows output onto beautiful 5K display, with HiDPI support etc
- Display devices like camera start working for video calls, etc.
- Any devices you have plugged via USB-C ports on the back of the LG 5K display are presented to MacBook – so 5K display becomes a USB-C hub
- Best of all: MacBook is getting charged over the same cable
In practice, this is super useful: no messy cables, all the stationery devices like USB drives and printers are plugged neatly into the back ports of the display and don't even have to be touched. I plug a single cable from monitor into laptop and it all just works together!
But if I want the same functionality from a non-Apple PC, there's immediately quite a few issues:
- USB-C ports your PC has are not going to work – they're most likely USB 3.1 ports for connecting storage devices, meaning they don't have DisplayPort functionality – so you have the correct port but it doesn't have the correct functionality – no picture will be shown on the display
- There are not that many graphics cards that have USB-C form-factor output that will work with such displays
- There are even fewer graphics cards that can drive 5K over a single port
Thunderbolt 3 Add-In Cards
So what is the solution? You need to get one of them Thunderbolt 3 Add-In Cards (AIC). This here is the one I got, Gigabyte GC-TITAN RIDGE AIC:
Specifically, there are ASUS, ASrock and Gigabyte ones that I could find:
What Does Titan Ridge TB3 AIC Card Do?
AIC card provides full Thunderbolt 3 functionality – multiple 40Gbit/sec connectivity channels via USB-C ports. It's mostly meant to be a storage adapter (similar to SCSI or RAID expansion cards), in a sense that you can connect high-speed directly-attached storage (DAS) units to it like small or large disk arrays.
BUT as it turns out, most of Thunderbolt 3 Add-In Cards also help with graphics output via USB-C interface. So you have two USB-C outputs and even a DisplayPort on my model:
The way Titan Ridge TB3 card works for graphics output is that it takes one or two miniDisplayPort inputs, converts the signal (up to 8K resolution is supported, apparently!) and outputs it via USB-C cable to a compatible display.
What this approach means is you still need a proper graphics card (GPU) installed in your desktop, but instead of plugging display into it (which you can't do for USB-C), you do the next best thing:
- you plug TB3 adapter into graphics card (most likely over 2 cables)
- you plug your fancy USB-C connected monitor into the Titan Ridge TB3 card
Here's how connectors work (showing just 1 DisplayPort input for now):
For LG 5K, you need to be sure to get Thunderbolt 3 card and not Thunderbolt 2 card – again, older card would have correct ports but incorrect functionality for 5K display. So it must be Thunderbold 3 card. And you definitely need 2 DisplayPort connectors going from graphics card into the Thunderbolt 3 AIC card, otherwise you'll be limited to 4K resolution.
If you're shopping, look by the technology name, introduced by Intel. Alpine Ridge is the older model (not suitable for 5K), Titan Ridge is the one you need.
I got myself the Gigabyte GC-Titan Ridge TB3 card, because my new desktop PC has a Gigabyte motherboard.
Installing Titan Ridge AIC for LG 5K
Here are the steps I took to configure this TB3 AIC card in my desktop:
Inspect external ports on the card to confirm their order – where 1st miniDisplayPort goes, where 1st USB-C/Thunderbolt output is, etc:
IMPORTANT: for 5K signal you need 2 DisplayPort connectors, so it's important that you get 1st DP output on GPU into 1st DP input on the TB3 AIC card, and 2nd DP output into 2nd DP input.
On the AIC card itself, you have a bunch of ports.:
From left to right on this photo:
- Thunderbold USB-C header (goes to your motherboard)
- USB 3 header (goes to another port on your motherboard)
- 2 PCIe type Power connectors
I suggest you connect all of them if your motherboard and power supply allow, but in my case I ended up disabling Thunderbolt support in BIOS and letting the AIC card figure things out.
Put TB3 AIC Card into PCIx4 Port
Don't know why, but most motherboards as super picky about where you should put your Thunderbolt 3 Add-In Card: it may work anywhere, but best is to check which port is recommended.
For my Gigabyte Titan Ridge TB3 AIC, there's this reference suggesting PCIe slot for each Gigabyte motherboard supporting it:
Based on the above, I actually realised my GPU was installed in the PCIe x4 slot so I moved it closer to CPU, into the fasted x16 slot available. TB3 AIC card took the place in the leftmost slot, PCIe x4:
Double-check BIOS Version
You may need to upgrade BIOS on your motherboard for TB3 support – check manual or get in touch with me if you need help.
Fine-Tune BIOS Settings
I ended up disabling Thunderbolt support (it's called Discrete Thunderbolt) in my BIOS altogether. With it enabled I could get DisplayPort output from the TB3 AIC, but not over USB-C. So after disabling support in BIOS, things started working.
Current Results of LG 5K to Desktop Project
- Video output works and image shows on the LG 5K display
- Windows 10 fully supports 5K resolution
- RHEL 8 still only shows 3K resolution – work in progress
That's it for now! Hope you learned something new – I know I did! This whole buisiness of connecting my 2 year old 5K display to a brand new PC turned out to be way more involving and educational than I expected.