Ubuntu Forums ubuntu.com - launchpad.net - ubuntu help  

Go Back   Ubuntu Forums > The Ubuntu Forum Community > Other Community Discussions > Tutorials & Tips
Register Reset Password Forum Help Forum Council Search Today's Posts Mark Forums Read

Tutorials & Tips
The place to find Ubuntu related Tips & Tricks.

 
Thread Tools Display Modes
Old May 17th, 2006   #1
knn
A Carafe of Ubuntu
 
knn's Avatar
 
Join Date: Apr 2006
Beans: 131
Ubuntu Karmic Koala (testing)
Send a message via MSN to knn
fbsplash

This howto was written for Breezy, when usplash could only support splash screens of 640x400 with 16 colors. Since Edgy, usplash supports higher resolutions and 256 colors, which is more than enough for a pretty splash screen (like the default splashes for Ubuntu and Kubuntu).
The work required to install fbsplash and the problems it causes (proprietary drivers, kernel updates etc.) is not worth the extra color depth (the default splash screens look good with only 256 colors) and the pretty terminal backgrounds (since you're not supposed to use the terminal in Ubuntu at all), therefore I recommend you don't use it.

FBsplash howto v2.0

Here is what you will get once you finish this howto:



Thanks go to Jean-Damien Durand, who ported Gentoo's fbsplash to Debian, and then later made it compatible with Ubuntu. Most of the work was done by him.
Parts of this howto are based on his howto for Debian and a few kernel compilation howtos from ubuntuforums.

Note: This will probably break firestarter. This thread http://ubuntuforums.org/showthread.p...starter+kernel has a solution, but since I didn't want to recompile the kernel again I dumped firestarter instead. (iptables works, so you'll be protected. You just won't have a nice graphical frontend to your firewall)

So, let's begin:

First we will need a patched kernel

PART I - Compiling the shiny new kernel:

1. If you are using a proprietary Nvidia or Ati driver, you will not be able to use it with your new kernel, and X will not start. You have to edit your xorg.conf file (sudo gedit /etc/X11/xorg.conf [replace gedit with kate for kde]). Find

Section "Device"
Identifier "NVIDIA Corporation NV34 [GeForce FX 5200]"
Driver "nvidia"
EndSection

and replace nvidia with nv. If you have ati, replace it with vesa.

2./aDownload the 2.6.16 or 2.6.17 kernel.
Get the emission patchset (Recommended). Be sure to use the version for your kernel of choice.
You may also use the beyond patchset.
Download the attached evms patch (bd-claim.patch).
Note: Some people are having problems with 2.6.17-emission2. You may want to use the 2.6.16 kernel with emission4 or the 2.6.17 with the beyond patch until 2.6.17-emission3 comes out. Also, if you use emission and have problems, please post them here

Or if you want the separate patches (you should use one of the patchsets, since they usually contain the latest patches):

2./b Go to http://members.optusnet.com.au/ckolivas/kernel/ and download the kernel and patch. In my case this was 2.6.16 and ck10 normal. Note that ck10 contains the fixes to 2.6.16 included in newer versions, so it cannot be applied to newer versions!
Go to http://www.suspend2.net/ and download the suspend 2 patch (latest stable for 2.6 kernels)
Go to http://dev.gentoo.org/~spock/projects/gensplash/ and download the fbsplash patch. I also recommend you download the vesafb-tng patch (http://dev.gentoo.org/~spock/projects/vesafb-tng/).
Download the attached evms patch (bd-claim.patch).

3. Create a folder in your home named kernel. Put all these files there. If you downloaded the separate patches, extract the suspend2 patch, you should get a subfolder.

4. Go to /usr/src. Remove the symbolic link linux if there is one. Extract the downloaded Linux kernel to /usr/src. You should get a subfolder named linux-2.6.16. Create a symbolic link to this folder named linux (sudo ln -s linux-2.6.16 linux). Enter the folder (cd linux)

5. Set a password for root if you don't already have one: sudo passwd root. Then, type su to switch to root.

6./a Apply the emission patch and the evms patch

bzcat /home/username/kernel/patch-2.6.16-emission4.bz2 | patch -p1
patch -p1 < home/username/kernel/bd-claim.patch

and skip to step 10

OR apply the separate patches:

6./b Apply the ck10 patch:

bzcat /home/username/kernel/patch-2.6.16-ck10.bz2 | patch -p1

7. Apply the suspend 2 patch. This is a little different:
Quote:
Usage:
apply [path to patches]

apply -R [path to patches]
or
unapply [path to patches]

The current directory _must_ be the kernel source tree you wish to patch.
The script must be able to find the path to the patches somehow. This can be
achieved by specifying the full path to apply, eg:

/path/to/software-suspend-directory/apply

or, by specifying it as a parameter.

apply /path/to/patches
So type /home/username/kernel/suspend2-2.2.5-for-2.6.16.9/apply (use the tab key to autocomplete directory and file names)

8. Apply the fbsplash patch:

cat /home/username/kernel/fbsplash-0.9.2-rc5-2.6.16.patch | patch -p1

You will get an error message that one hunk in include/linux/sysctl.h failed. The failed hunk is a constant conflict with the ck10 patch and can be easily fixed. Open the files /usr/src/linux/include/linux/sysctl.h and /usr/src/linux/include/linux/sysctl.rej with gedit. Look at the bottom of the rej file. You should see: KERN_FBSPLASH=73, /* string: path to fbsplash helper */ and a line number. It should be 148. Find line 148 in sysctl.h. As you can see there are a few new constants there, so we'll just copy the rejected line after them and change the number. Mine looks like this:
Quote:
KERN_INTERACTIVE=73, /* interactive tasks can have cpu bursts */
KERN_COMPUTE=74, /* adjust timeslices for a compute server */
KERN_ISO_CPU=75, /* percent cpu SCHED_ISO tasks run SCHED_RR */
KERN_FBSPLASH=76, /* string: path to fbsplash helper */
I've simply copied the line and changed 73 to 76.

9. Finally, apply the vesafb and evms patches:

cat /home/username/kernel/vesafb-tng-1.0-rc1-r3-2.6.16.patch | patch -p1
patch -p1 < home/username/kernel/bd-claim.patch

10. Now, import your configuration from your current kernel (in my case it's config-2.6.12-10-k7, type ls /boot/config* to see yours)

cp /boot/config-2.6.12-10-k7 .config

and configure it:

make xconfig

When I say check something, I mean put a checkmark into the square before it. A small circle means building it as a module, which is not enough.


Under Input device support, check Event interface (I believe this is needed to be able to use F2 to switch to verbose mode)
Graphics support:
Check support for frame buffer devices
Uncheck Tile blitting support! This is only needed for some Matrox cards, but is incompatible with fbsplash
Vesa VGA support: check it and select vesafb-tng if you patched the kernel with the vesafb-tng patch or emission, otherwise use vesafb (or a card-specific driver, e.g. nvidia, ati etc.).
In Graphics support/Console display driver support, check VGA text console and Video mode selection support. Check Framebuffer Console support (but not Rotation).
Go back to Graphics support and check support for framebuffer splash (Scroll down, it should be the last one).

That should be it. Finally, some optimizations taken from another thread:
Quote:
In "General Setup" activate:

-Support for paging of anonymous memory (swap)
--Support for prefetching swapped memory

In "Processor type and features":

-Processor family Choose the model of your processor.

Activate:

-Preemption Model
--Voluntary Kernel Preemption (Desktop)

-High Memory Support
--off -if you have less than 1 GB of RAM
--1GB Low Memory Support -if you have 1GB of RAM
--4GB -if you have more than 1GB of RAM

-Timer frequency
--1000 Hz
Select a default IO scheduler in Device drivers/Block devices. I recommend the Anticipatory scheduler. If you leave the others checked too you can switch between them during boot (using a kernel parameter) or even while the system is running.

Here's some more info: http://www.wlug.org.nz/LinuxIoScheduler
Quote:
Which one should I use?

I've not personally done any testing on this, so I can't speak from experience yet. The anticipatory scheduler will be the default one for a reason however - it is optimised for the common case. If you've only got single disk systems (ie, no RAID - hardware or software) then this scheduler is probably the right one for you. If it's a multiuser system, you will probably find cfq or deadline providing better performance, and the numbers seem to back deadline giving the best performance for database systems.
In "Kernel hacking" uncheck "Kernel debugging".

Save the configuration.

11. compile the kernel:

make-kpkg clean
make-kpkg -initrd kernel_image kernel_headers modules_image

Go read a book
Hopefully, there will be no errors. Once it's ready, you'll have two new deb files in /usr/src. These will be kernel-image-*.deb and kernel-headers-*.deb. Install them using dpkg -i kernel*.deb

12.
Reboot. Your new kernel will be the default one.

PART II - Setting up fbsplash:

1. Install the Debian packages made by Jean-Damien Durand
You'll only need the three splashutils packages, don't install the other two. You can remove his repository so that the update manager doesn't bother you about the other two packages, but check back often for updates

2. configure the bootmanager
I will only give instructions for grub, since I don't know how to do it in lilo.
The current entry for your kernel should be something like this:

Code:
title        Ubuntu, kernel 2.6.16-emission4  
root        (hd0,0)
kernel        /boot/vmlinuz-2.6.16-emission4  root=/dev/hda1 ro quiet splash
initrd        /boot/initrd.img-2.6.16-emission4
savedefault
boot
remove the splash option
add these options:
Code:
video=vesafb:1024x768-32,ywrap splash=silent,theme:Ubuntu CONSOLE=/dev/tty1
(note: if you do not have vesafb-tng, do not use video=vesafb:1024x768-32,ywrap, use vga=791 instead. If you are using a different theme, change Ubuntu to the theme's name, e.g. theme:Linux)

It should look something like this:
Code:
title        Ubuntu, kernel 2.6.16-emission4
root        (hd0,0)
kernel        /boot/vmlinuz-2.6.16-emission4  root=/dev/hda1 ro video=vesafb:1024x768-32,ywrap splash=silent,theme:Ubuntu quiet CONSOLE=/dev/tty1
initrd        /boot/initrd.img-2.6.16-emission4
savedefault
boot
NOTE: installing a new kernel package will regenerate menu.lst and revert these changes to the default options. The default options can also be set in menu.lst:
Code:
## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
##      kopt_2_6_8=root=/dev/hdc1 ro
##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/hda1 ro

## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd0,0)

## should update-grub create alternative automagic boot options
## e.g. alternative=true
##      alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(recovery mode) single
# altoptions=(recovery mode) single
Change this line to something like:
defoptions=video=vesafb:1024x768-32,ywrap splash=silent,theme:Ubuntu quiet
This way everytime something regenerates menu.lst, these options will be appended by default to every normal kernel entry (recovery entries have separate defaults)

3.
Download my Ubuntu theme or download one from bootsplash.org.
My theme has to be put under /etc/splash and does not have to be converted.
Bootsplash themes should be put under /etc/bootsplash/themes and have to be converted using bootsplash2fbsplash <themename>

4. Disable usplash:
Since splashutils provides usplash, you can uninstall usplash (*ubuntu-desktop will not be uninstalled). If you don't want to do that, disable it manually:

-instructions not available since the forum cut off this part of the howto and I can't remember them. Uninstall usplash instead.

5.
Regenerate the initrd image: If you uninstalled usplash you don't have to do this.
Whenever you install a new theme you'll have to regenerate the initrd image to be able to use it. Just run sudo update_initramfs. It will copy all themes in /etc/splash.

6.
To fix the flickering problem: (taken from JD's howto)
Quote:
At startup, screen will blink when the /etc/init.d/console-screen.sh will execute.

* You can prevent that by commenting all lines starting with SCREEN_FONT in /etc/console-tools/config, they are not needed under fbsplash IMHO.
Attached Files
File Type: gz bd-claim.patch.tar.gz (2.1 KB, 191 views)
File Type: gz Ubuntu.tar.gz (50.9 KB, 241 views)

Last edited by knn; May 11th, 2007 at 04:21 AM..
knn is offline   Reply With Quote
Old May 18th, 2006   #2
Rizado
Way Too Much Ubuntu
 
Join Date: Nov 2005
Location: Sweden
Beans: 253
Kubuntu 9.10 Karmic Koala
Send a message via AIM to Rizado
Re: fbsplash

This is great, I'll try it on dapper as soon as I have time. I tried to get it working before but got stuck at the initscripts.
Rizado is offline   Reply With Quote
Old May 18th, 2006   #3
knn
A Carafe of Ubuntu
 
knn's Avatar
 
Join Date: Apr 2006
Beans: 131
Ubuntu Karmic Koala (testing)
Send a message via MSN to knn
Re: fbsplash

From your forum style I suspect you are using kubuntu. I made a small fix for kdm, it's at the bottom of my first post. Also, could you please try installing the three splashutils packages without installing a newer version of sysv-rc, using --force-all instead of --force-overwrite? I don't have time to test this right now, but I'd really like to know if it works.
knn is offline   Reply With Quote
Old May 19th, 2006   #4
benplaut
100% Pure Ubuntu
 
benplaut's Avatar
 
Join Date: Apr 2005
Location: Not-So-Sunny Hawaii
My beans are hidden!
Send a message via AIM to benplaut Send a message via MSN to benplaut Send a message via Yahoo to benplaut Send a message via Skype™ to benplaut
Re: fbsplash

anyone knwo if it works for dapper?
__________________
Quote:
So... a 1337 java programmer walks into a bar...
benplaut is offline   Reply With Quote
Old May 19th, 2006   #5
knn
A Carafe of Ubuntu
 
knn's Avatar
 
Join Date: Apr 2006
Beans: 131
Ubuntu Karmic Koala (testing)
Send a message via MSN to knn
Re: fbsplash

It should work with Dapper too.
knn is offline   Reply With Quote
Old May 19th, 2006   #6
knn
A Carafe of Ubuntu
 
knn's Avatar
 
Join Date: Apr 2006
Beans: 131
Ubuntu Karmic Koala (testing)
Send a message via MSN to knn
Re: fbsplash

I've made a little fix to the theme configuration file, so that now text is displayed (read the end of the first post). I also made a simple console background using the default ubuntu wallpaper:

I'll put together a silent picture as well (the one that's displayed when booting) and post the new theme then.

Edit: Here it is, based on the GDM theme and LiveCD bootsplash:


Extract the archive to /etc/splash (not bootsplash). There's no need to convert it. Don't forget to regenerate the initrd and set the kernel parameter.

Edit: moved to first post

Last edited by knn; June 22nd, 2006 at 03:18 AM..
knn is offline   Reply With Quote
Old May 20th, 2006   #7
Rizado
Way Too Much Ubuntu
 
Join Date: Nov 2005
Location: Sweden
Beans: 253
Kubuntu 9.10 Karmic Koala
Send a message via AIM to Rizado
Re: fbsplash

Ok now I have it working but there are some problems. When the kernel is initzialising I often only have parts of the theme. When It's done it looks fine but soon it starts to flicker and I can see the verbose screen and silent and some black bars. While using verbose screen it just flickers. I remember it did this on breezy as well when "setting up general console fonts" was shown.

I uploaded some pictures to show you what I mean. Also one funny thing is that when I reboot my system the splash says Booting blah blah blah but the progress bar starts at 100 and goes down. When it's almost at 0 the message changes to rebooting.

I tried to compile splashutils but it doesn't work. This is the whole compile message
Code:
make: Warning: File `Makefile' has modification time 1,2e+03 s in the future
CONF, libjpeg
MAKE, libjpeg
/bin/sh: -c: line 2: syntax error near unexpected token `;'
/bin/sh: -c: line 2: `   ; \'
make: *** [jpeglib] Fel 2
miscsplash utils work fine though. sysv-rc isn't needed.

I tried to set vesafb-tng to ywrap ypan and nothing but there were only minor differences. ypan seems to work best but that might just be coincidence.
Attached Images
File Type: jpg Bild(43).jpg (44.4 KB, 174 views)
File Type: jpg Bild(46).jpg (50.4 KB, 159 views)
File Type: jpg Bild(47).jpg (62.8 KB, 124 views)
File Type: jpg Bild(44).jpg (56.6 KB, 193 views)

Last edited by Rizado; May 20th, 2006 at 08:53 AM..
Rizado is offline   Reply With Quote
Old May 20th, 2006   #8
knn
A Carafe of Ubuntu
 
knn's Avatar
 
Join Date: Apr 2006
Beans: 131
Ubuntu Karmic Koala (testing)
Send a message via MSN to knn
Re: fbsplash

You don't need to compile anything except the kernel. I couldn't compile the splashutils either, but I found those Debian pacakges. Just download all three and install them using dpkg -i --force-all.

It may be a video driver problem, but I doubt it because the shutdown screen works. Does the console background work fine after booting is finished (press Ctr-Alt-F1 to access the console and Ctr-Alt-F7 to return to the gui) or is it showing only parts too? It might also be that you did not install the packages correctly. If that is the case simply repeat part 2 of the howto. I've included the required packages as attachements and changed the second part of the howto, it should now be a bit simpler.
Don't forget to use --force-all instead of --force-overwrite if you didn't install the updated sysv-rc package

As for the flickering:
Quote:
At startup, screen will blink when the /etc/init.d/console-screen.sh will execute.

* You can prevent that by commenting all lines starting with SCREEN_FONT in /etc/console-tools/config, they are not needed under fbsplash IMHO.
This will not solve your problem though, only the flickering part.

The shutdown screen is supposed to go backwards, however it should show Shutting down the system and Rebooting the system. I'll check this immediately.
Edit: It works correctly for me.

Last edited by knn; May 20th, 2006 at 07:39 PM..
knn is offline   Reply With Quote
Old May 21st, 2006   #9
Rizado
Way Too Much Ubuntu
 
Join Date: Nov 2005
Location: Sweden
Beans: 253
Kubuntu 9.10 Karmic Koala
Send a message via AIM to Rizado
Re: fbsplash

Quote:
Originally Posted by knn
You don't need to compile anything except the kernel. I couldn't compile the splashutils either, but I found those Debian pacakges. Just download all three and install them using dpkg -i --force-all.

It may be a video driver problem, but I doubt it because the shutdown screen works. Does the console background work fine after booting is finished (press Ctr-Alt-F1 to access the console and Ctr-Alt-F7 to return to the gui) or is it showing only parts too? It might also be that you did not install the packages correctly. If that is the case simply repeat part 2 of the howto. I've included the required packages as attachements and changed the second part of the howto, it should now be a bit simpler.
Don't forget to use --force-all instead of --force-overwrite if you didn't install the updated sysv-rc package

As for the flickering:

This will not solve your problem though, only the flickering part.

The shutdown screen is supposed to go backwards, however it should show Shutting down the system and Rebooting the system. I'll check this immediately.
Edit: It works correctly for me.
The problem with the packages is that they are for debian and relies on sysv-rc >= 2.86.ds1-12. Dapper uses 2.86.ds1-6ubuntu31 which probably is just the same so it's just a problem with dependencies. However if I install splashutils without debians sysv-rc I get a broken package that has to be fixed (removed) before any new apt changes. And of course lots of packages rely on 2.86.ds1-6ubuntu31 too so I can't replace that either. This is why I want to compile. I'm thinking about repacking it too.

The flickering is the main problem, The half screen doesn't appear all the time and with ypan it almost never apear. Verbose screen works fine. I'll try playing with some settings.
Rizado is offline   Reply With Quote
Old May 21st, 2006   #10
knn
A Carafe of Ubuntu
 
knn's Avatar
 
Join Date: Apr 2006
Beans: 131
Ubuntu Karmic Koala (testing)
Send a message via MSN to knn
Re: fbsplash

Quote:
Originally Posted by Rizado
The problem with the packages is that they are for debian and relies on sysv-rc >= 2.86.ds1-12. Dapper uses 2.86.ds1-6ubuntu31 which probably is just the same so it's just a problem with dependencies. However if I install splashutils without debians sysv-rc I get a broken package that has to be fixed (removed) before any new apt changes. And of course lots of packages rely on 2.86.ds1-6ubuntu31 too so I can't replace that either. This is why I want to compile. I'm thinking about repacking it too.

The flickering is the main problem, The half screen doesn't appear all the time and with ypan it almost never apear. Verbose screen works fine. I'll try playing with some settings.
You can install the Debian sysv-rc package, it works for me. Alternatively, open the .deb file in an archive manager, extract data.tar.gz. It contains all the files installed by the package with directories too, so you can do a manual install.
knn is offline   Reply With Quote

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 12:31 AM.


vBulletin ©2000 - 2010, Jelsoft Enterprises Ltd. Ubuntu Logo, Ubuntu and Canonical © Canonical Ltd. Tango Icons © Tango Desktop Project. bilberry