[LIVE] Our ideas for optimizing XBMC Live (Linux OS) for shorter perceived boot-time?

  Thread Rating:
  • 2 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
micolous Offline
Junior Member
Posts: 4
Joined: Oct 2007
Reputation: 0
Location: Australia
Post: #11
Some thoughts:

initng is a parallel replacement for sysvinit. It runs boot-time daemons in parallel, meaning the system will start faster, even when only one CPU is available to the computer (for example, at once point my 90 second boot time was reduced to 30 seconds or less).

I believe Ubuntu and maybe Fedora in the past (maybe the present too) "cheat" with their bootup sequences, and start gdm early, before lots of other daemons are started, giving the user a chance to login before other system services have started. Windows XP does something similar, but doesn't do that particularly well (the system is unresponsive for several seconds before you can actually use the computer).

RAM disks rock - many systems today have huge amounts of memory, especially compared to the XBox. What would be cool is to have a base system in a read-only filesystem, then push XBMC's files into RAM disk on boot. Put settings/video database onto another RAM disk and flush that back to a read/write partition periodically (eg: every 5 minutes if changed). Many embedded systems use an NVRAM to this effect.

XBMC integrates most services (FTPD, HTTPD ...) into itself so there is no need for external services in this case. So it would be quite possible to have a system with almost nothing running. Maybe just an sshd to debug things, but that is minimal.

twm-kiosk is a nice minimal window manager for situations where you have a Kiosk with one application open. TWM normally is about 400kB, meaning you can loose the weight of having GNOME or KDE installed. I don't think XBMC depends on Qt or GTK, meaning you could theoretically loose those too.

Playing around with replacement BIOS is dangerous. I think we can accept this as a "reasonable sacrifice", after all, on the XBox it has a Microsoft XBox boot logo too. I don't think it is reasonable to expect someone to reflash their BIOS with a custom firmware. Additionally on Media PCs there may be hardware RAID setups, or extra SATA/IDE controllers that need to come on, and I think people come to expect this extra boot time.

The daemons I think that would actually be needed would be needed to run a system with XBMC (just going by my Ubuntu setup):
- acpid
- udevd
- hald
- bluez (for Bluetooth input devices)
- powernowd (optional; if CPU supports it - very good for keeping systems cool and quiet)
- dhclient3 (optional; if DHCP is enabled)
- hddtemp (optional)
- avahi-daemon (optional; if MDNS is needed)
- cron (may be needed)
- X (as well as a light WM)

Pretty much everything I think can be eliminated...
- portmap: not needed as no NFS server/client needed
- klogd & syslogd: not needed, as system logs would be discarded in a RO environment
- dhcdbd: part of dbus
- dbus: no real need for IPC as XBMC can monitor everything
- at: no need for non-repeating scheduled tasks
- gdm: no need for login manager as X would be started externally
- cupsys, hpiod, hpssd: no need for printing support
- gconfd: no need for gconf as XBMC manages own settings
find quote
Ebbo Offline
Junior Member
Posts: 25
Joined: Feb 2008
Reputation: 0
Location: Stuttgart, Germany
Post: #12
Because we are running under Ubuntu at the Moment ....

why not try to build a small ubuntu derivate, like xbmcubuntu or something else Wink

A good start might be... http://minibuntu.crealabs.it/

A first step would also be creating a Repository where testers might get regular builds of Linux XBMC
find quote
Ebbo Offline
Junior Member
Posts: 25
Joined: Feb 2008
Reputation: 0
Location: Stuttgart, Germany
Post: #13
http://www.ibm.com/developerworks/linux/...ebpkg.html

This a IBM tutorial to build Debian packages.
find quote
topfs2 Offline
Team-XBMC Developer
Posts: 3,852
Joined: Dec 2007
Reputation: 8
Post: #14
Might wanna check this out: http://www.xbmc.org/forum/showthread.php?t=30857

If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
find quote
Gamester17 Offline
Team-XBMC Forum Moderator
Posts: 10,595
Joined: Sep 2003
Reputation: 9
Location: Sweden
Lightbulb  More tips and tricks to speedup the boot time, anyone want to test these with Ubuntu? Post: #15
Here is a few interesting articles about tips to optimize Ubuntu 8.04 for speed and boot-time:
http://news.softpedia.com/news/Optimize-...6405.shtml
http://www.ubuntu-unleashed.com/2008/04/...-boot.html
http://ubuntuforums.org/showthread.php?t=89491
http://aldeby.org/blog/index.php/speed-u...-boot.html
http://ubuntuforums.org/showthread.php?t=53970
http://news.softpedia.com/news/Improve-P...7261.shtml
Make sure you read all the comments as well first though before trying these out.

Maybe some of these could be applied to our XBMC LiveUSB distro? ...any volenteer(s)? Confused

Would be great with a collected list of tweaks that work / don't work with Ubuntu Nod

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
find quote
BLKMGK Offline
Member+
Posts: 1,634
Joined: Jul 2006
Reputation: 3
Location: USA Virginia
Post: #16
Doing some of these myself, concurrent booting of system processes on a multicore system sounds useful, I am also looking at nodiratime rather than noatime for safeties sake and feedback on that would be appreciated. turned off all sorts of things like the BT manager, print queue junk, and evolution alarm since I don't use this box for mail. Still looking through suggestions looking for those that won't impact general data safety but provide some boost. What I've done so far seems pretty safe I think and ought to help at least a little.

Edit: found a GUI utility names BUM that looks good for managing services and whatnot. Bootchart also looks interesting but I've not yet run it. with this you can see what part of your boot process is problematic and slowing things.

Ubuntu 10.10, MCE USB receiver, ASROCK 330 (ION), DVDs fed from unRAID cataloged by DVD Profiler. HD-DVD encoding Added DiNovo Mini KBRD w/track
(This post was last modified: 2008-07-05 18:56 by BLKMGK.)
find quote
flyingrat Offline
Senior Member
Posts: 258
Joined: Jul 2008
Reputation: 5
Location: Sweden
Thumbs Up  Important project objective Post: #17
webbanane Wrote:I believe one of the most important WAF (women acceptance factor) is the boot-time (and my own acceptance factor in living room). This definitely was the MAIN reason why I prefered to take a proprietary MICROSOFT Xbox with XBMC over a notebook! I believe I can not overstress this fact!

Absolutly, I cannot agree more! This is a very important success factor and should be stated as the main project objective in "The Linux port plan, Milestone 3 - Package XBMC ..." (ref: http://wiki.xbmc.org/?title=XBMC_for_Lin..._port_plan)
--

Lars.

1. XBMC: http://github.com/FlyingRat/xbmc (ffmpeg-head-inc-xbmc-patches)
2. FFmpeg: http://github.com/FlyingRat/FFmpeg (ffmpeg-head-with-xbmc-custom-patches)
3. XBMC-updated-FFmpeg-binaries (just dev snapshots, no regular distros)
find quote
deeceefar2 Offline
Junior Member
Posts: 12
Joined: Jul 2006
Reputation: 0
Post: #18
Here is a guide I found, it is a bit older, but still relavent:

http://ubuntusoftware.info/Howto_tweak_u...imate.html
find quote
Ryuzaki Offline
Junior Member
Posts: 27
Joined: May 2008
Reputation: 0
Post: #19
Use pure Upstart for booting. Seriously, when done properly you have a REAL concurrent boot setup, unlike the current sysv script emulation of upstart in Ubuntu. You can almost negate boot time when done properly. If oyu have a powerful enough machine you can have things start basically instantly in 2-3 waves.

--Core Functions
----Modules
----Any pre-reqs of proprietary driver modules

--User Daemons
----LIRC
----MySQL/Whatever else
----Xorg Pre-reqs

--User-Space Stuff
----Start X, directly starting XBMC
----whatever else

Naturally this is grossly over simplified. I used to do this on my old mythbox to accomplish about a 5 second boot. I Accomplished this by moving parts of the generic schema above to user-space scripts, excluding MySQL, which at the time needed to load well before the MythTV server for me. But that's probably of no matter to most people.

Things like Apache, and the like could easily be rigged via startx, although that's a little hackish.

My recommendation is look in /etc/init.d pick out what you really need (I STRONGLY suggest reading up first), plot it out on a web. And then clear (backup) event.d, and start working on your own script hierarchy. After doing this with the bare bones, you can start adding more and more to it. Note: it gets very complex very quickly, so start basic, and go from there.
find quote
Ryuzaki Offline
Junior Member
Posts: 27
Joined: May 2008
Reputation: 0
Post: #20
Forgot to mention that essentially your event.d scripts, for simplicity, will just point to /etc/init.d/* for various start stop reload calls. Otherwise it would take a far greater amount of time... but probably you would also cut a few more seconds off going Pureblood upstart.
find quote