Instructions and patch downloads
The patch has been divided into smaller pieces to make it easier to
read and review. They should all be applied, in order.
The patches against 2.4.x were actually generated against 2.4.17, but
apply correctly up to 2.4.18-pre9 at least. I'll rediff when 2.4.18 is
released.
The patches against 2.5.x were generated against 2.5.3-dj4, but should
apply to other 2.5.x kernels with a little bit of hacking.
Patch Details
logo-01.patch
-
Preliminary cleanup. Moves definition of LOGO_H and LOGO_W
from fbcon.c to each linux_logo.h that contains logo data.
(Those header files are all removed by logo-05.patch)
logo-02.patch
-
Adds /scripts/tologo directory with ppm-to-header converter.
logo-03.patch
-
Adds /arch/i386/linux_logo.ppm - generic 80x80 penguin logo.
This is a re-creation of the current logo, starting from Larry Ewing's
original.
Graphical versions of the other architecture logos are needed,
but I didn't know what they looked like so I didn't try to re-create
them. For now, copy the i386 logo or use a picture of your cat...
logo-04.patch
-
Modifies Makefiles, includes to generate:
include/video/linux_logo.h from
arch/$(ARCH)/linux_logo.ppm
at compilation time, and use the generated
file instead of any distributed linux_logo.h files.
logo-05.patch
-
Exactly equivalent to:
cd linux-2.x.y-z
find include -name linux_logo* -exec rm -f {} \;
-
Note that the removed header files also #defined linux_logo_banner.
I can't find any use of this #define, so it's gone. Please let
me know if this is a problem for anyone.
logo-06.patch
-
Adds configuration option to set framebuffer cursor blink rate,
or disable it completely. Useful to remove cursor from full-
screen boot logo on appliance-like applications.
-
Also adds a sysctrl / proc interface to adjust blink rate.
logo-07.patch (still under development)
-
Adds a configuration option to completely remove the framebuffer
logo from the kernel. (CONFIG_FB_LOGO)
-
Also removes the logo display code from fbcon.c and puts it in
a new file, fbcon-logo.c, with quite a bit of cleanup along the way.
-
If CONFIG_FB_LOGO is not selected, fblogo.c is not compiled and
linux_logo.h is not generated.
To change the linux logo
To customize the linux logo, first apply the patches to the kernel. This
will give you a default logo file arch/$(ARCH)/linux_logo.ppm file.
(If you don't know what "$(ARCH)" is for you, it's "i386", even if you
have a P3 or Athlon.)
Replace that ppm with your own graphic. To do this,
load your image in the Gimp, resize it to make sure the width is evenly
divisible by 8, and then save it as a ppm. Choose the "raw" format when
the Gimp asks you. Replace arch/$(ARCH)/linux_logo.ppm with file.
To put boot text on a secondary console
If you have added a large logo, or centered it on the screen you will
probably want to set up your bootloader to put the kernel messages on a
secondary console. This will remove all the text from the kernel boot
screen, but if something goes wrong you will be able to switch to the
secondary console to see the kernel messages.
The details for doing this depends on your bootloader. You need to
add the line "console=/dev/tty2 CONSOLE=/dev/tty2" to the kernel
command line. You could also use something other than tty2 if you
desire.
If you are using the Grub bootloader, edit the menu.lst file, which is
probably under /boot/grub, so the entry for your kernel looks something
like:
kernel (hd0,0)/boot/vmlinuz root=/dev/hda1 vga=788 console=/dev/tty2 CONSOLE=/dev/tty2
If you are using the LILO bootloader, edit the file /etc/lilo.conf,
and on the append= line for your kernel, add the "console= ..." to
whatever is already there.
For more information, read the LILO or Grub documentation.
Changelog
linuxlogo 0.4
- Reworked patch into a set of sequential patches, changed some of
the config options around, removed unimplemented options, etc.
- Rediffed against 2.5.3-dj4
- Rediffed against 2.4.17, tested against 2.4.18-pre9
linuxlogo 0.3 (minor update)
- Changed the logo display option to a logo disable option
- Cleaned up some help text, removed commented-out code
- Rediffed to get cleaner diffs and also a single comprehensive diff
linuxlogo 0.2
- Integrated Framebuffer Cursor Blink rate patch from Kyntola Tommi
- Moved "tologo" build to drivers/video/Makefile from toplevel Makefile
- Should work on all architectures now, only tested on i386.
- Logo files are now in arch/$(ARCH)/linux_logo.ppm
- linux_logo.h is now generated into include/video instead of include/linux
- linux_logo.h build is now done from drivers/video/Makefile as a dependency of fbcon.o
- drivers/video/Config.in now has definitions for all the features we want to add,
and Documentation/Configure.help has help for all of them
linuxlogo 0.1
- First version: builds include/linux_logo.h from toplevel linux_logo.ppm at compile time.
To-Do List:
- Implement logo disable option.
- Implement the logo SMP option (single or multiple logos).
- Implement logo centering option.
- Implement framebuffer foreground and background color options.
- Consider defining a standard location for linux_logo.ppm outside
the kernel tree distribution? This would remove the need to always copy
the logo file into the kernel tree before compiling.
- Test logos with widths not evenly divisible by 8, and fix if there
is a problem with them.
- Start discussions with other framebuffer developers about what they
would be interested in for 2.5.
- Integrate patch with the CML2 configuration to prepare for 2.5