How can I get the boot output text resolution as high as when I am booting from the EndeavourOS ISO?

Hello,

I had this issue for a long time now:

Every time I boot from the EndeavourOS ISO (e.g. if I want to reinstall my system) the “boot output text” looks very sharp and crisp:

But after I have finished installing EndeavourOS and just boot into my system the resolution is much lower and the text is not as crisp anymore:


I had this happen on both GRUB and systemd-boot.
I use a NVIDIA GeForce GTX 1060 graphics card.

I know this is a very minor issue but EndeavourOS is definitely able to show the boot text in a higher (my native 1440p?) resolution as seen when I boot from the ISO so something is changing after installing the system.

My installation is about 2 years old at this point but I try to keep up with the new defaults (e.g. switching to systemd-boot / dracut etc.)

Can someone please help me with this? Thank you.

EDIT: I think the low resolution problem is already starting one step before on the systemd-boot menu where I can select entries.


A few days ago I installed EndeavourOS on a different SSD with the latest ISO as a test but still the same issue:
Boot text has a high resolution and looks crisp when booting into the ISO
but
has a low resolution and looks blurry after I boot into my installed system.

Also the font could be different in both cases?

So far I tried to configure

“Early KMS start”
by adding nvidia-drm.modeset=1 to /etc/kernel/cmdline
&

# ...
force_drivers+=" nvidia nvidia_modeset nvidia_uvm nvidia_drm "
# ...

to /etc/dracut.conf.d/myflags.conf


I also used moninfo.exe (Windows) to get the right Modeline and then used edid-generator to generate a costumized 2560x1440.bin which I then used for https://wiki.archlinux.org/title/kernel_mode_setting#Forcing_modes_and_EDID but nothing changed.


EDIT: But maybe want I want is just not possible on NVIDIA?

Note: The proprietary NVIDIA driver (since 364.12) also implements kernel mode-setting, but it does not use the built-in kernel implementation and it lacks an fbdev driver for the high-resolution console.

But then I still don’t know why it works while booting the EndeavourOS ISO… Does it perhaps use the Nouveau drivers?

I’m not at my Linux computer right now, but from memory what I did with systemd-boot, was setting the console-mode to “max”.

See “2.1 Loader configuration” here:
https://wiki.archlinux.org/title/systemd-boot

Thank you for your reply.
I forgot to mention, this is something that I also tried already but with no success.
I tried console-mode max and console-mode auto.

OK. I’m on a Radeon card, that probably has got something to do with it. It should be possible on Nvidia as well. I’m sure someone has experienced this and found a solution.

Post info and logs:

inxi -SMGIaz
journalctl -b0 -k --no-pager --no-hostname

inxi -SMGIaz:

System:
  Kernel: 6.1.12-arch1-1 arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
    parameters: initrd=\fd7db8933ea94c5a9ca6443d8d133a53\6.1.12-arch1-1\initrd
    root=UUID=82ddd00a-9b5a-4043-953c-ae91a7d8f83e rw loglevel=3 nowatchdog
    nvidia-drm.modeset=1 systemd.machine_id=fd7db8933ea94c5a9ca6443d8d133a53
  Desktop: KDE Plasma v: 5.27.0 tk: Qt v: 5.15.8 wm: kwin_x11 vt: 2 dm: SDDM
    Distro: EndeavourOS base: Arch Linux
Machine:
  Type: Desktop Mobo: Micro-Star model: B450M MORTAR MAX (MS-7B89) v: 1.0
    serial: <superuser required> UEFI: American Megatrends LLC. v: 2.G0
    date: 05/13/2022
Graphics:
  Device-1: NVIDIA GP106 [GeForce GTX 1060 6GB] vendor: eVga.com.
    driver: nvidia v: 525.89.02 alternate: nouveau,nvidia_drm non-free: 525.xx+
    status: current (as of 2023-02) arch: Pascal code: GP10x
    process: TSMC 16nm built: 2016-21 pcie: gen: 3 speed: 8 GT/s lanes: 16
    ports: active: none off: DP-1 empty: DP-2, DP-3, DVI-D-1, HDMI-A-1
    bus-ID: 26:00.0 chip-ID: 10de:1c03 class-ID: 0300
  Display: x11 server: X.Org v: 21.1.7 compositor: kwin_x11 driver: X:
    loaded: nvidia gpu: nvidia,nvidia-nvswitch display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2560x1440 s-dpi: 108 s-size: 602x342mm (23.70x13.46")
    s-diag: 692mm (27.26")
  Monitor-1: DP-1 mapped: DP-0 note: disabled model: MSI MAG274QRF-QD
    serial: <filter> built: 2020 res: 2560x1440 dpi: 109 gamma: 1.2
    size: 597x336mm (23.5x13.23") diag: 685mm (27") ratio: 16:9 modes:
    max: 2560x1440 min: 640x480
  API: OpenGL v: 4.6.0 NVIDIA 525.89.02 renderer: NVIDIA GeForce GTX 1060
    6GB/PCIe/SSE2 direct-render: Yes
Info:
  Processes: 303 Uptime: 17m wakeups: 0 Memory: 15.54 GiB
  used: 4.68 GiB (30.1%) Init: systemd v: 252 default: graphical
  tool: systemctl Compilers: gcc: 12.2.1 clang: 15.0.7 Packages: pm: pacman
  pkgs: 1835 libs: 421 tools: yay Shell: fish v: 3.6.0 default: Bash v: 5.1.16
  running-in: konsole inxi: 3.3.25

Monitor-1: DP-1 mapped: DP-0 note: disabled
is the missmatch between DP-1 & DP-0 normal?

journalctl -b0 -k --no-pager --no-hostname:
https://0bin.net/paste/QRLFRqMK#5Y9ItkKgJwgizf7pY9Z47aZ6+3xxmcn+7T9FgRq2Vfk

I installed EndeavourOS again on different SSD, this time without using the closed source NVIDIA drivers and well the boot log text resolution jumps while booting to the high resolution one I can see when booting from the ISO and when I shutdown the shutdown log text is also in a high resolution.

So I guess this is just something that does not work with the closed source NVIDIA drivers?

This looks correct. Did you rebuild the initramfs afterward, or reinstall the kernels?

Yes.

Nouveau has better performance in console, nvidia is better outside of console. :exploding_head:

Do have a look in the BIOS for some setting that could help. In linked article (from Archwiki), someone said they altered some setting of the vendor’s logo and this triggered a better resolution at console.

Or, just forget it. It is a cosmetic issue, with no impact to the real reason one uses a PC/Laptop. (unless you belong to an edge case… :grin: )

1 Like

Yes, I ran reinstall-kernels afterwards.

So I installed Nobara Linux (modified version of Fedora) as a test and the boot log text and shutdown log text had a very high resolution even after installing the closed source NVIDIA drivers.

So I guess there is just something configured differently between Nobara and EndeavourOS by default but I can’t figure out what it is. You probably need to be an expert like @dalto.

This issue seems to be above my pay-grade. So thank you for all the help I received.

Nobara is using Grub as the bootloader. Did you review the link petsam posted?

Note:

  • The NVIDIA driver does not provide an fbdev driver for the high-resolution console for the kernel compiled-in vesafb module. However, the kernel compiled-in efifb module supports a high-resolution console on EFI systems. This method requires GRUB or rEFInd and is described in NVIDIA/Tips and tricks#Fixing terminal resolution.[1][2][3].

Grub or rEFInd is required to get a high-resolution console with your GPU.

2 Likes

Try removing nvidia modules from kernel image (equivalent of MODULES=( nvidia ... ) in mkinitcpio.conf).

Edit: adding dracut related info:

If using dracut, remove nvidia forced modules from /etc/eos-dracut.conf or /etc/kernel-install-for-dracut.conf

you may try this (at your own risk )

Standard sed precautions:

sed  '/^force_drivers+=/s/\bnvidia[a-z_]* /deleted /g' /etc/eos-dracut.conf /etc/kernel-install-for-dracut.conf
# for content: force_drivers+=" nvidia nvidia_modeset nvidia_uvm nvidia_drm ", 
# the output should be:
force_drivers+=" deleted deleted deleted deleted "

Actual command:

sudo sed -i '/^force_drivers+=/s/\bnvidia[a-z_]* //g' /etc/eos-dracut.conf /etc/kernel-install-for-dracut.conf

The wiki has instructions on how to do that:
https://discovery.endeavouros.com/installation/dracut/2022/12/

1 Like

I used omit_drivers+=" nvidia nvidia-drm nvidia-modeset nvidia-uvm " in /etc/dracut.conf.d/myflags.conf as per https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers#Dracut_configuration_.28optional.29

Then I ran sudo reinstall-kernels but it did not change anything about my boot resolution.

1 Like

The Wiki entry only lists:
omit_dracutmodules+=" XYZ " and not
omit_drivers+=" XYZ "

Should omit_drivers be added to the Wiki entry?

omit_dracutmodules+=" <dracut modules> ":

Omit a space-separated list of dracut modules to call when
building the initramfs. Modules are located in
/usr/lib/dracut/modules.d.

omit_drivers+=" <kernel modules> ":

Specify a space-separated list of kernel modules not to add
to the initramfs. The kernel modules have to be specified
without the “.ko” suffix.

Sorry, I misremembered. The wiki has the opposite, how to force the drivers.

This should be the way to omit them

omit_drivers+=" nvidia nvidia_modeset nvidia_uvm nvidia_drm "

So I finally found a solution to my problem:

efifb

  1. Add video=efifb:list to /etc/kernel/cmdline
  2. Run sudo reinstall-kernels
  3. Reboot
  4. You will see something like this when booting
  5. Take note of the mode number matching your desired resolution
  6. Edit /etc/kernel/cmdline again and replace video=efifb:list with e.g.: video=efifb:mode=0
  7. Run sudo reinstall-kernels again
  8. Reboot

Now the resolution of my the boot output text is finally in 1440p:


Thanks for the help:
@BluishHumility @petsam @LamnaNasus @dalto

Finding this comment helped me.


EDIT: Well turns out that this here is a simpler solution for me: Stuck with bootresolution being too low - #11 by Melways

Setting the right value for console-mode in esp/loader/loader.conf… in my case systemd-boot was also using a very low resolution and although I used consolde-mode max in the past it did not have the desired effect. In my case the right setting is console-mode 0 and I found it by pressing r in the systemd-boot menu. This made me get rid of video=efifb:mode=0 again.

3 Likes

Thanks, i was wondering about this for a long time.
It wasn’t my imagination that the resolution was incorrect during boottime