如何制作开发板的logo标签:
一,修改由kernel显示的开机logo:
注意:QQ截图可以得到jpg格式图片,用windows的 开始->程序->附件->绘图->ACD SEE绘图工具打开,可以另存为png格式。
1,下载图形转换工具:
# sudo apt-get install netpbm //下载图形转换工具:netpbm,安装完以后就会有pngtopnm,pnmquant,pnmtoplainpnm三个命令
2,自己制作或下载一张png格式的图片,如 **.png。
//注意:因为我的开发板的最大分辨率是:480*272,所以图片分辨率不能超过这个范围。
3,制作.ppm格式的图片
# pngtopnm **.png > **.pnm //png格式 转换成 pnm格式
# pnmquant 224 **.pnm > **224.pnm //量化在netpbm图像的颜色较小的一组
# pnmtoplainpnm **224.pnm > logo_linux_**224.ppm
4,拷贝文件到相应目录
拷贝logo_linux_**224.ppm文件到kernel/drivers/video/logo目录下。
5,修改kernel/drivers/video/logo目录下的Kconfig文件
config LOGO_LINUX_CLUT224
bool "Standard 224-color Linux logo"
depends on LOGO && FB_S3C24X0_S320240 || FB_S3C24X0_W320240 //这里修改为:depends on LOGO
default y
//目的:depends on LOGO会一直是真,make menuconfig时,选项会一直有效,可供选择。
6,内核的配置,在内核路径下执行:
# make menuconfig
Device Drivers --->Graphics support --->下有
选项 <*>S3c24x0 LCD framebuffer support --> LCD select(4.3 inch 480*272 CHIMEI LCD)
选项 Console display driver support --> <*>Framebuffer console support
选项 logo configuration --> Bootup logo --> <*> Standart 224-color linux logo
/*
注意:
1),选项<*> Standard black and white Linux logo 对应的是 logo_linux_mono.pbm图片,
跟我们这里生产的图片格式不一样,make生成.c文件时会报错,所以不选择这个选项。
2),选项<*> Standard 16-color Linux logo 对应的是 logo_linux_vga16.ppm图片,
跟我们这里生产的图片格式不一样,make生成.c文件时会报错,所以不选择这个选项。
3),选项<*> Standart 224-color linux logo 对应的是 logo_linux_clut224.ppm图片,
跟我们这里生成的图片格式一样,所以要选择这个选项。
4),如果不进行下面的图片替换,平台具体使用的logo将是这个原始图片。
5),我的开发板使用的LCD:4.3英寸,分辨率:480*272
*/
7,用logo_linux_**224.ppm替换kernel/drivers/video/logo目录下的
文件logo_linux_clut224.ppm。注意:先保存原始图片文件。
# cp logo_linux_clut224.ppm .bak.logo_linux_clut224.ppm;
# cp logo_linux_**224.ppm logo_linux_clut224.ppm;
8,重新编译内核即可。在内核顶层目录下:
# make clean;make;
/*
注意:
1,其中make clean 必须执行,因为logo_linux_clut224.ppm的内容被替换了。
2,内核的makefile会自动把一张 logo_linux_clut224.ppm图片编译生成一个 logo_linux_clut224.c文件
3,另外 kernel/drivers/video/logo目录下的makefile,logo.c,不需要修改。
*/
9,启动开发板,既可看见效果
# ./mkimage.sh
# tftp 32000000 uImage
# bootm
linux开机logo制作
分类: Linux开发技术和工具 2011-07-20 20:25 1311人阅读 评论(0) 收藏 举报
linuxubuntu图形工具平台
kernel:2.6.27
1、制作logo的方法:
首先选择一个自己喜欢的图片,然后通过GIMP软件将该图片保存为.png格式,
变换方式这个就不说了(very easy),比如保存为linuxlogo.png.
然后将该图片传入到装有Linux PC比如(ubuntu),按照以下顺序你就可以制作一个你喜欢logo前提你必须安装以下的工具(pngtopnm,pnmquant,pnmtoplainpnm)
$pngtopnm linuxlogo.png > linuxlogo.pnm
$pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm
$pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm
或者
$bmptoppm pic.bmp > temp1.ppm //生成ppm
$ppmquant 224 temp1.ppm > temp2.ppm //转换成224颜色
$pnmnoraw temp2.ppm > logo.ppm //转换成ascii格式
或者使用gimp软件
1、打开图片,在image/mode/indexed..中修改最大颜色数为224
2、保存为ppm格式,选择asiic存放格式
3、代替logo目录下相应图形即可
这样您制作的logo就已经成功了,将linuxlogo224.ppm
拷贝到/drivers/video/logo文件夹中的根据你的平台具体使用的哪个logo进行命名,
比如logo_linux_clut224.ppm,友情提醒将原有的logo保存。
其中在./drivers/video/logo/下有XXX_XXX_XXX.c和XXX_XXX_XXX.o文件是在进行make编译之后生成的,可以将制作好的.ppm文件拷贝进去替换原来的logo文件之后,使用make cleanSUB_DIR=./drivers/video/logo/来清除logo目录下的.c和.o文件。
这样你的logo就完全制作好了,但是有这一点还是不够的,你必须在内核中选择logo,接下来我们来看如何配置内核
2、配置logo选项
在内核路径下执行make menuconfig
开发板上开启logo显示的选项
a、选择虚拟控制台显示驱动
Device Drivers --->Graphicssupport --->下有
选项Console display driver support---> <*>Framebuffer console support
选项 Bootup logo ---><*> Standart 224-color linux logo
三、修改由Android系统显示的静态开机画面
1. 制作要显示的图片
使用PS制作一张和当前lcd分辨率相同的图片,保存时选“存储为 Web 所用格式”,然后在弹开的窗口上,“预设”项选择“PNG-24”,保存为android_logo.png。
2. 将图片转换为raw格式
使用linux下的ImageMagick自带的convert命令,进行raw格式转换,命令为:
convert -depth 8 android_logo.png rgb:android_logo.raw
如果当前系统没有安装该工具,可以执行下面的命令安装:
sudo apt-get install imagemagick
3. 将raw格式转化为rle文件
需要用到android编译后的rgb2565工具,该工具在android/out/host/linux-x86/bin目录下(android为当前源码所在目录),转换命令如下:
rgb2565 -rle < android_logo.raw > initlogo.rle
至此,需要显示的图像已经做好了,即initlogo.rle。
4.将initlogo.rle拷贝到文件系统中
将initlogo.rle拷贝到out\target\product\pantherboard\root下,并替换同名文件。然后重新制作文件系统映像并烧写即可。
5.特别说明
该图片是在system/core/init/init.c文件中显示的,具体函数调用过程如下:
console_init_action();
-> load_565rle_image(INIT_IMAGE_FILE) ;
-> unlink(fn);
函数中的宏在对应的头文件android/system/core/init/init.h中定义:
#define INIT_IMAGE_FILE "/initlogo.rle"
对于可读写型的文件系统而言,当第一次开机并显示logo后,上述unlink(fn)函数会将该logo删除,第二次开机时就不能再显示这一logo了。解决办法有两个,一是注释掉unlink(fn)函数,但是尽量不要修改源码。二是在out\target\product\xxxx\root目录下,拷贝initlogo.rle的副本,并命名为initlogo.rle.bak,直接用initlogo.rle.bak文件替换initlogo.rle也可以,不过原因还不清楚。
四、修改由Android显示的“android”文字开机动画
用winRAR 打开android\out\target\product\xxxx\system\framework目录下的framework-res.apk文件,用预显示的图片替换assets\images下相应的图片即可。
按上述方法能够改变开机logo,但是由于修改的是out目录下生成的文件,改动对android源码并没有影响,因此,若清除编译的目标文件并重新编译时,修改过的logo又被源码中的固有logo覆盖了。所以要修改源码中与logo有关的部分。具体做法是,修改/frameworks/base/core/res/assets/images/目录下的png图片,修改后再重新编译就依然是我们修改后的logo了。
与这一logo显示相关的源码在/frameworks/base/cmds/bootanimation/bootanimation.cp文件中,具体函数为
bool BootAnimation::android()。
阅读(734) | 评论(0) | 转发(0) |