Chinaunix首页 | 论坛 | 博客
  • 博客访问: 314919
  • 博文数量: 135
  • 博客积分: 867
  • 博客等级: 准尉
  • 技术积分: 865
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-15 14:50
文章分类

全部博文(135)

文章存档

2012年(135)

分类: LINUX

2012-09-13 14:33:24

小企鹅logo

一、首先说明logo显示相关程序。
(1)在driver/video/console/fbcon.c文件中,函数fncon_init(),为虚拟设备结构体VC赋值,并调用本文件中的fbcon_prepare_logo()函数,为显示logo做准备。
(2)fbcon_prepare_logo(),调用了fb_prepare_logo()函数(此函数在driver/video/fbmem.c中)。
(3)fb_prepare_logo()中调用了fb_find_logo()函数(此函数在driver/video/logo/logo.c中),这个函数会根据配置文件找到相应的logo数据,这个数据就是logo文件夹下logo_xxx_xxx.ppm生成的,我的linux就是logo_linux_clut224.ppm。
(4)fb_prepare_logo()函数获取了照片信息后进行一次判断,看图片高度是否超过屏幕高度,否则,不显示。
(5)fbcon_prepare_logo()函数获取图片数据后,又进一步处理判断,用照片的高度除以字模高度后,于屏高度除以字模高度的值相比较,判断图片可否显示。若过大,则打印显示“fbcon_init:disable boot-logo(boot-logo bigger than screen)”。

 

最后在fbcon.c 中调用fbcon_switch() , 此函数里面再调用fb_show_logo() 显示logo .

 

阅读(1193) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~