lkml.org 
[lkml]   [1998]   [Jul]   [7]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateTue, 7 Jul 1998 08:42:53 -0400 (EDT)
FromVince Weaver <>
SubjectPatch to replace ugly text penguin
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