-
-
Notifications
You must be signed in to change notification settings - Fork 187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EFIFB support next steps #1461
Comments
@tlaurion The 1366x768 patch is in fbwhiptail 1.2 🎉 |
|
Also to be noted, dgpu flavors of t530/w530 are currently enabling optional rom in "insecure mode", where coreboot is said to be significantly slower initializing if we were to change the defaults to enable it:
|
Seems like qubesos is not providing efifb in compiled kernels @marmarek ? Would be a good idea to provide it so that early print messages can be shown on consoles prior of i915drmfb taking ownership of the framebuffer, otherwise messages show on console after i915drmfb is loaded and ownership of FB is active.
|
We do have |
And one more thing: dom0's kernel config isn't really relevant for early Xen messages. For that, there is a bunch of command line arguments, including |
@marmarek : Heads kernel then kexec's into next kernel passing the FB address to next kernel, without needing to hack around newer kernel's restrictions not exposing addresses which otherwise required Heads to taint it's kernel exposing FB address (considered dangerous) and disabling framebuffer compression on i915drm module and a hack on kexec to force passing i915fb FB address as VLFB. Kexec detects Heads FB as efifb and gently provides the FB address to the next kernel without any previously needed hacks. As if today (rudimentary testing booting latest 4.2 ISO with bug report since inst.repo is not found) Heads stays in the dark until i915drmfb takes ownership of the console. Attempts under Heads to support simplefb didn't work since it is not possible to pass simplefb FB address through VLFB hack, there is no workaround permitting that driver to taint kernel in an insecure flashing like it is possible with i915drmfb. I am confused into why simplefb is not kicking in prior of i915drmfb taking ownership of the FB under qubes as if now and will need to check this out. You are right saying that OS deprecation plan for legacy boot support is to remove all advanced DRM drivers from their initrd, letting simplefb, simpledrm and efifb there for the moment, leaving initrd construction with proper advanced drm modules enablement to the final installed OS to construct it from detected GPUs. Installation media consequently provide/will provide simpledrm/simplefb/efifb to not bloat initrd/unified kernels with all DRM/FB drivers that exist anymore and rely on UEFI to at least provide efifb compatible drivers which can after that be switched to simplefb/simpledrm or more advanced DRM drivers. |
@marmarek AFAIK coreboot tables are now exposed but this is irrelevant here? How to check I'm not presently aware |
Maybe its more practical to see with an example! Under Heads linux-qemu.config under master, here is when the framebuffer is owned by efifb (QEMU TCG here, since qemu under Qubes so cannot have kvm). Using rdosreport.txt shared under QubesOS/qubes-issues#8443
fb0 is redrawn on screen at around 20s on real hardware and around 5s on qemu. Under Heads, it required us to make the kernel config aware of EFI and coreboot tables, and enable efifb. You can see the changes that were required under https://github.com/osresearch/heads/pull/1403/files#diff-816b79cd9a1192fa8cf78b9737f0d3fed5a943a0d2c952da591f8a2446edc1db
|
This allows Linux to fetch framebuffer address from coreboot and make Linux show messages early - before i915drm takes over later. Whether that's enough to work also under Xen is not clear, but those options may be useful in other cases anyway. linuxboot/heads#1461
This allows Linux to fetch framebuffer address from coreboot and make Linux show messages early - before i915drm takes over later. Whether that's enough to work also under Xen is not clear, but those options may be useful in other cases anyway. linuxboot/heads#1461
@marmarek interesting https://forum.qubes-os.org/t/how-to-kexec-into-qubes-from-linux-livecd/17712/22 Might explain why marmarek/qubes-linux-kernel@c4ff0e4 is not enough @JonathonHall-Purism any hunch?
Important bits of the table there:
|
Hmmm 2.0.27 supports device tree horms/kexec-tools@806711f
Also note that EBDA patch was under Heads kexec 2.0.26 but was dropped for a little while on 2.0.22 EDIT: trace of this put in branch https://github.com/tlaurion/heads/tree/enable_efi_compatibility_for_xen_efifb for further improvements |
All OP tasks under #1522. Q4.2 still cannot offer EFIFB direct console output on installed systems which takes 6 seconds under x230 to show console once i915 takes ownership of framebuffer. On Q4.1/Q4.2, booting to a console at kexec call to working console takes 20 seconds per #1522 state as of today, but I think this will take more time to resolve. |
Unless QubesOS dom0 can use efifb for early console ownership and then switch to i915+drm or whatever else needed there (something unknown is missing) all of this is fixed under #1522 now merged under master. Maybe reopen the ticket later if we understand what is missing from coreboot->libgfxinit->tampoline patch to expose coreboot fb to linux efifb->kexec xen + kernel in multiboot->dom0 kernel seeing coreboot initialized efifb compliant framebuffer. But I have not figured that out yet. @marmarek again, if you feel like reopening this, as of today, Q4.2 installer takes 20 seconds to have i915+drm initiaalized (not sure why) where installed system takes 6 seconds to init i915+drm and show console after kexec call on x230. Closing |
UNDONE:
Figure out what is missing for Q4.2 to be able to use efifb under dom0
Push Purism to add fbwhiptail patch so efifb/simplefb kernel driver can be used (works flawlessly) @JonathonHall-Purismdone under libgfxinit/nativegfx init: efifb enforced fb (+coreboot ramstage enabled bootsplash) #1403Adapt all other configurations to use native res per board (tested under x230, no need to set 1376x768)done under libgfxinit/nativegfx init: efifb enforced fb (+coreboot ramstage enabled bootsplash) #1403Originally posted by @tlaurion in #1403 (comment) and modified here
The text was updated successfully, but these errors were encountered: