Hi guys, recently our system level team worked hard to improve the time spent during u-boot and kernel initialization. The next task is even more involving, since it has many potential consequences for applications.
The basic question is: How do we improve userland boot time without compromising flexibility of the OpenMoko distribution. Let me briefly discuss different alternatives here: a) ditch sysvinit and use a monolithic script (think linuxrc). This will have the most speed impact, but is a very invasive change reducing a whole lot of the flexibility that the audience needs. b) ditch sysvinit and use a better init system. This has a reasonable speed impact and keeps OpenMoko flexible. However, it's quite a bit of work, since OpenEmbedded is pretty sysvinit-centric -- yet. c) keep sysvinit and just shuffle around runlevels and services. This will have the least speed impact, but could be sufficient to improve the user experience. We could, e.g. invent a new runlevel that only starts the necessary services to get X starting up and then go to init 5, starting other services in the background while the user can operate the device. Obviously, option a) would be the _very_ last resort, if all else fails. I like option b) a lot. Going towards upstart not only allows launching services in parallel, but even more important, it comes with an event based system that could make the initscript mess much more straightforward. Option c) is something short-term that may result in something that's "good enough", but not cleaner than what we have now. Our focus needs to be on * starting the UI at the earliest possible time and * starting services only when they're necessary. This also has positive effects on power consumption. Comments? Regards, :M: -- Dr. Michael 'Mickey' Lauer | IT-Freelancer | http://www.vanille-media.de

