Wednesday, August 19, 2009

Boot splash evolution in Mandriva Linux

For some time, I've been working on adding Plymouth support for our next Mandriva Linux 2010 release, as graphical boot splash and I thought it could be interested to do a recap of the various solutions we used in our distribution over the years.

Mandriva Linux (Linux-Mandrake then) was one of the first Linux distributions to ship with a graphical boot :

  • in 2000 (yes, 9 years ago !!), for Linux-Mandrake 7.2, we integrated Aurora (written by Egil Möller who joined Mandrakesoft to work on it at that time), allowing users to control and follow boot with keyboard and mouse, before X was started. 
  • in 2002, we switched to Bootsplash, which was kernel based and allowed also to polish VT (a nice touch).
  • in 2008, we switched to Splashy, mostly because Bootsplash was becoming deprecated by Splashy and could not run on non-x86 platform and was a pain to maintain in kernel.
  • yesterday, we switch to Plymouth. It will be available for the first time in Mandriva Linux 2010 beta (available tomorrow). 
Why did we switched to Plymouth :
  • it supports Kernel Mode-Setting, which reduces screen flickering, permits smooth transitions between boot phase and X startup. 
  • it still works on VESA framebuffer. For chipsets not yet supporting KMS, we can still have graphical boot, so no feature regression.
  • Plymouth is much more customizable than Splashy, allowing nice UI effects.
  • It has a nice and simple script language (from Charlie Brej) : you don't need to code in C to write a theme. I was able to write a theme which looks like our current splashy theme in about a day (discovering the language at the same time and with examples from Charlie).
  • Plymouth authors are extremely responsive and inclusive : I got commit privileges only two days after sending my first patches (and after my fd.o account was fixed ;)
  • We are not alone to use Plymouth : our Fedora friends were the first to integrate it and we can share our experiences and expertises in graphical boot, thus improving the entire Linux ecosystem.
So far, we are extremely happy of the result : Mandriva Linux 2010 beta looks very nice (even if plymouth for this beta doesn't feature text support, it does now on cooker).

We hope you will like it, so don't forget to test Mandriva Linux 2010 beta when it is released (and did I say it will have GNOME 2.27.90 in it too ? :)

7 comments:

  1. Good news... I'm waiting for this new feature about months !!

    ReplyDelete
  2. Too bad that KMS is still not available for radeon cards on Mandriva, you could have seen some patches used by fedora to provide this. KMS exists in Fedora since Fedora 9, that means since 2 years. Radeon KMS is stable in Fedora 11. Hope to see it soon in Mandriva.

    ReplyDelete
  3. No, Radeon KMS is not event stable in upstream linux kernel 2.6.31 released yesterday, it is still flagged as experimental. And Intel KMS was not stable either in F11.

    Just because on your system doesn't mean it does on everybody's system, which is why we favor stability over new features which might be causing big regressions.

    ReplyDelete
  4. Finally I got KMS working on Mandriva. I followed the following steps :
    - recompile libdrm against latest kernel.
    - update mesa to 7.6.
    - recompile ati driver.

    I have at ATI PCIE X700.

    However, I still do have flickering, the boot is not yet as nice as in fedora. Maybe missing plymouth-gdm-hooks ?

    ReplyDelete
  5. Much easier : install cooker or Mandriva 2010 RC1 which will be released end of week and you won't have to rebuild anything (but you will need to enable KMS manually for radeon, it isn't stable enough).

    We don't shop gdm hooks (for now) because it requires gdm > 2.20 which have a lot of feature regression and it is a gdm specific hack, not fully stable with speedboot.

    ReplyDelete
  6. Hi Fred, in BlogDRAKE there is a translate version of your post to spanish:

    http://blogdrake.net/blog/jacen/evolucion-de-boot-splash-en-mandriva

    By http://blogdrake.net/usuario/jacen

    ReplyDelete