Difference between revisions of "Gensplash"

From ArchWiki
Jump to: navigation, search
(redirect to fbsplash)
Line 1: Line 1:
#REDIRECT [[fbsplash]]
{{Out of date}}
[[Category:Boot process (English)]]
[[Category:Eye candy (English)]]
[[Category:Kernel (English)]]
'''Note:''' This page uses fbsplash (aka gensplash, the original name of the project.) for its graphical boot procedure.  This kernel patch and userspace software is different from and mutually exclusive to the patch and procedures detailed in the [[Bootsplash|Arch Linux Bootsplash HOWTO]].
== Having problems?==
See the [[Gensplash#Troubleshooting | Troubleshooting]] section at the bottom
== Patch a kernel with fbcondecor (formerly known as fbsplash) ==
fbcondecor is not in the standard kernel tree so you will have to patch the kernel with either a patchset that features fbcondecor or with the fbcondecor patch from the [http://dev.gentoo.org/~spock/projects/fbcondecor/archive/ developers repository].(Note that the kernel patch ''fbsplash'' is now named ''fbcondecor'', which stands for Framebuffer Console Decorations. ''fbsplash'' is now the name for the userspace applications.) See the [[Kernel Patches and Patchsets]] page for more details.  There are also several kernel pkgs in the AUR for patched kernels.
There are several methods you can use to patch your kernel.  The [[Custom_Kernel_Compilation_with_ABS_(2.6.9_and_later)]] howto is recommended but you could also use one of the following to guide you:
* [[Kernel Compilation With ABS (2.6.8 or Earlier)]]
* [[Kernel Compilation]]
Which ever method you choose but be sure to choose the following settings at the <code>config</code> stage:
      Device Drivers
        Block Devices
          RAM disk support (BLK_DEV_RAM) = Y
            Inital RAM disk (initrd) support(BLK_DEV_INITRD)=Y
        Graphics Support
          Support for framebuffer devices (FB) = Y
            Enable Tile Blitting Support = '''N'''
            VESA VGA graphics support (FB_VESA) = Y
              VESA driver type                                                  (no such section if using fbcondecor)
                vesafb (FB_VESA_STD) = Y                                        (see note 1)
                vesafb-tng (FB_VESA_TNG) = N                                    (see note 2)
            "Card Specific" display support (FB_"CARD") = N                    (see note 3)
            Logo Configuration
              Bootup logo (LOGO) = N
            Support for the framebuffer splash (FB_SPLASH) = Y                  (no such option if using fbcondecor, see below)
            Console display driver support  --->
              Framebuffer Console support = Y
                Support for the Framebuffer Console Decorations = Y
# If you are NOT running 32bit x86 (eg. 64 bit) you should compile vesafb support INSTEAD of vesafb-tng.<BR>
# Even if you are running 32bit x86 I DO NOT recommend vesafb-tng over vesafb, it is slow and requires different configs to vesafb, switching framebuffer types between kernels will cause you grief.  If you have previously used vesafb keep using it!<BR>
# There are several card specific framebuffer options.  You may try them if you want, but you should only compile the VESA driver or a card specific one, not both.  Also, be aware the ATI drivers may be prone to incorrect color palette problems.
'''Need update here:''' There is no need of ''vesafb'' kernel patch now, just ''fbcondecor'' is enough.<BR>
''uvesafb'' is the successor of ''vesafb-tng'' which requires userspace util named ''v86d'' to work. It's not needed for splash to work and getting ''uvesafb'' work is not an easy job.
== Essential Packages ==
The gensplash package can be installed from [community] repo.  It includes everything you need to run gensplash, including example configs for lilo and grub, and the darch theme, created by Rensel.
Uncomment the following lines in <code>/etc/pacman.conf</code>:
Server = ftp://ftp.archlinux.org/community/os/i686/
Then install it:
# pacman -S gensplash
There are several dependencies that should be dragged in automatically.
'''Note:''' If you are using the new ''fbcondecor'' patch, you need ''fbsplash'' from AUR instead of ''gensplash''. And you may also need to update your initramfs file.
== Generate the initial RAM image for your preferred theme ==
=== Kernels with initcpio support ===
All stock Arch Linux kernels use an initcpio for early boot functionality.  Therefore most custom kernels, including pkgs in the AUR, support the initcpio approach.
To enable gensplash support in your kernel you will need to rebuild your initcpio.  First, open your <code>/etc/mkinitcpio.conf</code> and add the hook to enable install fbsplash.  Then specify at the end of the file the theme you'll use and at which resolution. ALWAYS try 'darch' first, it's included in the gensplash, and is well tested.
The conf file shall look like this:
<pre>HOOKS="base udev autodetect ide resume fbsplash"
then run
<pre>mkinitcpio -p kernel_preset</pre>
That's it, now you can skip to [[#Update your bootloader|updating your bootloader]].
If you want to use the silent startup mode see [[#Optional: Install patched initscripts to support silent splash|below]]
=== Kernels without initcpio support ===
If you use another kernel then you need to perform the following:
Simply use splash_geninitramfs:
splash_geninitramfs -v -g /boot/fbsplash-theme-1024x768 -r 1024x768 theme
where theme is the theme you want to use
Here is what the splash_geninitramfs options mean:
-v tells splash_geninitramfs to go into verbose mode
-g tells splash_geninitramfs to generate the initramfs image file /boot/fbsplash-newtheme-1280x1024
-r tells splash_geninitramfs to use the 1280x1024 resolution
-the 'newtheme' part tells splash_geninitramfs to look in
  the /etc/splash/newtheme directory for the .cfg files
To see a description of all splash_geninitramfs' options:
splash_geninitramfs --help
Example for the splashutils.install file.
To install the darch theme run the following as root:
  splash_geninitramfs -v -g /boot/fbsplash-darch-1024x768  -r 1024x768 darch
== Update your bootloader ==
Now it's time to update the configuration file for your boot loader.  '''Important:''' ''add'' a new bootload entry, do not replace your existing one.  If there are problems, you want to be able to fallback on your known good configuration.
Configure a new entry in [[GRUB#Configuration|GRUB]] or [[Lilo]] depending on which one you use.
The example configs can be also found in <code>/etc/splash/</code> dir, but take care that this files are not updated to reflect initcpio changes.  The darch theme is used as an example in all cases.
===vesafb-tng framebuffer===
The following are working GRUB entries for kernels with the vesafb-tng framebuffer. This is not the default framebuffer, but is included in many patches that contain fbsplash.  This howto does not advise you to use it!
<pre># Verbose mode
title  Arch
root (hd0,0)
kernel (hd0,0)/boot/vmlinuz26 root=/dev/hda1 video=vesafb:ywrap,mtrr,1024x768-32@60 splash=verbose,theme:darch console=tty1
initrd (hd0,0)/boot/kernel26.img
# Silent mode
title  Arch
root (hd0,0)
kernel (hd0,0)/boot/vmlinuz26 root=/dev/hda1 video=vesafb:ywrap,mtrr,1024x768-32@60 splash=silent,theme:darch console=tty1 quiet
initrd (hd0,0)/boot/kernel26.img</pre>
And LILO entries:
<pre># Verbose mode
        append="video=vesafb:ywrap,mtrr,1024x768-32@60 splash=verbose,theme:darch console=tty1"
# Silent mode
        append="video=vesafb:ywrap,mtrr,1024x768-32@60 splash=silent,theme:darch console=tty1 quiet"
===vesafb framebuffer===
The following bootloaders are examples, adjust them to your need, taking note of the root, initrd and kernel options to suit your own system's partitions.
For verbose mode, remove the 'quiet' flag from the bootloader line and change silent to verbose.
For a resolution other than 1024x768-24, you may pick a different vga= value from the lookup table below.
<pre>title  Arch
root (hd0,0)
kernel (hd0,0)/boot/vmlinuz26 root=/dev/hda1 vga=792 video=vesafb:mtrr:3,ywrap splash=silent,kdgraphics,theme:darch console=tty1 quiet
initrd (hd0,0)/boot/kernel26.img
        append="vga=792 video=vesafb:mtrr:3,ywrap splash=silent,kdgraphics,theme:darch console=tty1 quiet"
===Table of vga= values===
VGA values specific to your video card can also be generated using the lrmi package, available in [community]
# pacman -S lrmi
Then run vbetest (it lists supported video modes)
# vbetest
|+'''vga modes'''
! - 800x600 
! - 1024x768
! - 1280x1024
! - 1152x864
! - 1600x1200
!8 bit
|769|| - 771|| - 773|| - 775|| - 353|| - 800
!15 bit
|784|| - 787|| - 790|| - 793|| - 354|| - 801
!16 bit
|785|| - 788|| - 791|| - 794|| - 355|| - 802
!24 bit
|786|| - 789|| - 792|| - 795|| || - 803
* [http://en.gentoo-wiki.com/wiki/Framebuffer Gentoo Framebuffer Wiki]
==Optional: Install patched initscripts to support silent splash==
You'll need to patch your initscripts to get the silent splash.  The patched version of the latest initscripts can be found in [community] repo:
# pacman -S initscripts-splash
This package will replace your existing initscripts and therefore your /etc/rc.local, /etc/rc.shutdown.local, rc.conf and inittab will be OVERWRITTEN. However, it will create their backups as /etc/rc.local.pacsave, /etc/rc.shutdown.local.pacsave, rc.conf.pacsave and inittab.pacsave respectively. You need to modify the files again if you have made some changes to them before.
Current PKGBUILD and patch are [http://repos.archlinux.org/viewvc.cgi/community/system/initscripts-splash/?root=community&pathrev=CURRENT here]. (It seems that the current initscripts-splash package doesn't work well with the new ''fbsplash'' utils, the progress bar doesn't get updated.)
== Pre-reboot checks==
Just before you reboot, let's check and make sure that everything is ready:
* If the new kernel has different modules compiled/loaded, have you updated your <code>/etc/rc.conf</code>, <code>/etc/modprobe.d/modprobe.conf</code>, and <code>/etc/rc.local</code> to remove compiled in or added newly modular modules?
* Is the path in your bootloader configuration for the <tt>initrd</tt> command correct?
* Does the resolution in the <tt>video=</tt> boot parameter match the resolution(s) provided by your fbsplash theme?
* If you're using LILO, did you run LILO to update the boot sector?
* Do you have [http://www.sysresccd.org/ SystemRescueCD] or [http://www.knoppix.org/ Knoppix] standing by in case your machine is unable to boot?
== Troubleshooting==
splashutils-1.1.9 saw a major architecture change and so some major changes to the scripts and operation of the application.  The changes have bought some problems for a few people so please check this section out!
===NO splash screens at all:===
* [[#Generate the initial RAM image for your preferred theme|rebuild your initcpio]]
* check you are using a '''kernel patch that includes fbsplash-0.9.2-2.6.11''' or later - this was essentially introduced in 2.6.11 patchsets - so if you are using pre 2.6.11 you probably don't have the right fbsplash patch
* ensure your '''patchset is compatible with your source''', most major patchsets are not compatible with the 2.6.x.y branches
* if you have checked all this and still have no luck '''try rebuilding gensplash for yourself''' against the kernel source you wish to use, all the required materials are linked above
===Text overwriting your screen in silent mode:===
* If you are having issues with '''text overwriting your screen''' in silent mode please check that are using the console=tty1 and quiet options in your bootloader config.
===Backgrounds not being set on vc's at boot===
* This is a weird issue and possibly an upstream bug - it may be related to Arch's init order however.  To fix this issue try setting <code>CONSOLEFONT=default8x16.psfu.gz in rc.conf</code>
== Other information ==
=== Getting more gensplash themes===
For starters, all gensplash themes should be installed in <code>/etc/splash/</code>.  Currently there are not many prebuilt gensplash themes about, you can find a few on http://dev.gentoo.org/~spock/projects/gensplash, and they are very easy to make (see [http://gentoo-wiki.com/HOWTO_fbsplash Gentoo's fbsplash HowTo]). Probably the easiest way to get started is to download some themes for '''bootsplash''' and '''convert them'''!
You can download some bootsplash themes from [http://www.bootsplash.de/ this bootsplash fan site] or from [http://www.kde-look.org/index.php?xcontentmode=61 KDE-Look.org].
===Converting bootsplash themes into fbsplash format.===
It's VERY easy:
* you will need to extract the themes to /etc/bootsplash/ dir.
* to convert them into fbsplash format simply run
# bootsplash2fbsplash bootsplashthemename
* you don't need the path or anything - this will install a new version of the theme in gensplash format in <code>/etc/splash/</code>
===Building and installing splashutils yourself===
You need the splashutils userspace utilities to make fbsplash work properly. There are several utilities in the package but we are mainly interested in <tt>splash_helper</tt>, <tt>splash_geninitramfs</tt>, <tt>bootsplash2fbsplash</tt>, and <tt>splash_util</tt>. Splashutils needs to link to your patched kernel source if you build it yourself.
About the most important tools:
* splash_helper = actual code to make the splash screen work
* splash_geninitramfs = generates a RAM disk image containing splash_helper and the graphics we choose
* bootsplash2fbsplash = convert older bootsplash themes into the new fbsplash format
* splash_util = allows us to control the silent mode progress bar from the init scripts
Or you use the one of the following PKGBUILDs to make the package yourself.  The first allows you to build the same pkg as i have in my repo but based on your kernel sources and includes my tools pkg.  The second simply builds the vanilla splashutils pkg and doesn't incorporate the additional files I have collected.
Current splashutils PKGBUILD and splashutils.install can be found [http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/system/splashutils/?cvsroot=AUR&only_with_tag=CURRENT  here]
== Bootloader splashes==
* [[Graphical GRUB]]
* [[Graphical Lilo]]
== References==
* [http://dev.gentoo.org/~spock/projects/gensplash/ The gensplash (aka fbsplash) developer's page]
* [http://gentoo-wiki.com/HOWTO_fbsplash Gentoo's fbsplash HowTo]
* The docs subdirectory located in the current splash-utils archive at the [http://dev.gentoo.org/~spock/projects/gensplash/current/ developers current repository]
* [http://ruslug.rutgers.edu/~mcgrof/grub-images/ GNU grubsplash HowTo]</pre>

Latest revision as of 22:07, 23 August 2011

Redirect to: