How to reduce bootup time?

I’m using the minimal version of BBAI64 and it takes about 20 seconds to boot the cli from the SD card.

It probably takes about 10-12 seconds to enter the SD card from u-boot, and about 10 seconds for debian to run, for a total of 20 seconds.

If I shorten the boot select time in u-boot and boot from eMMC without using SD, can I get debian to boot in less than 10 seconds?

Way too much stuff to load, I have not personally tested that, so I could be all wrong. However, a full desktop experience has a ton of code. Do you really need a full debian experience? If not look at Arago minimal image and just add to that one, that boots very fast from SD.

Your best bet for running a full debian experience would be to use RCN’s app note setting the board up to boot using a hybrid configuration using emmc first then continue on using NVMe. It works extremely well, and NVMe will give you about 800 Mbs compared to about 35 Mbs from an SD card.

I haven’t really optimized for boot up speed on the bbai64, looking at one of my docker/sbuilder’s…

voodoo@bbai64-02:~$ sudo systemd-analyze 
Startup finished in 4.952s (kernel) + 7.786s (userspace) = 12.738s 
graphical.target reached after 7.749s in userspace
voodoo@bbai64-02:~$ sudo systemd-analyze blame
24.491s fstrim.service
 5.305s bb-usb-gadgets.service
 1.735s docker.service
 1.631s systemd-random-seed.service
 1.376s dev-nvme0n1p1.device
  651ms containerd.service
  635ms systemd-udev-trigger.service
  525ms man-db.service
  460ms schroot.service
  384ms systemd-logind.service
  362ms systemd-journald.service
  337ms systemd-resolved.service
  267ms user@1000.service
  254ms systemd-timesyncd.service
  250ms systemd-networkd.service
  240ms bb-symlinks.service
  203ms apparmor.service
  202ms systemd-journal-flush.service
  191ms ssh.service
  181ms avahi-daemon.service
  177ms e2scrub_reap.service
  150ms cockpit-motd.service
  147ms systemd-tmpfiles-setup.service
  129ms logrotate.service
  116ms wpa_supplicant.service
   98ms networking.service
   93ms rsyslog.service
   84ms cockpit.socket
   83ms systemd-udevd.service
   71ms systemd-remount-fs.service
   67ms dev-hugepages.mount
   65ms systemd-update-utmp.service
   61ms rpcbind.service

disabling bb-usb-gadgets.service should give you some bootup, we ship with docker.service pre-installed…

This is an eMMC/nvme hybrid: BBAI64 - NVMe - rootfs

voodoo@bbai64-02:~$ lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
mmcblk0      179:0    0  14.6G  0 disk 
├─mmcblk0p1  179:1    0   128M  0 part /boot/firmware
└─mmcblk0p2  179:2    0  14.5G  0 part 
nvme0n1      259:0    0 232.9G  0 disk 
└─nvme0n1p1  259:1    0 232.9G  0 part /
mmcblk0boot0 179:256  0     4M  1 disk 
mmcblk0boot1 179:512  0     4M  1 disk 

Regards,

1 Like