In the beginning of the year, I got a new 4K 28" monitor. At the time I struggled a little to get my desktop computer to drive it at full resolution, but succeeded.
Later in the year I got a laptop and ditched the desktop altogether. Unfortunately I couldn't make the laptop drive the monitor at full resolution, so I ended up with a script running this command when connecting the laptop to the dock:
xrandr --display :0 --output DP1 --mode 2560x1440 --scale 1.5x1.5 --panning 3840x2160
which is kind of ugly, because the scaling makes the display quite fuzzy.
This evening I was trying to figure out how to make the touchpad less jerky - the default settings has a too high minimum move distance, if you can dig that. So I found this nice recipe: "Get a rock-solid Linux touchpad configuration for the Lenovo X1 Carbon", and was intrigued to find a page on using a 4K display with the laptop in question, on the same website.
He got it running at 30 Hz, but mentions a BIOS update to make 60 Hz work with the displayport cable. Hey, now we're talking! So I downloaded the latest BIOS update (which is 1.11 at the time of writing this, the page linked to above talks about 1.08), which comes as a 33 MB .iso on the Lenovo homepage.
Great, I'll just
dd that to a USB stick and boot from that. The docs do mention that only UEFI boot works for the iso, and that a USB CD-drive is mandatory. Regardless of what setting I put for UEFI booting in the Setup, I couldn't make it boot from the damned USB stick. I even tried another stick. Before giving up for the night, I searched for the problem, and found this page: "Updating the BIOS on Lenovo laptops from Linux using a USB flash stick".
The solution? Install the
genisoimage package, and then run "
geteltorito n14ur10w.iso > better.iso" to get an iso that can be
dd'd to a USB stick, and booted in Startup → UEFI/Legacy: Both-mode.
BIOS updated, laptop connected to screen, and after running:
xrandr --display :0 --output DP1 --mode 3840x2160
full resolution - nice!