Unifix knowledge database - The original one

Dashboard - News - Search - List - About - Admin


The Gentoo Framebuffer, Bootsplash & Grubsplash How-To

Author:ino - Sun Aug 29 21:59:21 2004

The Gentoo Framebuffer, Bootsplash & Grubsplash How-To
(now updated for 2.6.x kernel tree)

Note: This guide may only be translated or reproduced with the explicit permission of the author. Please PM me.

Post documentation, tips and tricks on this thread.
Post questions, problems and answers on the support thread.
Post topic related gentoo specific bugs on the bugs site.

Latest Screenshot

Self Portrait (Kernel 2.6.4)

Patches

Here are bootsplash patches for all available kernel versions.

    * 2.4.20 | Origin
    * 2.4.21 | Origin
    * 2.4.22 | Origin
    * 2.6.0 | Origin
    * 2.6.3 | Origin
    * 2.6.5 | Origin
    * 2.6.6 | Origin
    * 2.6.7 | Origin - New!

Objectives

    * High resolution framebuffer (example)
    * High resolution bootsplash image (example)
    * Smaller fonts on framebuffer for greater area (example)
    * Greater choice of fonts for varied appearance
    * Personalising your bootsplash theme (example)
    * Taking screenshots of your framebuffer and bootsplash
    * Using multimedia apps and graphical browser on framebuffer
    * Personalising your grub splash screen image
    * Extending framebuffer and bootsplash to all 12 virtual terminals

Benefits

    * Higher resolution
    * Configurable and pretty appearance
    * Multimedia and graphical browser capability on VTs
    * Framebuffer will work on any kernel version

Drawbacks

    * Slow scrolling of text output on VTs
    * Reduced or zero scroll back buffer


High resolution framebuffer & bootsplash!

   1. Update portage tree.
      Code:
      emerge sync

   2. Emerge media-gfx/bootsplash (graphical backgrounds for frame buffer consoles).
      Code:
      emerge bootsplash

      Overwrite your old bootsplash configuration files.
      Code:
      etc-update

   3. Check that the symbolic link /usr/src/linux is pointing to the kernel of your choice.
      Code:
      ls -l /usr/src/

      Some kernels such as gentoo-sources, gaming-sources and xfs-sources already have the bootsplash patch built in. Check whether your kernel supplies bootsplash and if it does not have it then patch the kernel as below.
      Code:
      ebuild /var/db/pkg/media-gfx/bootsplash-0.6-r2/bootsplash-0.6-r9.ebuild config

      Or you can run the following command which takes an additional argument and executes the line above.
      Code:
      bootsplash_patch

   4. Enter the kernel configuration.
      Code:
      cd /usr/src/linux
      make menuconfig

      For all kernel trees build these options directly into your kernel. Do NOT make them modules and do not enable nvidia or ATi specific options.

      For 2.6.x kernel tree enable the following options.
      Code:
      Code maturity level options  --->
          [*] Prompt for development and/or incomplete code/drivers
      Processor type and features  --->
          [*] MTRR (Memory Type Range Register) support
      Device Drivers  --->
          Block devices  --->
              <*> Loopback device support
              <*> RAM disk support
              (4096) Default RAM disk size
              [*]   Initial RAM disk (initrd) support
      Graphics support  --->
          [*] Support for frame buffer devices
          [*]   VESA VGA graphics support
          Console display driver support  --->
              [*]   Video mode selection support
              <*> Framebuffer Console support
          Bootsplash configuration  --->
              [*] Bootup splash screen

      For 2.4.x kernel tree enable the following options.
      Code:
      Code maturity level options  --->
          [*] Prompt for development and/or incomplete code/drivers
      Processor type and features  --->
          [*] MTRR (Memory Type Range Register) support
      Block Devices ->
          [*] Loopback device support
          [*] RAM disk support
          (4096)   Default RAM disk size
          [*] Initial RAM disk (initrd) support
      Console Drivers ->
          [*] VGA text console
          [*] Video mode selection support
      Console Drivers -> Frame-buffer support ->
          [*] Support for frame buffer devices
          [*] VESA VGA graphics console
          [*] Use splash screen instead of boot logo

      For any kernel do NOT enable the following options or else you risk bootsplash not working or framebuffer corruption when switching VTs.
      Code:
      Device Drivers  --->
          Graphics support  --->
                  < >   nVidia Riva support  (do not enable!)
              Logo configuration  --->
                  [ ] Bootup logo  (do not enable!)

      If you have problems later disable the following option in kernel
      Code:
      Device Drivers  --->
          Character devices  --->
              < > /dev/agpgart (AGP Support)

      And add the following line to your /etc/X11/XF86Config[-4] file.
      Code:
      Option          "NvAGP"         "1"

   5. Compile your kernel as below for 2.6.x kernel.
      Code:
      make

      Compile your kernel as below for 2.4.x kernel.
      Code:
      make dep && make clean bzImage modules modules_install

      Install your kernel as below but do NOT unmount /boot and do NOT reboot until asked to later.
      Code:

      mount /boot
      mv /boot/bzImage /boot/bzImage.old
      cp /usr/src/linux/arch/i386/boot/bzImage /boot/

      If you get errors during kernel compilation or missing options during configuration do as below.
      Code:
      cd /usr/src/linux/
      mv .config ~/kernel.config
      make mrproper
      mv ~/kernel.config .config
      make oldconfig
      make menuconfig

   6. Assuming /boot is mounted set an image to appear during the boot process.
      Code:
      /sbin/splash -s -f /etc/bootsplash/default/config/bootsplash-1280x1024.cfg > /boot/initrd-1280x1024


      Or you can copy an already exisiting initrd image that is provided with the bootsplash package.
      Code:
      cp /usr/share/bootsplash/initrd-1280x1024 /boot/

   7. Edit your /boot/grub/grub.conf file. The example below has been provided for your convenience. Here are the meanings of the various parameters.

          * video= goes on kernel line and controls display options such as ywrap and mtrr which speed up framebuffer scrolling
          * vga= goes on kernel line and controls the resolution and colour depth of framebuffer
          * splash= goes on kernel line and takes either 'silent' or 'verbose' but silent boots may not work
          * initrd= goes on a new line after kernel line and loads an image during the booting process.
      Code:
      default 0
      timeout 10
      splashimage=(hd0,0)/boot/grub/splash.xpm.gz

      # With both framebuffer and bootsplash
      title=Gentoo GNU/Linux 1.4 (+fb +splash)
      root=(hd0,0)
      kernel=(hd0,0)/boot/bzImage root=/dev/hda3 video=vesafb:ywrap,mtrr vga=0x31A
      initrd=/boot/initrd-1280x1024

      # With framebuffer but without bootsplash
      title=Gentoo GNU/Linux 1.4 (+fb -splash)
      root=(hd0,0)
      kernel=(hd0,0)/boot/bzImage root=/dev/hda3 video=vesafb:ywrap,mtrr vga=0x31A

      # Without both framebuffer and bootsplash
      title=Gentoo GNU/Linux 1.4 (-fb -splash)
      root=(hd0,0)
      kernel=(hd0,0)/boot/bzImage root=/dev/hda3

      Here is a lilo.conf example configuration courtesy of ophidia.
      Code:
      image="/boot/bzImage"
      vga=0x31A
      root="/dev/hdb2"
      label="2.4.20-r4"
      read-only # read-only for checking
      append="hdc=ide-scsi video=vesafb:ywrap,mtrr"
      initrd=/boot/initrd-1280x1024

      Note that in the above grub and lilo configuration examples the keyword 'vesafb' is applicable to 2.6.x kernels. For 2.4.x kernels it should be changed to 'vesa'.

      Here is a chart of kernel mode numbers for the 'vga=' boot parameter.
      Code:
          | 640x480  800x600  1024x768 1280x1024
      ----+-------------------------------------
      256 |  0x301    0x303    0x305    0x307   
      32k |  0x310    0x313    0x316    0x319   
      64k |  0x311    0x314    0x317    0x31A   
      16M |  0x312    0x315    0x318    0x31B

      If you want to find ALL video modes for use with the framebuffer look at this forum post for further information on how to find it yourself.

      Look at the following reference files if you need more detailed information.

      Code:
      /usr/share/bootsplash/grub.conf.sample
      /usr/src/linux/Documentation/fb/vesafb.txt
      /usr/src/linux/Documentation/svga.txt

   8. Add bootsplash to the default run level so that it starts on every boot.
      Code:
      rc-update add bootsplash default

   9. Reboot and bask in the glory of bootplash wonder. To remind yourself of what kernel parameters you booted with do as below.
      Code:
      cat /proc/cmdline

Setting framebuffer without bootsplash!

    * To have a framebuffer only without bootsplash for greater area remove bootsplash from your default run level and reboot.
      Code:
      rc-update del bootsplash default

    * Remove or comment out this line from your chosen menu entry in grub.conf.
      Code:
      initrd=/boot/initrd-1280x1024

Smaller fonts on framebuffer for greater area!

    * Open /etc/rc.conf and change the following variable.
      Code:
      CONSOLEFONT="default8x9"

    * To see what other fonts are available for use look in the following location and add the name without the extension to /etc/rc.conf.
      Code:
      /usr/share/consolefonts


Extending consolefont, framebuffer and bootsplash to all 12 virtual terminals!

    * Open /etc/init.d/consolefont and change all instances of
      Code:
      for x in 1 2 3 4 5 6 7 8 9 10
      to
      Code:
      for x in `seq 1 12`

    * Open /etc/conf.d/bootsplash.conf and change the following variable as below.
      Code:
      BOOTSPLASH_TTYS="0 1 2 3 4 5 7 8 9 10 11"

    * For the above changes to take effect you can either reboot or restart the above init.d scripts as below. Voila!
      Code:
      /etc/init.d/consolefont restart
      /etc/init.d/bootsplash restart

Personalising your bootsplash theme!

    * Create your own directory structure called 'personal'.
      Code:
      mkdir -p /etc/bootsplash/personal/images/
      cp -r /etc/bootsplash/default/config /etc/bootsplash/personal/

    * Change the symbolic link for the default theme.
      Code:
      rm /etc/bootsplash/default
      ln -s /etc/bootsplash/personal /etc/bootsplash/default

    * Open /etc/conf.d/bootsplash.conf and change as below.
      Code:
      BOOTSPLASH_THEME=personal

    * Copy images of your choice and of correct resolution and depth into /etc/bootsplash/personal/images/. Make sure images have a resolution of 96x96 and not 300x300. Note that this is not image size but rather 'pixels per inch'. For more information look here.
    * Open /etc/bootsplash/personal/config/bootsplash-1280x1024.cfg and change paths below to point to your images.
      Code:
      jpeg=/etc/bootsplash/gentoo/images/bootsplash-1280x1024.jpg
      silentjpeg=/etc/bootsplash/gentoo/images/silent-1280x1024.jpg

    * To have your image appear during boot add it to /boot otherwise omit this step.
      Code:
      mount /boot
      /sbin/splash -s -f /etc/bootsplash/default/config/bootsplash-1280x1024.cfg > /boot/initrd-1280x1024

    * Reboot, test and post feedback.

Taking screenshots!

    * To use fbgrab emerge it as root and execute it as normal user on terminal 1.
      Code:
      emerge fbgrab
      fbgrab ~/console.png

Personalising your grub splash image!

    * To change your grub splash image create an image then move it to /boot/grub. As root do the following.
      Code:
      emerge gimp
      wget http://dhruba.codewordt.co.uk/files/grub-image.scm -P ~
      mv ~/grub-image.scm /usr/share/gimp/1.2/scripts/

    * Start gimp and open an image of your choice. Right click on the image, select File, Grub Boot Image and save in your home directory. A sample image is provided in instructions below for you to try. Other images can be found here which is a very useful resource.
      Code:
      mount /boot
      wget http://linux.tkdack.com/downloads/grub/powered-by.xpm.gz -P ~
      mv ~powered-by.xpm.gz /boot/grub/

    * Modify /boot/grub/grub.conf to point to the new image.
      Code:
      splashimage=(hd0,0)/boot/grub/gentoo-boot.xpm.gz

    * To create images of the correct kind either follow the command line instructions at linux.tkdack.com duplicated below for convenience or use the gimp plugin.
      Code:
      convert -size 800x600 file.jpg -resize 640x480 -colors 15 -profile '*' file.xpm
      Code:
      gzip file.xpm
Copyright(c) Unifix.org 2002-2011


Dashboard - News - Search - List - About - Admin
 
Powered by Mikjaer Consulting Solutions - Hosted by Specialhosting.dk