-
Notifications
You must be signed in to change notification settings - Fork 0
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
Quiet boot option #116
Comments
After almost two years, I haven't heard any user that is interested in this feature. I would close it without implementing. |
@wessel-novacustom maybe not for the laptops, but I personally want this. |
I also would like this, with quiet boot we could eliminate the logo flicker that happens when clearing the strings before handing off to OS :) |
This, plus skipping things like searching for boot options, so you will have a quiet-fast boot option. Maybe there are more elements that can be skipped during boot to realise a faster boot time. |
Any boot time optimization should start with measurement. What is the current firmware boot time, precisely? |
While quiet boot is a simple modification, fast boot isn't. Also fast boot and quiet boot are two different things and should not be mixed.
If we do that, everything will fall apart most likely. The drivers still need to initialize the storage to load the OS bootloader. It is not the boot option searching that takes most of the time, but I/O device enumeration and initialization from my experience. Searching for boot options is actually not that time consuming. We could skip drivers that initialize everything else than SATA and NVMe, but then there is no way to enter setup during boot nor to have any input, if the USB and PS/2 drivers would not be loaded. I'm not aware of any good public reference for a fastboot option, thus I have no ideas how to approach it properly and not cause problems for device owners. Slimbootloader has fast boot but it essentially skips the graphics initialization, measured boot and verified boot (so basically strips security and output device initialization). |
Thank you for the technical feedback on this. Do you see any other option to reduce boot times? |
Like @pietrushnic said, measurements first. Then we can talk what we can improve. I/O device enumeration is what takes the most time from my experience, but it varies from platform to platform. |
IMHO, we should have reliable boot time measurements. I'm pretty sure we are doing it as part of testing, but do we have information on how much time each phase takes? |
@miczyg1 "prints strings on the screen indicating the menu prompt" Other (proprietary) BIOS I have seen in the past have a "full screen boot logo" option. Dell devices, Lenovo laptops, and even the stock MSI Z690 I believe has it. This option sounds similar to what you like to achieve (just show the boot logo with no text). Either way I agree measurement first before trying to optimize. |
Yes, these ones. There are also extra liens with firmware version and EC version printed on laptops too.
Full screen boot logo? No, that's not it. Boot logo does not have to be stretched to the whole screen. Quiet boot just means that nothing is printed on the screen except logo. There is still open question what to do about warnings like vboot, battery, etc. Those should still remain IMO.
@pietrushnic coreboot has detailed timestamps at each initialization point. EDK2 seems to measure many events too based on the source code. However in Linux we can only see: |
UEFI Shell has a command It probably also includes the actions I have taken to dump these (i.e entering setup, then UEFI shell, then typing the command and redirecting the output to a file in a fielsystem). But as suspected, the most notable are the consoles, device enumeration and partitions/filesystem drivers, screenshot driver. And the I/O devices in general (mainly PS/2 keyboard). |
This is a lovely dump we should get every time we release. The key question is what can be optimized. PS/2 timing looks crazy. |
Thanks @miczyg1 for figuring this out. After all those years I'm glad to see there is now measurable data on boot/initialization performance when disabling unused devices and controllers. I've been disabling the PS/2 and IDE/ATA and/or SATA controllers for years in my various builds in best faith that I can shave off a few milliseconds of boot time. Being able to measure this with DP is huge. @miczyg1 How do redirec the dp -v output to a USB flash drive? |
The screenshot delay is even more annoying, it's just stalling to display a status indicator in the screen corner :\ Can be removed or hidden behind a build option for our purposes IMO. Other than this delay it shouldn't take up any meaningful amount of time |
@Firminator When entering the UEFI Shell, it will print available filesystems. You can redirect the output like on any other Linux. E.g.
|
We can't if we want to remove the UEFI Shell from builds. I recall we wanted to get rid of the internal UEFI Shell because of Secure Boot. So we would have to think first about adding an option to boot UEFI Shell from an external filesystem, subject to Secure Boot verification, if anything. |
Yes, we should carefully consider that. I hoped the Zarhus Team (@artur-rs cc) would update their UEFI Secure Boot tests. The best course of action is to create a Shell signed with robot-made keys, then those keys are provisioned, and we can do other tests like a Suite Prep procedure. |
Tests may run UEFI Shell with Secure Boot disabled, no need to go to such lengths to sign the Shell binary. I think we have separate tests for testing the signing and the verification. |
Yeah, it makes much more sense. I think just secure boot-related tests that rely on the uefi shell should be changed, but it is out of the scope of this issue. |
|
If we really need UEFI shell for some tests, we can simply put in on the ESP instead of including it in firmware. Then we could remove the builtin shell or build a stripped down version (MIN_SHELL) This way we keep the tests working and become compliant with secure boot. |
That's exactly what I meant by UEFI Shell launched from external filesystem. It may either be an option in the boot menu (which scans all filesystems in search of |
After the analysis of sources and the performance report pasted in the issue, the plan may look as follows:
Of course adding 2 checkboxes in menu. I think the best place is Boot Mainetnance Manager, where the timeout lives. So: Enable Fast Boot [] (default disabled) Enabling fastboot will case:
I think fastboot and quiet boot variable may be exposed to OS, so that anybody can disable it when needed. Plus documenting new options, writing new tests specification. BTW: we have an issue for fastboot: #115 |
PR: Dasharo/edk2#204 |
Will this fix (shaving off the 500ms from the Screenshot UEFI driver) be made available for the Z690? |
The problem you're addressing (if any)
Currently Dasharo firmware prints strings on the screen indicating the menu prompt.
Describe the solution you'd like
Add a "Quiet boot" option to disable the strings during POST.
Where is the value to a user, and who might that user be?
These strings are not necessary and some people may not like it. There should be an option to disable them.
Describe alternatives you've considered
None
Additional context
None
The text was updated successfully, but these errors were encountered: