Hello systemd developers,
I'm working on minimizing user space boot time with systemd on an embedded
board and would appreciate any advice or insights from the community.
Setup details:
*
Hardware: sam9x75-curiosity-sd (ARMv5), booting from SD card
*
Distro: Yocto/Poky, custom minimal image
*
Storage: root on /dev/root (SD), /boot on /dev/mmcblk0p1
*
Systemd: extensive minimization
*
All optional features/daemons are disabled (via Meson and PACKAGECONFIG), no
LVM, RAID, or swap
*
Only essential units (fastboot.target, custom hmi.service, minimal getty and
dbus)
*
No unnecessary entries in /etc/fstab; root and /boot only
*
Kernel configured for minimal drivers and fast boot
*
No unnecessary settle or legacy storage services remain enabled
Boot logs:
# systemd-analyze time
Startup finished in 771ms (kernel) + 2.715s (userspace) = 3.486s
fastboot.target reached after 2.231s in userspace.
# systemd-analyze blame
422ms hmi.service
# systemd-analyze critical-chain fastboot.target
fastboot.target @2.231s
# systemctl get-default
fastboot.target
# ls /lib/systemd/system/fastboot.target.wants/
console-getty.service dbus.socket hmi.service
I've reviewed systemd.io/OPTIMIZATIONS<https://systemd.io/OPTIMIZATIONS/> and
applied all recommendations relevant to my scenario (disabling settle services,
removing legacy storage stacks, fixing locale, etc.).
Question:
Given the above, is it realistic to further reduce systemd userspace boot time
below 2 seconds on such an SD-boot, minimal embedded board? Are there advanced
tunables, overlooked dependencies, or hardware-specific factors I should
consider to claw back a few hundred milliseconds? Any experience or
pointers—especially from similar setups—are very welcome.
Thanks in advance!
With Best Regards,
Dharma B