This project introduces a set of yocto recipes (systemd service units, udev rules, and kernel module configurations) designed to dramatically reduce the time-to-first-perception for critical system services —
- Display (Weston / DRM pipeline)
- Audio (PipeWire)
- Camera (GStreamer / cam-server pipelines)
It targets use cases such as Action Cameras, Automotive IVI, and Industrial HMI where a very fast boot experience is a hard product requirement.
QuickBoot achieves early boot of critical services through three complementary techniques applied consistently across all three subsystems:
Rather than relying on udev coldplug (which is slow and non-deterministic), QuickBoot uses modules-load.d configuration files to pre-load kernel modules in a precise, dependency-ordered sequence during systemd-modules-load.service — one of the earliest systemd units to run.
Custom udev rules watch for specific device node creation events (e.g., controlC0 for ALSA, video0 for camera, card0 for DRM/display) and immediately trigger the corresponding service the moment the hardware is ready — eliminating polling delays.
All early boot services are configured with DefaultDependencies=no, which removes the implicit ordering after sysinit.target and basic.target. This allows services to start in parallel with the rest of the boot sequence, as soon as their hardware dependency is satisfied.
Goal: Play an audio chime as early as possible to signal boot completion.
Mechanism:
audio-modules.confpre-loads ALSA/audio kernel modules viasystemd-modules-loadbefore udev coldplug runs.- A udev rule fires
pipewire.servicethe instantcontrolC0(the ALSA control device) appears. pipewire.serviceruns withDefaultDependencies=no, bypassingsysinit.targetordering.early_audio_play_app.serviceplays a WAV file to thepal_sink_speaker_lllow-latency sink and logs precise timestamps to bothjournaldand/dev/kmsgfor boot-time measurement.
Goal: Show a splash screen or UI frame as early as possible (before multi-user.target).
Mechanism:
display-modules.confpre-loads DRM/GPU kernel modules early.- A udev rule fires 'weston.service' whenever DRM is ready ( dev-dri-card0.device )
- 'weston.service runs with
DefaultDependencies=no, bypassing sysinit.target ordering. - 'weston.service runs with --backend=drm-backend.so --shell=kiosk-shell.so --idle-time=0
Goal: Start camera preview (first frame) as fast as possible, targeting Action Camera use cases.
Mechanism:
camera-modules.confpre-loads camera and V4L2 kernel modules viasystemd-modules-load.02-cam-server.rulestriggerscam-server.servicethe momentvideo0is enumerated by udev.early_cam_preview_app.serviceis a real-time scheduled service that launches a GStreamer pipeline viacam_preview_app.shon the Weston compositor.iq9075-first-boot-cam-setup.shperforms a one-time first-boot optimization: configures EFI settings and relocates unused sensor module binaries to reduce camera initialization latency on subsequent boots.
- Target device running Qualcomm Linux (QLI 2.0+)
- Root access on the target
- Weston, PipeWire, GStreamer installed on the rootfs
Clone the repository on the target device and run the installer:
git clone https://github.com/ctheegal/quickboot.git
cd quickboot
sudo ./quickboot-apps-installer.shThe installer automatically:
- Copies udev rules →
/etc/udev/rules.d/ - Copies
*-modules.conf→/etc/modules.d/and other.conf→/etc/modprobe.d/ - Copies systemd service/socket units →
/etc/systemd/system/ - Copies shell scripts →
/usr/bin/(with execute permission) - Copies WAV audio assets →
/usr/share/sounds/ - Runs
systemctl daemon-reload - Auto-discovers and enables all
early_*.serviceunits - Runs
udevadm control --reload-rules && udevadm trigger
sudo rebootAfter reboot, the early boot services will activate automatically as their respective hardware devices are enumerated.
- cd qcom-meta
- git clone https://github.com/ctheegal/quickboot
- meta-qcom-distro/recipes-products/images/qcom-multimedia-image.bb
- IMAGE_INSTALL:append = " quickboot_audio quickboot_camera quickboot_display"
- Chitti Babu Theegala — `ctheegal@qti.qualcomm.com, Qualcomm Technologies, Inc.
- Vaibhav Jindal —
vaibjind@qti.qualcomm.com, Qualcomm Technologies, Inc. - Tarun Balaji Nidiganti —
tnidiganti@qti.qualcomm.com, Qualcomm Technologies, Inc.
Quickboot is licensed under the BSD-3-clause License. See LICENSE.txt for the full license text.