prothes 专注嵌入式的ARM linux
全部博文(197)
分类: LINUX
2011-09-07 13:37:48
或者
$bmptoppm pic.bmp > temp1.ppm //生成ppm
$ppmquant 224 temp1.ppm > temp2.ppm //转换成224色彩
$pnmnoraw temp2.ppm > linuxlogo224.ppm //转换成ascii格局
如许您制作的logo就已经胜利了,将linuxlogo224.ppm
拷贝到/drivers/video/logo白件夹中的依据您的平台详细利用的哪个logo进行命名,
这里使用的是 logo_linux_clut224.ppm 那么替换这个即可,这里注意图片的大小对kernel image大小的影响。
然后编译kernel即可。
1-2、配置kernel的logo选项
在内核路径下执行make menuconfig(make xconfig)
a、选择虚拟控制台为控制台显示驱动做准备
Device Drivers --->Character devices ---> Virtual terminal
[*] Support for console on virtual terminal
b、选择虚拟控制台显示驱动
Device Drivers --->Graphics support --->下有这个选项Console display driver support --->
根据你的硬件选择由Framebuffer还是VGA
[*] Framebuffer Console support或者
[*] VGA text console
c、Device Drivers --->Graphics support --->
<*> Support for frame buffer devices
<*> MXC Framebuffer support下选择是VGA还是TVOUT
[*] tvout CH7024 on MX27 //TVOUT
[*]support VGA daughter //VGA
当然以上的配置选项,因平台而异会有些小的差别。
做好以上两个步骤,你就可以重新编译内核,将其烧到开发板,接VGA或者TVOUT显示。
这样你可以看到你自己制作的logo,你可以发现在logo的左下角有一个闪动的光标,接下来我们说说如何将这个光标去除。
2-1、如何将开机logo中的光标去除
在内核的当前目录进入到drivers/video/console/fbcon.c文件
将static void fb_flashcursor(void *private)和static void fbcon_cursor(struct vc_data *vc, int mode)制成空函数如下
static void fb_flashcursor(void *private)
{
.................
}
static void fb_flashcursor(void *private)
{
#if 0
.................
#endif
}
另外:
static void fbcon_cursor(struct vc_data *vc, int mode)
{
......................
}
static void fbcon_cursor(struct vc_data *vc, int mode)
{
#if 0
#endif
}
2-2、第二种方式:
*****************************************************************************
可以肯定的是这两种方法都没有深究下去,对于第一种如果我的logo是一个屏分辨率的logo那么启动到logo时就是黑屏,屏显示被翻页了,并且在进入到filesystem后仍然显示鼠标,第二种问题更多,需要修改的地方很多,一般都与 soft_cursor()有关;
那么如何实现呢?唯有从源头查起,继续。。。。。