(now updated for 2.6.x kernel tree)
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.
Translation or Reproduction of Guide
If you want to translate or reproduce this guide there is no longer any need to seek permission as long as you follow the standard practices given below.
- Acknowledge the original author and link to his profile
- Acknowledge the original guide and link to it
- Mention that only this guide will be updated by the original author
- Kindly send me a link via PM to any translation or reproduction once completed so I can link to it
Self Portrait (Kernel 2.6.7) (image / default config file)
2.4.X Patches
- 2.4.20 | Origin
- 2.4.21 | Origin
- 2.4.22 | Origin
- 2.4.24 | Origin
- 2.4.25 | Origin
- 2.4.26 | Origin - New!
- 2.6.0 | Origin
- 2.6.1 | Origin
- 2.6.2 | Origin
- 2.6.3 | Origin
- 2.6.4 | Origin
- 2.6.5 | Origin
- 2.6.6 | Origin
- 2.6.7 | Origin
- 2.6.8.1 | 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
- Higher resolution
- Configurable and pretty appearance
- Multimedia and graphical browser capability on VTs
- Framebuffer will work on any kernel version
- Slow scrolling of text output on VTs
- Reduced or zero scroll back buffer
High resolution framebuffer & bootsplash!
- Update portage tree.
Code: Select all
emerge sync - Emerge media-gfx/bootsplash (graphical backgrounds for frame buffer consoles).
Overwrite your old bootsplash configuration files.
Code: Select all
emerge bootsplashCode: Select all
etc-update - Check that the symbolic link /usr/src/linux is pointing to the kernel of your choice.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: Select all
ls -l /usr/src/Or you can run the following command which takes an additional argument and executes the line above.Code: Select all
ebuild /var/db/pkg/media-gfx/bootsplash-0.6-r2/bootsplash-0.6-r9.ebuild configCode: Select all
bootsplash_patch - Enter the kernel configuration.
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.
Code: Select all
cd /usr/src/linux make menuconfig
For 2.6.x kernel tree enable the following options.For 2.4.x kernel tree enable the following options.Code: Select all
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 screenFor any kernel do NOT enable the following options or else you risk bootsplash not working or framebuffer corruption when switching VTs.Code: Select all
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 logoIf you have problems later disable the following option in kernelCode: Select all
Device Drivers ---> Graphics support ---> < > nVidia Riva support (do not enable!) Logo configuration ---> [ ] Bootup logo (do not enable!)And add the following line to your /etc/X11/XF86Config[-4] file.Code: Select all
Device Drivers ---> Character devices ---> < > /dev/agpgart (AGP Support)Code: Select all
Option "NvAGP" "1" - Compile your kernel as below for 2.6.x kernel.
Compile your kernel as below for 2.4.x kernel.
Code: Select all
makeInstall your kernel as below but do NOT unmount /boot and do NOT reboot until asked to later.Code: Select all
make dep && make clean bzImage modules modules_installIf you get errors during kernel compilation or missing options during configuration do as below.Code: Select all
mount /boot mv /boot/bzImage /boot/bzImage.old cp /usr/src/linux/arch/i386/boot/bzImage /boot/Code: Select all
cd /usr/src/linux/ mv .config ~/kernel.config make mrproper mv ~/kernel.config .config make oldconfig make menuconfig - Assuming /boot is mounted set an image to appear during the boot process.Or you can copy an already exisiting initrd image that is provided with the bootsplash package.
Code: Select all
/sbin/splash -s -f /etc/bootsplash/default/config/bootsplash-1280x1024.cfg >> /boot/initrd-1280x1024Code: Select all
cp /usr/share/bootsplash/initrd-1280x1024 /boot/ - 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.
Here is a lilo.conf example configuration courtesy of ophidia.Code: Select all
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/hda3Note 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'.Code: Select all
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
Here is a chart of kernel mode numbers for the 'vga=' boot parameter.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.Code: Select all
| 640x480 800x600 1024x768 1280x1024 ----+------------------------------------- 256 | 0x301 0x303 0x305 0x307 32k | 0x310 0x313 0x316 0x319 64k | 0x311 0x314 0x317 0x31A 16M | 0x312 0x315 0x318 0x31B
Look at the following reference files if you need more detailed information.
Code: Select all
/usr/share/bootsplash/grub.conf.sample /usr/src/linux/Documentation/fb/vesafb.txt /usr/src/linux/Documentation/svga.txt - Add bootsplash to the default run level so that it starts on every boot.
Code: Select all
rc-update add bootsplash default - Reboot and bask in the glory of bootplash wonder. To remind yourself of what kernel parameters you booted with do as below.
Code: Select all
cat /proc/cmdline
- To have a framebuffer only without bootsplash for greater area remove bootsplash from your default run level and reboot.
Code: Select all
rc-update del bootsplash default - Remove or comment out this line from your chosen menu entry in grub.conf.
Code: Select all
initrd=/boot/initrd-1280x1024
- Open /etc/rc.conf and change the following variable.
Code: Select all
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: Select all
/usr/share/consolefonts
- Open /etc/init.d/consolefont and change all instances of to
Code: Select all
for x in 1 2 3 4 5 6 7 8 9 10Code: Select all
for x in `seq 1 12` - Open /etc/conf.d/bootsplash.conf and change the following variable as below.
Code: Select all
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: Select all
/etc/init.d/consolefont restart /etc/init.d/bootsplash restart
- Create your own directory structure called 'personal'.
Code: Select all
mkdir -p /etc/bootsplash/personal/images/ cp -r /etc/bootsplash/default/config /etc/bootsplash/personal/ - Change the symbolic link for the default theme.
Code: Select all
rm /etc/bootsplash/default ln -s /etc/bootsplash/personal /etc/bootsplash/default - Open /etc/conf.d/bootsplash.conf and change as below.
Code: Select all
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: Select all
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: Select all
mount /boot /sbin/splash -s -f /etc/bootsplash/default/config/bootsplash-1280x1024.cfg > /boot/initrd-1280x1024 - Reboot, test and post feedback.
- To use fbgrab emerge it as root and execute it as normal user on terminal 1.
Code: Select all
emerge fbgrab fbgrab ~/console.png
- To change your grub splash image create an image then move it to /boot/grub. As root do the following.
Code: Select all
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: Select all
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: Select all
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: Select all
convert -size 800x600 file.jpg -resize 640x480 -colors 15 -profile '*' file.xpmCode: Select all
gzip file.xpm
Latest news: As you can tell by the number of times that this post has been edited the guide is undergoing continual overhaul as a result of feedback from users. It is now much more concise and has recently been expanded to fit new content. Look here for people who have it working: quikchaos, basquiat, mojo, danb, maw, Cappy!
Trivia: For trivia first emerge aalib, svgalib and DirectFB. Mplayer on framebuffer: Try 'emerge mplayer' and then 'mplayer -vo svga <filename>'. Have you managed to get mplayer working under framebuffer? If so, post details! Graphical browser on framebuffer: (1) emerge links (2) chown root.root /usr/bin/links2 (3) chmod +s /usr/bin/links2 (4) links2 -g www.gentoo.org -driver directfb. Other drivers are X, vesa, svgalib and fb. Try them all and see what works best for you. How did links go for you?
Still to come: Separate sections for framebuffer, bootsplash and grubsplash (done!); Extending to all 12 VTs (done!); Using your own themes with bootsplash (done!); Smaller fonts for greater area (done!); Binding a key for taking framebuffer screenshots; Modifying console fonts! Bear with me - hugely busy atm!
Acknowledgements: devs: TaD, LiveWire; #gentoo: r2d2, Malketh, antifa, kote, Hayl, cybbe; beejay; forums: quikchaos, aardvark, allucid, tkdack; anubis2002; ophidia; other: HandyAndE, Tyrant.




