Maemo5 boot process
1 Attachment(s)
Hi all,
I've gone through the boot process of Maemo5 and made a list of all scripts that are run, starting from /sbin/preinit all the way to /etc/X11/Xsession.post/99initdone :) It's just an (indented) list. I may turn that into a nice graph some day, but I don't think it's that useful. Please note that some Nokia-preinstalled services may not be present (if I have uninstalled them), while some of the listed services may come from additional software (e.g. sshd) not part of stock-PR1.3. There is still the question of what role (if any) /etc/event.replace.d has (have to look at upstart source code) as well as some scripts in /etc/init.d (some are used by the /etc/event.d scripts, others not) and /etc/rc*.d. I think /etc/rc?.d is a relic from previous Maemo versions, but I have to investigate that more in-depth. If I'm reasonably convinced that this is the case, I will wipe out those folders and see if everything works OK. Anyway, here it is (also attached to the post). Code:
*** Loaded by kernel |
Re: Maemo5 boot process
Wow, this is a seriously sweet post. You have a spare n900 right? We would'nt want you rm'ing /etc/rc*.d on a production device!
|
Re: Maemo5 boot process
So, I've tested removing /etc/event.replace.d and /etc/rcX.d on my N900.
The results: It boots just fine! Feel free to try it, although if it doesn't work out I'd recommend having RescueOS loadable from U-Boot at the ready. |
Re: Maemo5 boot process
Re. /etc/event.replace.d/
Many system services place the upstart file in /etc/event.replace.d/, but then postinstall copies it to /etc/event.d. I guess this is a way of ensuring that the script is only really put where upstart will find it once the whole package has been extracted. So I officially state: BEGIN: You can wipe out the folder if you like. It will never be used during booting. The only thing that could happen is that you install some program (which comes with an upstart script), and the script is placed there. If so, GOTO BEGIN (if you like). Next is /etc/rc?.d. Thanks @Hurrian for confirming that the N900 boots just fine after deleting those folders. Just in case I want to figure out WHO/WHAT created those folders in the first place. |
Re: Maemo5 boot process
pulseaudio in actdead? :p
|
Re: Maemo5 boot process
Quote:
If my list is right, the following things run when ACTDEAD: welcome (just echo) rcS dsme dme kernel-power sshd actdead (just echo) cmt-act-dead (kill modem) console (serial console if R&D) dbus-actdead (same as "dbus", swap USER/ACT_DEAD start/stop) alsaped (ALSA policy daemon) dsme-dbus hal rcS-late ohmd sgx xomap mce n900-fmrx-enabler (yup, enable FM receiver :) ohmd (yes, it's activated twice..) pulseaudio clock-daemon hildon-control-panel-personalisation (make sure we have a theme!) rc-clean-fail-thumbnail (absurd in ACTDEAD mode) xsession and then, when X is up and running: 00settings 01dbus (dbus session, system already started) 03alarmd (get them alarms ringing! :) 10sapwood 14osso-systemui 15matchbox (start WM, why? because we can :)[*] 99initdone [*] OK, I suppose matchbox is started (and the theme framework setup) so that you get the familiar alarm UI if necessary. When I have some more time I will make a post for each system service (or for a group of them) with an explanation of what it does. I guess a Wiki would be the best way, but I just can't find a way of creating an article :) Add.: and more importantly, the reboot and shutdown process has to be duly documented. |
Re: Maemo5 boot process
Nice work reinob :)
btw can you guys wiki this thread up :D ? ./sifo |
Re: Maemo5 boot process
Quote:
|
Re: Maemo5 boot process
Quote:
Would be happy in somebody would confirm this.. but, how do you turn the N900 down (or rather, go to ACTDEAD) when the device is locked?! I have to say I very rarely code-lock the N900, and when I do, I lock it manually and unlock it a few minutes later.. |
Re: Maemo5 boot process
Quote:
I mean I have mapped ctrl + right arrow mapped to matchbox-remote --next via xbindkeys. When pressed it switches to the next application, alt-tab like ;) That means matchbox is used in hildon or am I totally wrong? :confused: |
Re: Maemo5 boot process
@mr_pingu,
matchbox is not running when hildon-desktop is running (check with ps for yourself :). What matchbox-remote does is, presumably, to send a standardized message to the window manager (and hildon-desktop is a window manager). I bet if you were running KDE on your N900 matchbox-remote would still work, assuming that KDE (or whatever WM you'd be using) would follow the "standards" (if you can call it a standard anyway). In short: think of matchbox-remote as a synonym for wm-remote :) |
Re: Maemo5 boot process
Quote:
|
Re: Maemo5 boot process
Knowing boot process of N900 will help in reparing unbootable device
but what happens in reboot loops Is any file on opt or rootfs is damaged ? |
Re: Maemo5 boot process
Quote:
[1] user action (N/A in a reboot loop) [2] a critical dsme-executed system process being killed [3] a startup script actively deciding to reboot/change runlevel [4] hardware watchdog [5] kernel panic (indirectly, the reboot is done by the HW watchdog) I suppose a "typical" reboot loop is caused by [2] or [3]. [2] may happen if the user has tweaked/modded/deleted something so as to may a daemon crash/exit (e.g. Xorg configuration). [3] is something I want to investigate: some startup scripts *do* actively decide to reboot, either for good reasons (e.g. after flashing the eMMC) or because they think they're doing something smart (/sbin/preinit, bme, rcS-late, others?) An example is in /etc/event.d/rcS-late "If failed to mount /home and system has already been optified - reboot" Obviously, if getbootstate returns BOOT or SHUTDOWN or an invalid boot state ("Houston, we have a problem") then the N900 will also be rebooted. This can happen if e.g. the battery is not properly recognized. I'll try to make a list of things that can go (horribly) wrong while booting. |
Re: Maemo5 boot process
Quote:
|
Re: Maemo5 boot process
So I have removed the bootvideo, the 5 dots and inserted loading from framebuffer in preinit. Now what strikes me is that there's some placeholder where the 5 dots once were, black screen no framebuffer output; Is the device actually doing something at the moment that's important for the booting process? More exactly, what is it doing and can we reduce the time the screen is black?
|
Re: Maemo5 boot process
Quote:
[Hint: type ps in terminal you will get a list. Most of the programs are the ones that are loaded at boot time(I mean the system ones)] |
Re: Maemo5 boot process
That's not what I meant, I am curious what is exactly executed at that time. What is running before is not interesting, regarding the purpose of my question.
My hope was that Reinob knows exactly what it is doing, if its uberhaupt doing anything ;) I guess it may be related to this: http://talk.maemo.org/showpost.php?p...98&postcount=8 Also, I am just thinking aloud, I didn't investigate it that much myself. |
Re: Maemo5 boot process
Quote:
checking /var/log/maemo-optify-boottime.log might help:) causes around 2 sec(1.91272 sec) delay for me. |
Re: Maemo5 boot process
Quote:
Have a look in /etc/X11/Xsession.d (might have a typo in there, I'm not particularly concentrated now :). |
Re: Maemo5 boot process
Just wanted to thank you for this awesome thread.
|
Re: Maemo5 boot process
1 Attachment(s)
Why isn't this info in the wiki yet?
http://wiki.maemo.org/Maemo_5_boot_process Adding patch to show that /etc/X11/Xsession.d/3*-5* scripts only execute if ! -e /var/dont_start_suw |
| All times are GMT. The time now is 05:45. |
vBulletin® Version 3.8.8