您的位置:首页 > 运维架构 > Linux

linux的开机logo 制作

2009-06-04 12:42 585 查看
http://hi.baidu.com/%C3%FC%D4%CB_j/blog/item/6f6e1bdbdbb1b4d3b7fd484a.html
自做linux的开机logo
2009年04月28日 星期二 下午 12:25
平台:s3c2410<=>redhat9 ,LCD:640*480,内核:2.4.18-rmk7。制作linux开机画面
工具:linux_logo,convert,photoshop9.0(这里不用fblogo做linux_logo.h,因为用fblogo生成
linux_logo.h时老是出现段错误)
1、linux_logo下载:http://sourceforge.net/project/showfiles.php?group_id=21442下载lpp-0.4.2.tar.gz
2、linux_logo安装:解压开lpp-0.4.2.tar.gz,在../contrib/boot_logo/下运行make,生成boot_logo
3、制作linux启动logo:
      用photoshop9.0制作logo图片,然后,菜单上,图象->模式->索引颜色,保存为logoy.pcx图片
4、拷贝到redhat9.0上../contrib/boot_logo/目录,用命令convert生产214色图片:
      convert -colors 214 -dither -resize 320*240 logoy.pcx logo.pcx
5、生成linux_logo.h:(图片拷贝到boot_logo的目录下)
      进入../contrib/boot_logo/,命令:./boot_logo logo.pcx linux_logo.h
6、对linux_logo.h的三处做如下修改:
第一处:(第一行)
//#if LINUX_LOGO_COLORS == 214              //此行注释,加上如下两行
#ifndef __HAVE_ARCH_LINUX_LOGO
#define LINUX_LOGO_COLORS 214

第二处:找到此行#ifdef INCLUDE_LINUX_LOGOBW,此行注释并添加如下行:
#ifndef __HAVE_ARCH_LINUX_LOGOBW

第三处:找到#ifdef INCLUDE_LINUX_LOGO16,此行注释并添加如下行
#ifndef __HAVE_ARCH_LINUX_LOGO16

7、拷贝linux_logo.h到./include/linux/目录下替代原linux_logo.h
8、修改drivers/video/fbcon.c为
      #define LOGO_H 240
      #define LOGO_W 320

好了重新编译内核,下装到板子上并启动,你就可以看到你自己的logo了哦

附:这里我的LCD是640×480,而我为什么要做成320*240的logo呢,因为做成640×480的logo,下装到

板子上启动老是出错,,所以。。。。。

这里我想可能原因是做成640×480的logo生成的linux_logo.h有1.8M太大导致fb缓冲区溢出,

 

===============================

linux_logo.h 文件的结构为:

 

#ifndef __HAVE_ARCH_LINUX_LOGO
#define LINUX_LOGO_COLORS       224
#endif

#ifdef INCLUDE_LINUX_LOGO_DATA

#ifndef __HAVE_ARCH_LINUX_LOGO
#define LOGO_W  (150)
#define LOGO_H  (150)
unsigned char linux_logo_red[] __initdata = {};
unsigned char linux_logo_green[] __initdata = {};
unsigned char linux_logo_blue[] __initdata = {};
unsigned char linux_logo[] __initdata = {};
#endif /* !__HAVE_ARCH_LINUX_LOGO */

#ifndef __HAVE_ARCH_LINUX_LOGOBW
unsigned char linux_logo_bw[] __initdata = {};
#endif /* !__HAVE_ARCH_LINUX_LOGOBW */

#ifndef __HAVE_ARCH_LINUX_LOGO16
unsigned char linux_logo16[] __initdata = {};
#endif /* !__HAVE_ARCH_LINUX_LOGO16 */

#else /* !INCLUDE_LINUX_LOGO_DATA */

/* prototypes only */
extern unsigned char linux_logo_red[];
extern unsigned char linux_logo_green[];
extern unsigned char linux_logo_blue[];
extern unsigned char linux_logo[];
extern unsigned char linux_logo_bw[];
extern unsigned char linux_logo16[];

#endif /* !INCLUDE_LINUX_LOGO_DATA */

=======================================

如果转换后的文件结构有所不同注意调整

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息