We have BBB based custom Linux board running Linux 3.12.

We are current using SysV init for boot. I understand that boot happens in following sequence:

  1. ROM code looks for boot device based on boot pin configuration.
  2. ROM code loads first stage boot loader(SPL/X-loader) to Internal SRAM and gives control to it.
  3. SPL does some initialization like DDR and proceeds to load U-Boot to RAM.
  4. U-Boot does other peripheral initialization i.e. NAND/eMMC/ethernet and loads kernel+dtb.
  5. Kernel executes initializes configures different hardware/peripherals based on dtb and initializes all the drivers.
  6. Kernel runs first process i.e. init (/sbin/init in our case but can be set in Kernel command line parameters).
  7. init application based on inittab (configuration file) runs startup script specified in inittab file e.g. ::sysinit:/etc/init.d/rcS
  8. This /etc/init.d/rcS runs all the init scripts placed in /etc/init.d/ folder.

So this is how the board boots with SysV init. (At least, this is my understanding. Correct me if I am wrong in some points.)

Now at some point we want to evaluate how systemd bootstrap happens. We will have to make POC and see any improvement or degradation of the system boot and process maintenance.

We know some basics: systemd works on cgroups, and can start processes in parallel, but handles process like what monit does.

However what we don't know is the actual boot process with systemd.

What is the boot process for BeagleBoneBlack Linux when systemd is used instead of System 5 init? How does it differ from what I've outlined above for our existing boot process?

closed as off-topic by Rui F Ribeiro, sam, Kusalananda, Networker, slm Jul 22 '16 at 10:55

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Requests for learning materials (tutorials, how-tos etc.) are off topic. The only exception is questions about where to find official documentation (e.g. POSIX specifications). See the Help Center and our Community Meta for more information." – Rui F Ribeiro, Kusalananda, slm
If this question can be reworded to fit the rules in the help center, please edit the question.


It works exactly the same, except that systemd's init binary does not use inittab or the rcS scripts; instead it uses different logic to decide how to start a daemon.

The kernel part of it, however, is still the same.

If you want more than that, you'll have to be more specific...

  • How do we ask kernel to run systemd instead of /sbin/init ? is it through kernel command line parameters? – AnkurTank Jul 22 '16 at 10:27
  • 1
    Yes, that's one option. If you're running Debian, the other is to install the systemd-sysv package, which replaces the default init implementation with systemd. – Wouter Verhelst Jul 22 '16 at 10:36
  • Any suggestion how to proceed when moving scripts from SysV init to systemd ? – AnkurTank Jul 22 '16 at 10:44

Not the answer you're looking for? Browse other questions tagged or ask your own question.