The document is a pragmatic guide to boot-time optimization presented by Chris Simmonds, focusing on techniques to reduce boot time in embedded systems. It discusses methods to measure boot time, typical modifications for user-space, kernel, and bootloader optimizations, and emphasizes the importance of balancing boot-time reduction with future maintenance burdens. The guide includes practical examples and tools to help developers implement these optimizations effectively.
Overview and author introduction. The presentation focuses on the need for boot-time optimization and Chris Simmonds' credentials.
Emphasizes the desire for shorter boot times, potential issues with maintenance burden and the effort required.
Presents a pragmatic approach to optimization through measurement, evaluation, and modification. Mentions tools for measuring boot time.Description of tools like Grabserial for capturing boot time and its output format.
Establishes baseline boot times for different components, totaling 11.76 seconds from power-on to app start.
Discussion on modifications to user-space processes, focusing on optimizing init order and running important apps earlier.
Demonstration of running 'qtdemo' app as an init process to save boot time, showing improvements.
Strategies for optimizing kernel boot time, including reducing console messages, and measuring kernel performance with Bootgraph.
Methods to reduce bootloader boot time by removing delays and simplifying boot scripts, introducing Falcon mode.
Recommendations to integrate boot time optimizations into CI processes and development practices.
Summarizes that meaningful boot-time reductions can be achieved without extensive changes.
Open floor for questions following the presentation.
Sample systemd unit file setup for early app execution.
Steps for configuring U-Boot for Falcon mode to speed up booting.
Description of the MMC layout required for boot procedures.
Instructions on modifying U-Boot configuration for environment setup.
Command details for writing boot images onto an SD card based on a specific layout.
Initial commands to prepare and load the kernel and device tree during boot.
Further instructions to finalize Falcon mode setup and initiate kernel boot.