Fix/pi fast boot - #98
Merged
Merged
Conversation
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request implements significant improvements to the fast boot optimization process and the application startup sequence, with a focus on making systemd integration more robust and startup health reporting more precise. The changes also enhance documentation and clarify best practices for Raspberry Pi 5 boot optimization. The most important changes are grouped below:
Fast Boot Optimization and Systemd Integration:
install.shto present each optimization (background services, kiosk mode without LightDM, and cloud-init disabling) as separate, reversible options, with explicit tracking of which optimizations were applied or skipped. Added helper functions to safely disable systemd units only if present, and improved user messaging for each step. Summary of applied/skipped optimizations is shown at the end, along with restoration instructions. [1][2][3][4][5]clios.servicesystemd unit to useType=notify, enabling reliable notification to systemd when the application is fully ready. Increased startup timeout and setNotifyAccess=all.Application Startup Health and Notification:
main.py, including atomic file writes, elapsed time measurement, and phase logging. Integrated systemdREADY=1notification using a custom socket implementation, ensuring systemd only marks the service as ready after the first QML frame is displayed. [1][2][3][4][5][6][7][8]Frontend Service Initialization:
qt_bridge.pyuntil after the first QML frame, to ensure the fastest possible visible startup and accurate health reporting. [1][2]Documentation and Best Practices:
Testing: