[LIVE] Our ideas for optimizing XBMC Live (Linux OS) for shorter perceived boot-time?
#1
Lightbulb 
Hi!

This is a call for brainstorming ideas!

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!

My women would never accept a device in living room that takes more than 10 seconds to boot to show a short video for the kids. Otherwise only VCR and DVD-Player would be acceptable and comparable! (The latter is the right/real competition for measuring boot time!)

I never saw a PC with an "operating system" AND "application" boot so extremely fast like XBMC Cool!

As Gamester17 says:
Gamester17 Wrote:Remember that fast load and boot times only needs to be for end-user perception (other things can still run/start in the background without the user knowledge, ...like for Windows, only becuase you can move the mouse and browse the start-menu does not mean that Windows has finished booting).

BUT: XBMC REALLY was READY to OPERATE after 10 seconds! I can start selecting menu entries, browse my LAN-drive, start a video after about 20 seconds at all!

How can we preserve this with XBMC on linux? Does anybody know? Did anybody try things like that? Can we reach "our" old XBMC boot time of 10 seconds with ubuntu (embedded)? What is about Apple TV?

Here a guy is talking of a 3 seconds boot time for linux single user mode with a special linux BIOS (linux kernel within BIOS):
http://www.epiacenter.de/modules.php?nam...er=&thold=

The rules of brainstorming usually interdict criticism! (But of course this is still a discussion board!) But many ideas shall encourage/inspire new and really good ones!

yuvalt says:
yuvalt Wrote:What about standby (S3)? Should resume in 3 seconds or less..

Gamester17 Wrote:Major To-Do tasks with low priority
* [MAJOR - LOW PRIORITY] Hibernation - Suspend to Disk (STD) (code should be completly different from STR)
** Hibernation (Suspend to Disk), only if could somehow be used to speed up the initial boot-time.
* [MAJOR - LOW PRIORITY] Suspend and Resume support - Suspend to RAM (STR) (not to share code with STD)

This maybe an easy solution! But my impression is: XBMC needs to reboot very often, e.g. when network connections tilt, coruppted media file occur, cancel button pressed, python scripts make trouble and so on.

But perhaps its still a good idea, because only XBMC needs reboot on top of the still and stable running linux (with any kind of special reset button?).

Another additional solution maybe: make XBMC more fault tolerant ...

More ideas? Anybody?

Has anybody tried to deactivate hwprobe and all unneeded HW and measured boot time?

Are there any other standard linux mechanisms that allow for fast operating mode and deferred boot remainder?

PS: If we get a special good solution for this, it might be a solution for many other operating systems at least linux distros as well.
Reply
#2
I've never heard of WAF having to do with boot time, unless the boot time is ridiculously long. When I had a normal HTPC instead of XBMC, we'd just turn it on when we walked into the room and by the time we got settled in it was ready to go.

That said, lowering the boot time is a good idea and I think one of the XBMC team's goals once they're done porting (I've seen this mentioned at least a couple of times). 10 seconds is a bit on the low side for what people can expect with linux. Yes, it's possible to get really low boot times, but not without tweaking many settings and highly restricting the hardware support.

I think a more realistic goal would be a perceived load time of 30 seconds and then 45 seconds to complete loading everything. Keep in mind that a PC's POST screen will often take 3-5 seconds by itself before even getting to the kernel.
Reply
#3
webbanane Wrote:This maybe an easy solution! But my impression is: XBMC needs to reboot very often, e.g. when network connections tilt, coruppted media file occur, cancel button pressed, python scripts make trouble and so on.
Under linux you can just restart XBMC though, rather than reboot the whole computer. Takes about a second. Make a button on your remote control that uses lirc and irexec to kill XBMC and restart it, even faster than restarting an Xbox.

Which isn't to say that fast booting wouldn't be nice to have.
Reply
#4
Just dropping off to say that my DirecTV TiVo takes about 5 minutes to start up, and that's a regular appliance.

I still hate it, but since the thing never has to be turned off, I don't mind having to wait 5 mins every now and then.
Reply
#5
http://lightningcrash.blogspot.com/2007/...conds.html

Wink
Reply
#6
I am definitely of the opinion that fast-boot up be a Medium priority goal at the very least. It's another corner stone to the "living room experience" and "usability" that is part of the XBMC manifesto (http://xboxmediacenter.com/wiki/index.ph..._manifesto)

Off topic a little bit but...

Call me a party-pooper but is really neccesary to add the "W" in "WAF"? How about just dropping the "W" and just have "AF" or "UAF" for "User Acceptance Factor"?

Why bring this up? Well there are more and more female open-source folks about and stuff like this sounds frankly patronizing. It may put them off contributing to XBMC.org.
Reply
#7
There could be alot of things done to speed up boot.
if we are good we migth be abel to pu everything in a ramdisk to get faster booting.
be happy with only one vt then we can start X alot soner in the boot process.
let xbmc handel dhcp and networking no need to wait for that.
the list could be made loong.
but still these are things that are in a distance future first we need a stable xbmc
Reply
#8
Hi Party-Pooper ;-)

No, the "W" is NOT really neccessary! You are totally, right. I opened this thread because it's an (M)AF for me, too, of course! It was never meant "patronizing", REALLY! But it is also my subjective! perception, that "most/usual" females are no technic freaks and therefore not only grumble about 3 minutes boot time (like me), but do NOT ACCEPT such a boot time. This is probably only one example why someone unknown (to me) "invented" WAF. And I have heard of many friends of the "WAF effect" e.g. with hard disk sat receiver and Logitech harmony universal remote. And I would like my wife to accept the next generation of XBMC :-)

Cheers
webbanane
Reply
#9
Down to 9 seconds! That really sounds great! Well, then let's wait and ...
Reply
#10
Maybe you should have a look at
http://www.coreboot.org/

and espacially this Youtube clip...

http://www.youtube.com/watch?v=nuzRsXKm_NQ

Full Linux with running XServer in ~5 Seconds... not bad for the beginning.
Reply
#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
Reply
#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
Reply
#13
http://www.ibm.com/developerworks/linux/...ebpkg.html

This a IBM tutorial to build Debian packages.
Reply
#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

"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#."
Reply
#15
Lightbulb 
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)? Huh

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

Logout Mark Read Team Forum Stats Members Help
[LIVE] Our ideas for optimizing XBMC Live (Linux OS) for shorter perceived boot-time?2