kernel开机logo总结
来源:互联网 发布:如何做美工设计 编辑:程序博客网 时间:2024/05/20 23:04
希望朋友们多多指点,好的技术或心得一起分享:
看了不少显示kernel开机logo的帖子,在经过数次实验后,针对224位色格式的logo图片进行以下总结:
一.更换开机logo
嵌入式linux下kernel的开机logo默认图片名为logo_linux_clut224.ppm,因此若有一张png格式的图片,将其换成ppm格式图片即可,转换方法可以用linux下的GIMP绘图软件(将分辨率改成与硬件平台分辨率一致,并转换成224位色格式),另一种方法可以用命令行进行(需要png转换为ppm的工具,自行下载):
pngtopnm mylogo.png > mylogo.pnmpnmquant 224 mylogo.pnm > mylogo224.pnm
pnmtoplainpnm mylogo224.pnm > logo_linux_clut224.ppm
其中mylogo.pnm和mylogo224.pnm为中间生成文件,结束后可以删除。最后将logo_linux_clut224.ppm拷贝值kernel主目录下的driver/video/logo/中,最后编译内核即可。
二.添加开机logo
自定义logo的制作与配置,(这里仍旧是224位色格式图片,其中custom名称可以自己改变):
1.在kernel目录下:
拷贝.ppm图片至logo目录中:
cp logo_linux_custom_224.ppm driver/video/logo/logo_custom_clut224.ppm
2.修改Kconfig文件:
vi driver/video/logo/Kconfig:
config LOGO_CUSTOM_CLUT224
bool “224-color CUSTOM Linux logo”
default y
3.修改Makefile文件:
vi driver/video/logo/Makefile:
添加:obj-$(CONFIG_LOGO_CUSTOM_CLUT224) += logo_custom_clut224.o
4.修改logo.h文件:
vi include/linux/linux_logo.h:
添加:extern const struct linux_logo logo_custom_clut224;
5.修改logo.c文件
vi driver/video/logo/logo.c:
fb_find_logo函数中:
在
/* Generic Linux logo */
logo = &logo_linux_clut224;
#endif
后添加:
#ifdef CONFIG_LOGO_CUSTOM_CLUT224
/* Custom Linux logo */
logo = &logo_custom_clut224;
#endif
6.make menuconfig 确保自定义logo被选中:
Device Drivers —>
Graphics support —>
[*] Bootup logo —>
……..
[*] 224-color CUSTOM Linux logo
最后编译内核即可,这样可以使多张logo共存于kernel中,若用户有以后要在文件系统中更改开机logo的需求的话,可以使用这种方法,用户层可以通过fw_setenv工具修改uboot中自定义好的参数,该参数从uboot中传递进kernel,重启后kernel根据参数的值进行判断使用哪一张logo。这样还得在uboot和kernel中添加自定义参数,并进行判断,这个且看下回分解。
另附logo居中显示方法(注:若图片分辨率和屏幕分辨率相同则不需要):
1.vi driver/video/fbmem.c:
fb_show_logo_line函数中:
在
image.dx=0;
image.dy=y;
image.width = logo->width;
image.heigh = logo->height;
后增加
image.dx = (info->var.xres / 2) - (image.width / 2);
image.dy = (info->var.yres / 2) - (image.height / 2);
(2)vi driver/video/console/fbcon.c:
fbcon_prepare_logo()函数中:
在
logo_height = fb_prepare_logo(info, ops->rotate)
后增加
logo_height += (info->var.yres / 2) - (logo_height / 2);
若有些朋友开机无法显示logo,可以参考以下方法试试:
在drivers/video/console/fbcon.c中:
fbcon_prepare_logo函数中:
将
logo_lines = DIV_ROUND_UP(logo_height, vc->vc_font.height);
修改为:
logo_lines = DIV_ROUND_UP(logo_height, (vc->vc_font.height+1));
*****************************************************************************************
若要对kernel启动logo有更深入的理解可以参见老罗的博客:http://blog.csdn.net/luoshengyang/article/details/7691321/
大神的讲解十分详尽!
- kernel开机logo总结
- kernel开机logo总结
- 四极管:制作Android开机 logo 之kernel
- android kernel 开机logo png 转 ppm
- 修改linux内核kernel开机logo(小企鹅)
- kernel logo到开机动画之间闪现黑屏
- 开机Logo
- 开机logo
- Android 如何解决开机过程kernel logo到开机动画黑屏问题
- 开机logo.开机动画
- [LOGO]如何更换kernel LOGO
- 高通平台开机logo连续显示调试总结
- 高通平台开机logo连续显示调试总结
- 高通平台开机logo连续显示调试总结
- 高通平台android kernel 开机logo显示和传统linux一样
- 高通平台android kernel 开机logo显示和传统linux一样
- 高通平台android kernel 开机logo显示和传统linux一样
- 高通平台android kernel 开机logo显示和传统linux一样 .
- Android的线程和线程池 --笔记
- ubuntu下配置OPenCV3.1.0出现的小问题解决方案
- oracle buffercache
- 同义词视图索引
- Eureka源码分析:Eureka不会进行二次Replication的原因
- kernel开机logo总结
- Selenium常用方法的封装
- windows计算器(calc)按键功能详解
- 微信公众平台开发——微信授权登录(OAuth2.0)
- SQL学习笔记(一)
- POJ 3255
- Windows平台下SQL plus中查询到的中文数据是乱码解决方法
- 【keras-DeepLearning_Models】_obtain_input_shape() got an unexpected keyword argument 'include_top'
- ubuntu16.04 vsftp配置多用户登陆各自文件夹