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
[LIVE] Our ideas for optimizing XBMC Live (Linux OS) for shorter perceived boot-time?
micolous
Junior Member Posts: 4 Joined: Oct 2007 Reputation: 0 Location: Australia |
2008-02-27 21:57
Post: #11
|
| find quote |
Ebbo
Junior Member Posts: 25 Joined: Feb 2008 Reputation: 0 Location: Stuttgart, Germany |
2008-02-28 13:04
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 ![]() 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
Junior Member Posts: 25 Joined: Feb 2008 Reputation: 0 Location: Stuttgart, Germany |
2008-02-28 13:08
Post: #13
|
| find quote |
topfs2
Team-XBMC Developer Joined: Dec 2007 Reputation: 8 |
2008-02-28 14:19
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. ![]() "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
Team-XBMC Forum Moderator Joined: Sep 2003 Reputation: 9 Location: Sweden |
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)? ![]() Would be great with a collected list of tweaks that work / don't work with Ubuntu
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
Member+ Joined: Jul 2006 Reputation: 3 Location: USA Virginia |
2008-07-05 18:22
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
Senior Member Joined: Jul 2008 Reputation: 5 Location: Sweden |
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
Junior Member Posts: 12 Joined: Jul 2006 Reputation: 0 |
2008-07-08 09:22
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
Junior Member Posts: 27 Joined: May 2008 Reputation: 0 |
2008-08-20 01:38
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
Junior Member Posts: 27 Joined: May 2008 Reputation: 0 |
2008-08-20 01:39
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 |


![[Image: badge.gif]](http://www.ohloh.net/projects/149/badge.gif)

Search
Help