Understanding Porteus Kiosk boot

Here you can post about the issues related to modifications performed manually (not through the kiosk wizard). Example: swapped kernel, added 3rd party modules or files.
Please describe in detail what has been changed and hopefully other kiosk user will be able to help.
Porteus team wont resolve bugs posted in this category as we support only modifications made by the kiosk wizard.
Forum rules
Porteus Kiosk section of the forum is unmaintained now. Its kept in a 'read only' mode for archival purposes.
Please use the kiosk contact page for directing your queries: https://porteus-kiosk.org/contact.html
LuxZg
White ninja
White ninja
Posts: 26
Joined: 11 Dec 2020, 23:19
Distribution: all kinds

Understanding Porteus Kiosk boot

Post#1 by LuxZg » 11 Dec 2020, 23:44

Hi,

this isn't exactly user modification (yet)... but I'd really like to understand boot order of Porteus Kiosk a little bit better.

Thing is, I see it happening something like this:
- kernel and initrd.xz (init script) do initial booting and such, fetch the xzm modules, unpack, and merge those, wallpaper is setup
- then I assume inittab takes over, don't see that happening, but that's how I understand usual boot process
- in inittab first file loaded is rc.S and that sets up some variables that other scripts will use, some checks etc
- next rc.M is executed, and from it rc.init1 is called and executed as well

Here I've noticed a huge missing step already.

Somewhere before rc.M is executed, it is already modified, same as rc.init1. rc.M already has timezone and hostname, and rc.init1 has ifconfig and route added, all those come from some kiosk config. But unpacked module files (rc.M and rc.init1) don't have those changes, so they obviously happen at some time before these two are executed (wouldn't make sense to be modified AFTER anyway).

I assume some script is parsing kiosk config file, and applying that to rc.* files in advance, but if I point Kiosk to pull config from web, and do few boots, and keep changing just the version on web, these rc.* files get modified.

What I am missing is where that happens exactly. Does it happen somewhere during execution of init script (in initrd.xz)? Am I just not seeing the code correctly? Or does init handover boot sequence to something else before inittab is even read? Or I'm missing some step that inittab executes before rc.S stage?

I don't even need much details about this in-between thing, I'd just like to know the moment when it's running, so I can input my own modifications after it (so my stuff doesn't get overwritten), but before the rest of the scripts (rc.*, autostart) are run, and other modifications are made (like openbox, browser, and vnc configurations for example).

Any pointers are most welcome!

Locked