maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Maemo 5 / Fremantle (https://talk.maemo.org/forumdisplay.php?f=40)
-   -   Maemo5 boot process (https://talk.maemo.org/showthread.php?t=87959)

reinob 2012-11-21 08:51

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
        /sbin/preinit

*** Loaded by upstart from /etc/event.d
        welcome
        rcS
                dsme
                        bme (may emit G_NOKIA_READY if /var/lib/ke-recv/usb_phonet_mode)
                                rc-default (emits STATE according to /tmp/STATE)
                        kernel-power
                sshd

** State USER
        console (starts serial console /etc/event.d/tty* if R&D mode)
        dbus
                alsaped
                csd
                dsme-dbus
                dsme-thermal
                dsp
                        dsp-manager
                hal
                        rcS-late (emits MOUNTS_OK)
                                pymaemo-optify
                        ohmd
                        sgx
                                xomap
                mce
                n900-fmrx-enabler
                omap3camd0
                pulseaudio
                sms-manager
                sscd (emits cellmo poweron/reset/poweroff/sim.. signal)
                sysinfod

* on cellmo ... (emitted by sscd)
        gprs-provisioning        (on cellmo sim ready)
        pin-query                (on cellmo sim code-required)

* on G_NOKIA_READY
        phonet_at
        softupd

* on MOUNTS_OK
        clock-daemon
        hildon-control-panel-personalisation
        rc-clean-fail-thumbnail
        xsession
                (wait until xomap ready,
                        emit XSESSIONS_STARTING or XSESSIONS_ACTDEAD_STARTING if ACTDEAD
                then
                        exec /etc/X11/Xsession as user)

* on XSESSIONS_STARTING
        bluetoothd
                bluetooth-sysinfo (when starting)
                bluetooth-dun (when started)
        camkeyd
        hildon-desktop
                app-detect
                fmtx
                funambol-cpp-api
                headphoned
                ke-recv
                        nokiamessaging
                ke-recv-extra
                kernel-modules
                location-proxy
                omapcp
                tonegend
                wlancond
                        dnsmasq
                        icd2
        iphb
        signon

* /etc/X11/Xsession (sources, does not execute, scripts)
        if USER
                run-parts /etc/X11/Xsession.d
                        00settings
                        01dbus
                        01maemo-xinput-sounds
                        02maemo-launcher
                        03alarmd
                        03gtk2-engines-sapwood
                        03osso-systemui
                        04b_start_matchbox
                        04devlock_blocker
                        05connui-conndlgs-cellular
                        06stop_matchbox
                        07ssc-ready
                        30osso-startup-wizard
                        40osso-systemui
                        41dbus
                        41maemo-xinput-sounds
                        42maemo-launcher
                        50alarmd
                        51osso-systemui
                        60mission-control
                        65hildon-sv-notification-daemon
                        90gpg-agent

                run-parts /etc/X11/Xsession.post
                        15hildon-status-menu
                        17camera-ui
                        18hildon-home
                        20hildon-desktop
                        21hildon-desktop-wait
                        22camera-ui
                        22clipboard-manager
                        23tracker
                        24connui-conndlgs
                        25hildon-input-method-configurator
                        30tablet-browser-daemon
                        32mafw-gst-renderer
                        32mafw-gst-iradio-source
                        32mafw-tracker-source
                        32mafw-upnp-source
                        40hildon-application-manager
                        41tmp-reaper
                        55ohm-session-agent
                        66maesync-controller
                        68syncd
                        70osso-abook-home-applet
                        99initdone

        if ACTDEAD
                run-parts /etc/X11/Xsession.actdead
                        00settings
                        01dbus
                        03alarmd
                        10sapwood
                        14osso-systemui
                        15matchbox
                        99initdone

** State ACTDEAD
        actdead
        cmt-act-dead
        console
        dbus-actdead
                alsaped
                dsme-dbus
                hal
                        rcS-late (emits MOUNTS_OK)
                                pymaemo-optify
                        ohmd
                        sgx
                                xomap
                mce
                n900-fmrx-enabler
                ohmd
                pulseaudio

* on XSESSIONS_ACTDEAD_STARTING
        -

** State TEST
        wl1251-cal


vi_ 2012-11-21 09:10

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!

Hurrian 2012-11-21 11:40

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.

reinob 2012-11-21 13:21

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.

foobar 2012-11-21 13:47

Re: Maemo5 boot process
 
pulseaudio in actdead? :p

reinob 2012-11-21 15:21

Re: Maemo5 boot process
 
Quote:

Originally Posted by foobar (Post 1296759)
pulseaudio in actdead? :p

Yup. Remember: alarms have to sound :)

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.

sifo 2012-11-21 16:12

Re: Maemo5 boot process
 
Nice work reinob :)
btw can you guys wiki this thread up :D ?

./sifo

vi_ 2012-11-21 16:56

Re: Maemo5 boot process
 
Quote:

Originally Posted by reinob (Post 1296828)
Yup. Remember: alarms have to sound :)

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.

Matchbox is started to display the 5 dots, then the UI for entering the device lock code (if you have a lock code). Matchbox is then **** down and hildon is started up.

reinob 2012-11-21 19:46

Re: Maemo5 boot process
 
Quote:

Originally Posted by vi_ (Post 1296898)
Matchbox is started to display the 5 dots, then the UI for entering the device lock code (if you have a lock code). Matchbox is then **** down and hildon is started up.

Thanks! I fortgot about the dots (I don't have them :). If my analysis is correct, then the device lock screen should NOT appear when in ACTDEAD mode.

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..

mr_pingu 2012-11-21 21:36

Re: Maemo5 boot process
 
Quote:

Originally Posted by vi_ (Post 1296898)
Matchbox is started to display the 5 dots, then the UI for entering the device lock code (if you have a lock code). Matchbox is then **** down and hildon is started up.

Hmm matchbox is used as WM even inside hildon, doesnt it?'

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:


All times are GMT. The time now is 16:23.

vBulletin® Version 3.8.8