You are not logged in.

#1 2017-06-30 12:02:22

kgizdov
Package Maintainer (PM)
From: Edinburgh, UK
Registered: 2015-12-08
Posts: 113

Kernel config of efifb - how?

Hi,

I am running an NVIDIA GTX 980 GPU + 2560x1440 monitor. I want to configure efifb kernel module for high definition console. I am able to load the module correctly, but it seems I can't configure it properly. I read the kernel docs and the post referencing the GRUB way of doing it, but I am using systemd-boot. I don't want to install and configure GRUB just for this. I tried the following:

title        Arch
linux          /vmlinuz-linux
initrd          /intel-ucode.img
initrd          /initramfs-linux.img
options      root=/dev/mapper/vgf-root rw video=efifb:2560x1440x32 nvidia-drm.modeset=1

where the last line I've tried with a few options - ... video=efifb ..., ... video=efifb:2560x1440 ... etc. Nothing seems to work and I always get the same dmesg output:

$ dmesg | grep efifb
[    1.188179] efifb: probing for efifb
[    1.188187] efifb: framebuffer at 0xd1000000, using 3072k, total 3072k
[    1.188188] efifb: mode is 1024x768x32, linelength=4096, pages=1
[    1.188188] efifb: scrolling: redraw
[    1.188189] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0

I've also found a few options for this module, namely efifb:i2, efifb:mini, efifb:imac, but those seem to be specific to the intel fork of the kernel and do nothing. Regardless, those Mac resolutions don't match what I want anyways.

Does anyone know to to configure this module correctly?

Thanks.

Last edited by kgizdov (2017-07-01 11:11:48)

Offline

#2 2017-07-02 22:06:55

DeadMetaler
Member
Registered: 2016-03-16
Posts: 42

Re: Kernel config of efifb - how?

efifb not configurable

Try this
https://wiki.archlinux.org/index.php/uvesafb

Offline

#3 2017-07-05 13:17:05

kgizdov
Package Maintainer (PM)
From: Edinburgh, UK
Registered: 2015-12-08
Posts: 113

Re: Kernel config of efifb - how?

DeadMetaler wrote:

efifb not configurable

Try this
https://wiki.archlinux.org/index.php/uvesafb

efifb is configurable through GRUB somehow. Look here. uvesafb is also not UEFI.

Offline

#4 2017-07-05 13:32:19

Gusar
Member
Registered: 2009-08-25
Posts: 3,605

Re: Kernel config of efifb - how?

If your UEFI firmware supported high resolutions, efifb would switch to it already, so it's likely high resolutions simply aren't available on your machine. There is a way to figure it out:

The gnu-efi-libs package has a file, modelist.efi (it's in /usr/share/gnu-efi/apps/x86_64/ after you install the package). Copy that one to your EFI parititon, boot into the EFI console (see here for instructions) and run it. It'll show you which resolutions your UEFI firmware can handle.

Offline

#5 2017-07-05 16:06:59

DeadMetaler
Member
Registered: 2016-03-16
Posts: 42

Re: Kernel config of efifb - how?

I mean that systemd-boot not configurable with efifb.

I'm using rEFInd and 650GTX + UEFI GOP firmware + efifb. Now from boot menu to tty console I have native resolution.

[    0.936420] efifb: mode is 1440x900x32, linelength=5888, pages=1

Last edited by DeadMetaler (2017-07-05 16:16:33)

Offline

#6 2017-08-31 03:19:17

barmadrid
Member
Registered: 2016-07-26
Posts: 22

Re: Kernel config of efifb - how?

Gusar wrote:

If your UEFI firmware supported high resolutions, efifb would switch to it already, so it's likely high resolutions simply aren't available on your machine. There is a way to figure it out:

The gnu-efi-libs package has a file, modelist.efi (it's in /usr/share/gnu-efi/apps/x86_64/ after you install the package). Copy that one to your EFI parititon, boot into the EFI console (see here for instructions) and run it. It'll show you which resolutions your UEFI firmware can handle.

Same issue as OP.

@Gusar I did your suggestion and it shows my firmware can support up to 1600x1200 but the current resolution is 800x600. How can I inform efifb to use the higher supported one in this case?

Offline

#7 2017-09-26 17:00:04

JamesW
Member
Registered: 2014-11-26
Posts: 5

Re: Kernel config of efifb - how?

I use rEFInd as my boot manager and if I let Arch boot as normal I get a resolution of 1024x768, but if I enter my board's firmware and select rEFInd as a boot override then Arch boots into 3840x2160, which is the best resolution I can achieve.

Anyone any possible explanation for why there may be such a difference?


motherboard:  ASUS M5A99X EVO R2.0
processor:       AMD Phenom II X6 1055T
graphics card: GeForce GTX 1050 Ti

Offline

#8 2017-09-26 18:35:32

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: Kernel config of efifb - how?

JamesW wrote:

I use rEFInd as my boot manager and if I let Arch boot as normal I get a resolution of 1024x768, but if I enter my board's firmware and select rEFInd as a boot override then Arch boots into 3840x2160, which is the best resolution I can achieve.

Anyone any possible explanation for why there may be such a difference?

When you boot Arch from the UEFI boot manager are you booting the kernel directly? You could make that your default boot option and not use a boot manager such as rEFInd unless you knew that at that time you wanted to boot some other OS.

If you are getting the desired result when UEFI launches your EFISTUB enabled (Arch default) kernel directly the difference may be not having a boot manager or loader and it's drivers or limitations interfering between UEFI and the kernel.


Simple and Open

Offline

#9 2017-09-26 19:41:17

JamesW
Member
Registered: 2014-11-26
Posts: 5

Re: Kernel config of efifb - how?

Blasphemist wrote:

When you boot Arch from the UEFI boot manager are you booting the kernel directly? You could make that your default boot option and not use a boot manager such as rEFInd unless you knew that at that time you wanted to boot some other OS.

If you are getting the desired result when UEFI launches your EFISTUB enabled (Arch default) kernel directly the difference may be not having a boot manager or loader and it's drivers or limitations interfering between UEFI and the kernel.

Booting the kernel directly was precisely how I had it until about a week ago, but then I needed to install another OS so I went the way of a boot manager to give me a little more flexibility.

Anyway, more to the point, Arch was also booting only with the resolution of 1024x768 when I was booting the kernel directly.

It seems to be something that happens when I enter the firmware. By way of experiment, I've just created another boot entry in the UEFI shell with bcfg, and I found that creating an entry to load the UEFI shell itself, and then following the same procedure of launching it from the firmware via a boot override, I found that though the shell itself loads in a text mode of 100x31, it does so in the top left corner and the font is sized as though the resolution were 3840x2160 - and then when I boot the kernel from this same shell it does so with the optimal 3840x2160 resolution. But if I launch the UEFI shell from rEFInd without going via the firmware first it launches at a much reduced resolution.

Furthermore, when I run modelist.efi in the UEFI shell (as suggested above by Gusar) I see that it returns the same 13 modes no matter which way I launch the UEFI shell, but the best resolution of 3840x2160 (mode 0 in my list) is selected only when I launch the UEFI shell via the firmware.

Is there typically any kind of log for the firmware that might give me an idea of what it's doing just before it hands over to whichever EFI application I launch via the boot override?
Something like a dmesg log, but that logs the events in the seconds preceding that?


motherboard:  ASUS M5A99X EVO R2.0
processor:       AMD Phenom II X6 1055T
graphics card: GeForce GTX 1050 Ti

Offline

#10 2017-09-26 20:46:25

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: Kernel config of efifb - how?

No log that I know of. If you're so inclined I have a test you could run. I've noticed that if I boot my normal UEFI launching the kernel directly systemd-analyze doesn't report the firmware part of the boot time. If I boot using systemd-boot that firmware initialization boot time is reported by systemd-analyze. That initialization happens before anything is launched so it seems that launching the kernel directly doesn't handle that data where systemd-boot does. You're experience with this makes me wonder if using systemd-boot would give you different results.


Simple and Open

Offline

#11 2017-09-27 01:16:38

JamesW
Member
Registered: 2014-11-26
Posts: 5

Re: Kernel config of efifb - how?

Well, well, that is interesting!

I set up systemd-boot as you suggest, and though booting the kernel this way still yields the reduced resolutions, when I recreated the UEFI entry to launch the kernel directly (the exact same entry that I was using up until last week), and then set this to be the default, I boot directly into the optimal 3840x2160 resolution, without needing to go via the firmware.

So your instinct to play around with systemd-boot paid dividends, although, ironically it's not obvious that it had anything to do with systemd-boot, apart perhaps from the presence of its requisite files on the EFI partition.

The only problem now is to get this optimal resolution to hold when I re-initiate either rEFInd or systemd-boot as the default EFI application launched by the firmware.

By the way, just for your information, I didn't note the same asymmetry as you between running systemd-analyze after booting the kernel directly versus booting it via systemd-boot (or rEFInd, for that matter). The firmware part of the boot is reported each time.

Thanks for your help and ideas on this one, Blasphemist! Really appreciated!


motherboard:  ASUS M5A99X EVO R2.0
processor:       AMD Phenom II X6 1055T
graphics card: GeForce GTX 1050 Ti

Offline

#12 2017-09-29 18:33:58

Blasphemist
Member
From: Colorado
Registered: 2013-01-17
Posts: 160

Re: Kernel config of efifb - how?

JamesW wrote:

Well, well, that is interesting!

I set up systemd-boot as you suggest, and though booting the kernel this way still yields the reduced resolutions, when I recreated the UEFI entry to launch the kernel directly (the exact same entry that I was using up until last week), and then set this to be the default, I boot directly into the optimal 3840x2160 resolution, without needing to go via the firmware.

So your instinct to play around with systemd-boot paid dividends, although, ironically it's not obvious that it had anything to do with systemd-boot, apart perhaps from the presence of its requisite files on the EFI partition.

The only problem now is to get this optimal resolution to hold when I re-initiate either rEFInd or systemd-boot as the default EFI application launched by the firmware.

By the way, just for your information, I didn't note the same asymmetry as you between running systemd-analyze after booting the kernel directly versus booting it via systemd-boot (or rEFInd, for that matter). The firmware part of the boot is reported each time.

Thanks for your help and ideas on this one, Blasphemist! Really appreciated!

That sure gives me some thinkin to do, and some learning it seems. This is going to make me do more testing of more than I had been doing. Thank you!


Simple and Open

Offline

Board footer

Powered by FluxBB