Resolution, refreshrate and scaling to 4k TV

Hello all!

I was previously running a Windows 11 PC on a fairly outdated Intel NUC (NUC7PJYH2). I use this PC as a HTPC connected via HDMI to an LG C2 55" 4K 60HZ and it works okay. However, since I read that Linux might be a little more suited for slower PC's, I stumbled over this OS and specifically the Lite version.

The install went great with no specific hiccups, but when I finally was in and had it all installed my problems began.

First of all, the output was 4k @ 30HZ, and I had no options to go above 30HZ using the Display-settings-GUI. It also said that it was a LG TV 72", which it is not.. It is actually 55"... but I dont think this matters :stuck_out_tongue:

Secondly, the scaling was very off, I assume that most Zorin users does not need to scale the OS, but when connected to a TV with 4k, surely this needed to be taken care of. When using 2x in display-settings, the text got doubly small. So I set it to custom with value "0.7" - this was better, but now everything is a bit blurry, almost as if running a lower resolution, which it kinda is... I also experimented with bigger font size, and that was OK but Icons did not scale aswell.

So as you can imagine, the issues are related but first I wanted to tackle the scaling issue. And then i started to wonder, maybe Lite is not really meant for running 4K, and therefore the scaling is an issue for me. (Same goes for grub2, i can barely see the text, but I saw that Grub Customizer can set a specified resolution... so should be a non-issue)

Regarding the refreshrate issue I performed what i gathered to be the correct steps to force the correct resolution. Steps listed below:

  1. hwinfo --monitor lists my monitor correctly and it shows it does support 3840x2160 @ 60Hz

  2. xrandr : Does not show support for 60Hz @ 4k.

  3. cvt 3840 2160:
    Modeline "3840x2160_60.00" 712.34 3840 4152 4576 5312 2160 2161 2164 2235 -HSync +Vsync

  4. xrandr --newmode "3840x2160_60.00" 712.34 3840 4152 4576 5312 2160 2161 2164 2235 -HSync +Vsync

  5. xrandr --addmode HDMI-1 3840x2160_60.00

  6. xrandr --output HDMI-1 3840x2160_60.00

Error: Configure crtc 0 failed

After this I kind of gave up as I actually googled quite a bit and I couldnt really find what I was missing. I also started to wonder whether it would be a good idea to simply try to install Zorin Core instead, to see if that would make any difference.

Summary:

  1. Any users of Zorin Lite (Or Core) that has a good step-by-step on how to make it scale"good" on a big TV, (Icons included)?
  2. Has anyone come across this issue with not seeing the correct modes for the specific monitor in use (In this case LG TV)

I think @StarTreker is the expert on this one. He uses Core I believe.

For the Core Version it is quite easy to scale up. You go in the Gnome Display Settings and there are Scaling Factors and Refreshrates. On my 4K TV-Monitor I use 200%. That is big enough for me. So, You click on the Percentage that You want and then on the Apply Button. Then You will see that it will grow. Then You click on the ''Keep Changes'' Button and that's it.

To scale the Login Screen do first Your Settings in the Gnome Display Settings. After that open the Terminal and type:
sudo cp ~/.config/monitors.xml /var/lib/gdm3/.config/

The Grub Thing is a little bit ... tricky. When you are in the Grub Menu click the c-Button. Then a Terminal will open. There You type videoinfo oder when that not works vbeinfo and this will give You an Output of Resolutions what are supported. After You have this type exit to close it.

The Resolution for Grub you can adjust with the Terminal. Open it and type sudo nano /etc/default/grub and there you must search for a Line with the Resolution. This Line should be comment out by default. When You find the Line delete the # at the Beginning and replace the Numbers. In my Case I had 1920x1080. When You have done this push ctrl+o (will save the Changes), Enter (to confirm) and ctrl+x (close the Grub configuration). After that You are back in the normal Terminal and there You type sudo update-grub and you will see that it will load the Changes.

2 Likes

Its been a long time since I've done tech support, but I have gone through this issue before, and if I remember correctly, it was driver related, as I was trying Zorin on an outdated computer with lack of support in the kernel due to regression I believe it was. This in in regards to the OS not acknowledging your native resolution.

First and formost, it is always a good idea, to make sure that secure boot is disabled, in your computer's bios. Secure Boost is a Windows only feature that when turned on, causes all sorts of problems on computers with Linux installed on them.

Also, I'm curious, in what way is your TV plugged into your computer, is it via HDMI or Display Port? HDMI is generally very robust, and auto hand shakes with plug in play fairly well. But Display Port is known to be a little weird, and sometimes require unplugging and replugging, and or restarting the computer, to get it to hand shake properly.

Also, are you absolutely 100% certain, that if you are using HDMI, that your HDMI cable can support 4K at 60-Hertz? Believe it or not, old HDMI cables usually topped out at 4K 30-Hertz. So if your using an old cable, try a new cable, and see if it hand shakes with 4K 60-Hertz.


Old screencap, illustration only.

I don't know anything about your specific computer, so I don't know if you have a discreet GPU. But if you do have a discreet GPU, like Nvidia for example, you absolutely must install the proprietary driver for your Nvidia GPU, to unlock all features, including resolution and scaling.

Now, onto the topic of display scaling. I have a 4K 55" TV, worry not, Linux always reports your TV's size incorrectly, its not a big deal. But please note, I don't use Zorin OS Lite anymore, at least, I haven't had a need to, since Zorin OS 16.3 PRO has been working out for me so well. And all PRO is, is just Core with some extra flare added and APPS for good measure. lol

On my displays page, I too have to scale up the screen to 200% in order to utilize it. Linux after all these years, shouldn't still be having issues with AUTO 4K resolution scaling, but there has been no push to make life better and easier for 4K users, so its still an issue, that we have to manually fix.

I have my TV set as primary display, this forces the computer to stop trying to force notebook screen resolutions, and defaults windows and apps to load on primary first, as well as make sure that your task bar is on your TV as well. Because I have an Nvidia discreet GPU, this is also how the settings show up in my Nvidia X Server Settings.

If you install Gnome Tweaks, you can also do some further optimization with that lovely tool.

From here, you can set the scaling factor for the fonts, I find 1.25 works best. And as you can see, you can also set the individual font sizes within this APP as well. Tweaks is a powerful tool, to allow you to customize more, then what is found in the Zorin GUI settings.


3 Likes

Thanks for your reply StarTreker!

To begin, the standard I use is HDMI and I recently bought high quality HDMI-cables that specifically supports speeds up to 48Gbit/s (example: 4k120hz)

And to add to this: Why I know it should work is because it works very well within the windows environment. So I dont think there are any issues with hardware. Although the hardware from a GPU-standpoint is at the limit.

With regards to secure boot, I do not know if i have this on my windows environment, are you refering to things like Bitlocker? If so, then I have not got it.

About the GPU, it is integrated "Intel UHD Graphics 600", which is using half of RAM as VRAM (4GB) from a total RAM of 8GB. (At least in my Windows environment) And also this, is from what I've read, pushed to its limit with 4K, but why I'm fairly confident I will make this work in Zorin is because it works in Windows :slight_smile:

As to what drivers I have for this GPU is yet unknown, I have not done any investigations in this matter after the Zorin OS Lite install. What I have done is check for updates and installed them through the 'settings'-menu UI.

About scaling, thank you for all of your tips. I will surely try all of the things you mention, but I ask, as a pre-requisite, would you suggest I install 'zorin-os-desktop' onto my Lite version before testing?

Thanks for the information. I will test the grub-resolution and login-screen-resolution tips :slight_smile:

1 Like

Secure Boot is a BIOS setting. Look in "Security" page of your BIOS for it.

2 Likes

Ah alright, I will check that out :slight_smile:

Okay, I have quite the update.

Zorin-OS-Desktop really was better suited for me in this case. All the scaling and things was perfect after simply scaling to 200%. This option was not possible with Lite.

With regards to the resolution and refreshrate, the following modeline worked for me, for some reason:
xrandr --newmode "3840x2160x60.00" 533.250000 3840 3888 3920 4000 2160 2163 2167 2222 +HSync -VSync

The difference here is that I found this modeline on another forum that said "this one worked for me... and I dont know why". So it was not generated from cvt or gtf from my end. The real difference here is the pixel clock speed-value, which is why it now works. If i were to guess.

Now that I have installed Zorin-OS-desktop, would it be a good idea to simply remove the OS Lite environment? And how would I do that?

I am at any rate, very happy :slight_smile: Thank you all for your help!

1 Like

Update again. Unfortunately the xrandr profile is flushed upon restart. and to my big surprise the scaling was also reverted to 100%.

Anyway, I have to do the xrandr steps again and after this I have to set it to 200%. Is there a command that I can use to set it to 200%? I was wondering if I might have to execute a script to put in automatic startup along with xrandr-commands?

Update after some digging.
I made a script that sets my modeline and outputs it to get the correct resolution. What I'm currently tackling is to not have to manually set scale to 200%. I see that ~/.config/monitors.xml does change the variable when I'm selecting 200% + apply under the display settings UI. Maybe theres an easy command to change monitors.xml without me having to do it manually. Does anyone have a bright idea?

Yes You can. Open the Terminal an type sudo nano ~/.config/monitors.xml and there You look for the Scale Factor which should be in default by 1 and change it to 2.

So maybe I can create a script that upon every startup changes this factor from 1 to 2. My thought is that most likely I will have to restart some other services to acknowledge my change to this file, I think by simply modifying the xml-file I will not get instant effect. What bugs me is that xrandr nullifies my previous settings. And I'm running xrandr-script because the OS wont remember my last working settings for getting 4k60hz.

Right now, I have a perfect example of monitors.xml that I would be happy to simply "safe forever". But I dont know why the OS starts from 0 concerning this issue.

Sidenote: Zorin OS is so much faster than Win11 on my machine, I really love it. And I love tinkering, so I'm not giving up, just picking up speed :wink:

You can add it to your ~/.profile as a command that will run upon every desktop login.

2 Likes

could you elaborate? Keep in mind, I'm quite green on this.

What would be an example of this command?

I am multi-tasking on a heavy level, so in fairness, I have not caught up on reading through the thread.
But... in context of your question;
Let's say that I want to auto-launch Nautilus file manager at every boot.
You can view hidden files in your home directory by tapping ctl+h. Open your .profile file with text editor.
You can add a command at the bottom. So for my example above, the command you would have run in terminal can be pasted at the bottom of the .profile file as something to run upon desktop init:

nautilus &

In my example above, adding that command to the profile launches Nautilus upon loading the desktop.

You can replace my example command with the one you were using to correct your screen scaling.

1 Like

Theoretically You shouldn't need this. I set it one Time and it don't change. I didn't even needed to change the monitors.xml File. I simply changed the Scaling in the Display Settings and finish.

As far as I understand it, in your Case is this xrandr-Program the Probem. For what is this? Could you replace it with a Program that makes not Issues like this?

Yes, by setting a custom resolution through xrandr seems to revert scale back to 100%, but my issue is that xrandr is the only way I have found to achieve a satisfactory 4k60hz. Without i can only "enjoy" 30hz... Which is unbearable :slight_smile:

I am very close to the finish, i just want to find a way to not have to manually set scale to 200%. I imagine that underneath the click to set scale to 200% + apply, there is a set of command lines, these are the droids im looking for :slight_smile:

1 Like

Okay, I understand. I have a Sony TV where my PC is connected with HDMI too. I get 60Hz. The Thing is: I must activate that on my TV for the HDMI Plugs and as far as I have seen this from other TV's You have to activate this manually; somtimes for every HDMI Plug seperately. Did You do that?

Another Point could be the HDMI-Cable. I have made the Experience that a Cable can have good Specs but then You have somwhere at the bottom in really tiny Letters an Info that the Specs only are supported to a specific Length of the Cable.

This can be marked as solved. I created a script that set the resolution manually and added it to startup applications.

with regards to scale 200%, I've restarted a few times and it seems to keep its setting at 200% which is good. And if it ever reverts back to 100% I can just manually set it. After all, usually I just set the PC to suspend, so it shouldnt be any problem.

Thank you all for your feedback with regards to this. For those curious this is my xrandr command that worked for me:

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

3 Likes