![]() | |||||||||||
Messages in this thread Patch in this message |
Hello I finally gave up listening to everyone complaining about the ugly text linux penguin in the newer kernels and patched up [IMO] a better one. I still think the place for this is in userspace [with my linux_logo program run in the startup scripts] but we can't have linux booting all over the world with an ugly logo. This patches against 2.1.108 with an older version of Geert's patch to get rid of the black-on-black. I don't know if it applies against his newer patch. It gives a color logo when the vgafb is enabled. If pine mangles the patch too much it can also be obtaines at http://www.ee.umd.edu/~weave/color-vga-linux-logo.patch and as always my user-space linux-logo program [now having some support for Alpha, Sparc and m68k Linux among others] can be found at http://www.ee.umd.edu/~weave/vmwprod/ The patch should compile and work fine though the implementation isn't the greatest... Vince ____________ \ /\ /\ / Vince Weaver \/__\/__\/ weave@eng.umd.edu http://www.glue.umd.edu/~weavediff -r -u ./linux/include/asm-i386/linux_logo.h /usr/src/linux/include/asm-i386/linux_logo.h --- ./linux/include/asm-i386/linux_logo.h Wed Jun 24 18:51:48 1998 +++ /usr/src/linux/include/asm-i386/linux_logo.h Thu Jul 2 12:45:44 1998 @@ -30,6 +30,42 @@ #define INCLUDE_LINUX_LOGO16 #include <linux/linux_logo.h> +unsigned char *vga_text_logo __initdata = +/* This logo adapted from the linux_logo userland utility. *\ +\* by Vince Weaver <weave@eng.umd.edu> */ +/* Original ansi logo drawn by Albert Lai <aylai@unixg.ubc.ca> *\ +\* With \n''s it can be used as a generic logo too. */ +" ##### \n" +" ####### \n" +" @ ##O#O## \n" +" ###### @@# #@@@@@# \n" +" ## # ##**@@@**## \n" +" ## @@@ ### #### ### ### ##### ###### #**********## \n" +" ## @ @# ### ## ## ## ## ## #************## \n" +" ## @ @# ## ## ## ## ### #************### \n" +" ## @@# ## ## ## ## ### @@#***********##@@ \n" +" ## # @@# ## ## ## ## ## ## @@@@@@#*******#@@@@@@ \n" +" ## ## @@# # ## ## ### ### ## ## @@@@@@@#*****#@@@@@@@ \n" +" ############ @@@ #### #### #### ### ##### ###### @@@@@#######@@@@@ \n"; + +/* Done by hand. Copied the above logo, turned off "insert" *\ +\* in jed and added color ;) No support for background colors */ +/* yet. Possible, but would have to add an extra parsing layer */ +unsigned char *vga_text_logo_colors __initdata = +"000000000000000000000000000000000000000000000000000000000000000088888000000000" +"000000000000000000000000000000000000000000000000000000000000000888888800000000" +"000000000000000000C0000000000000000000000000000000000000000000088F8F8800000000" +"07777770000000000CC800000000000000000000000000000000000000000008EEEEE800000000" +"000770000000000008000000000000000000000000000000000000000000088FFEEEFF88000000" +"00077000000000CCC00077707777000777000077700777770777777000008FFFFFFFFFF8800000" +"0007700000000C00C8000777000077007700000770000770007700000008FFFFFFFFFFFF880000" +"000770000000C000C8000770000077007700000770000007770000000008FFFFFFFFFFFF888000" +"000770000000000CC80007700000770077000007700000077700000000EE8FFFFFFFFFFF88EE00" +"00077000000070CC8000077000007700770000077000007707700000EEEEEE8FFFFFFF8EEEEEE0" +"00077000000770CC8080077000007700777000777000077000770000EEEEEEE8FFFFF8EEEEEEE0" +"077777777777700CCC0077770007777000777707770777770777777000EEEEE8888888EEEEE000"; + + /* Painted by Johnny Stenback <jst@uwasa.fi> */ unsigned char *linux_serial_image __initdata = "\n" @@ -86,7 +122,8 @@ extern unsigned char linux_logo16[]; extern unsigned char *linux_serial_image; extern unsigned char *linux_mda_image; - +extern unsigned char *vga_text_logo; +extern unsigned char *vga_text_logo_colors; extern int (*console_show_logo)(void); #endif diff -r -u ./linux/drivers/video/fbcon.c /usr/src/linux/drivers/video/fbcon.c --- ./linux/drivers/video/fbcon.c Wed Jun 24 17:44:01 1998 +++ /usr/src/linux/drivers/video/fbcon.c Thu Jul 2 12:49:41 1998 @@ -1375,6 +1375,30 @@ return height; } #endif + +#define VGA_TEXT_LOGO_X 78 /*Should put these in linux_logo.h somehow */ +#define VGA_TEXT_LOGO_Y 12 + + if (depth == 4 && p->type==FB_TYPE_VGA_TEXT) { + unsigned int i=0; + char *q; + + q=vga_text_logo_colors; + src=vga_text_logo; + dst=fb; + + for(y1=0;y1<VGA_TEXT_LOGO_Y;y1++) { + dst=fb+y1*line; + for(x1=0;(x1<VGA_TEXT_LOGO_X*2);x1+=2) { + while (*src=='\n') src++; + ((u16 *)dst[x1]) = *src; + ((u16 *)dst[x1+1]) = (*q<58) ? (*q-48):(*q-55); + src++; q++; + } + } + return VGA_TEXT_LOGO_Y; + } + /* Modes not yet supported: packed pixels with depth != 8 (does such a * thing exist in reality?) */ | ||||||||||
| Last update: 2005-03-22 13:43 [from the cache] ©2003-2008 | |||||||||||