As you might have noticed, some two weeks ago I released a new version of splashutils (1.1.9), which introduces many new features and some rather large changes in the way the splash works.
There have been a few factors that pushed me towards this release. First of all, people seem to like it when stuff is moved from the kernel into the userspace. Thus, starting with fbsplash-0.9.2, what little silent mode code there was in the kernel, has been removed. The truth is, the silent mode can easily be handled by userspace, with no help from the kernel. The verbose mode on the other hand can’t be moved to the userspace, unless one is willing to write a complete userspace console. That’s why fbsplash is there to stay, at least for some time. The silent image is now displayed on its own tty. This allows the user to switch back and forth between verbose and silent mode. It also automatically solves problems with consolefont, provided it doesn’t touch the silent tty.
Second thing that made me realize that some changes are necessary is a simple test I have performed. Try doing for ((i=0;i<65535;i=$i+1000)) do splash_util -c paint -m s -t livecd-2005.0 --progress=$i ; done. It’s slow! A lot slower than I suspected it would be. It turns out that loading and unpacking the background picture every time it is to be repainted isn’t such a good idea, even if the whole process is repeated only a few times during boot. Fortunately, a solution has existed long before the problem was discovered. It’s called the ’splash daemon’ and was originally planned for gensplash. The splash daemon code has now been integrated into splashutils. The new mode of operation allows us to avoid the constant reloading and unpacking that was taking place with previous versions of splashutils.
The third reason for introducing the changes was a feeling that gensplash is moving far too slow. I started the project more than half a year ago and since then there hasn’t been a single release. Sure, there is some progress as far as the code is concerned but it’s still nowhere near a final version. Taking splashutils as a base, I was able to implement many of the features planned for gensplash in just a few days. At least now it will be possible to test them and see them in action.
I realize most of these new features is undocumented yet, and thus hard to take advantage of, but this will be taken care of soon. I plan to include full documentation in the next release of splashutils.