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:
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)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
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:
I've simply copied the line and changed 73 to 76.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 */
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:
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.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
Here's some more info: http://www.wlug.org.nz/LinuxIoScheduler
In "Kernel hacking" uncheck "Kernel debugging".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.
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:
remove the splash optionCode: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
add these options:
(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)Code:video=vesafb:1024x768-32,ywrap splash=silent,theme:Ubuntu CONSOLE=/dev/tty1
It should look something like this:
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: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
Change this line to something like: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
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)
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.





Adv Reply

Bookmarks