zoukankan      html  css  js  c++  java
  • [转]Android Logo 之 kernel 开机logo

    显示logo必须满足一下3个条件

    1:配置framebuffer logo

    2:配置buffer console

    3:配置224logo

    至于kernel logo使用GIMP做超级简单,要是使用命令可能制作不成功!

    下面是传统linux logo显示方法:(转载)



     默认开机LOGO会在液晶屏的左上脚显示一只小企鹅,分辨率为80*80,具体在

    kernel/drivers/video/logo下会有logo_linux_clut224.ppm这幅图像,程序会

    根据这幅图像生成logo_linux_clut224.c和logo_linux_clut224.o两个文件,最

    终将小企鹅显示在液晶屏上。

     

         这里我们需要修改开机画面,而且不限于仅显示80*80,如我们需要显示一幅

    铺满LCD屏的图像,该怎么办呢?

     

         为了以后还能恢复显示这个小企鹅,这里我们另外再添加一组数据用于显示全屏,

    如果以后不用恢复了,方法更简单:

     

    一:制作LCD分辨率的PPM图像;

    二:将制作的PPM图像命名为logo_linux_clut224.ppm;

    三:删除kernel/drivers/video/logo下的logo_linux_clut224.c和

          logo_linux_clut224.o两个文件;

    四:重新make生成新的内核映像。

     

        这里讲解我们新添加一组数据实现开机LOGO的方法:

     

    第一步:在kernel/drivers/video/logo的Kconfig中添加配置文件:
    #lqm added for xgd bootup logo.
    config LOGO_XGDLINUX_CLUT224
     bool "XGD 224-color Linux logo"
     default y
    #end added.

     

    第二步:make menuconfig
    这时,在Bootup logo一栏就会多一个XGD 224-color Linux logo配置选项供选择。
    取消所有其它LOGO选项,选中XGD 224-color Linux logo,退出

     

    第三步:确定所要修改的LOGO的分辨率,先找到一张喜爱的图片,将该图片裁剪成自己
    需要的分辨率,分辨率不能超过LCD分辨率,允许小但绝不允许大。推荐使用WINDOWS下
    的ACDSEE,这是一款很不错的针对业余爱好者的图像处理软件。使用ACDSEE编辑,使用
    它的裁剪功能,如把它裁剪为320*240,然后保存为PNG图像。也可以保存为其它格式的
    图像。

     

    第四步:在linux平台下,我这里使用的是Fedora13,安装GIMP绘图软件。该软件有linux
    下的PS之称,功能相当强大。我们只需要使用它微小的一点点功能就可以了。
    安装方法:不要在网上手动下载安装包之类的,这样安装比较麻烦,进入Fedora图形界面
    后,点击系统->管理->添加/删除文件,这时将会弹出一个安装对话框,在查找一栏里面输
    入gimp,回车,在右边将会出现很多关于gimp要安装的组件。全部选择,点击应用,这时
    Fedora就会自动寻找镜像源,下载gimp组件并安装了。安装成功后,点击运行。以后运行
    时直接在命令行下输入gimp就可以了。

     

    第五步:在GIMP界面下打开第三步我们制作的PNG图像,这里打开方式和桌面WINDOWS是一
    样的。打开后首先点击图像->模式->索引,最大颜色数量一栏中默认为256,改为224,点
    击转换,将把源图像文件转换为224位色格式,并保存(CTRL+S)。

     

    第六步:点击文件->另存为,扩展名选择为PPM,点击保存,这时提示数据格式,一定要
    选择ASCII格式,否则后续kernel编译时通不过!选择ASCII后保存,这时我们制作的LOGO
    图片就完成了。

     

    第七步:将上面制作的图片重命名为logo_xgdlinux_clut224.ppm,并放在

    /kernel/drivers/video/logo目录下。确保该目录下没有

    logo_xgdlinux_clut224.c和logo_xgdlinux_clut224.o两个文件,如果有就删掉。

     

    第八步:修改kernel/drivers/video/logo下的logo.c文件:
    // lqm added for G300.
    #ifdef CONFIG_LOGO_XGDLINUX_CLUT224
      /* Generic Linux logo */
      logo = &logo_xgdlinux_clut224;
    #endif
    // end added.

     

    第九步:修改kernel/include/linux/linux_logo.h文件:
    extern const struct linux_logo logo_xgdlinux_clut224;// lqm added for G300

     

    第十步:修改kernel/drivers/video/logo下的makefile文件:
    obj-$(CONFIG_LOGO_XGDLINUX_CLUT224) += logo_xgdlinux_clut224.o #lqm added

     

    第十一步:make生成新的kernel映像

     

    经以上步骤完成自己定义的LOGO图像修改。



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


     

    创建logo图片:

    1、内核默认的logo图片为drivers/video/logo/logo_linux_clut224.ppm

    file logo_linux_clut224.ppm

    先得到图片的大小,然后再用gimp等工具创建一个同样大小的png图片

    2、把自己创建的png图片转换为只有224色的ppm图片

    pngtopnm logo.png | ppmquant -fs 224 | pnmtoplainpnm > logo_linux_clut224.ppm

    如果没有以上的转换命令请安装netpbm工具包

    3、覆盖原来的logo_linux_clut224.ppm文件,若有logo_linux_clut224.o和logo_linux_clut224.c文件则删除

    内核配置:

    Device Drivers ->

       Graphics Support ->

            [*] Support for frame buffer devices

            [*] VESA VGA graphics support

        Console display driver support ->

            [*] Video mode selection support

           

            [*] Framebuffer Console support

           

            [*]Select compiled-in fonts

            [*]VGA 8x16 font

        Logo configuration->

            [*]Bootup logo

            [*] Standard 224-color Linux logo

    重新编译内核

    logo居中:

    1、设置logo图片在屏幕中的位置

    vi drivers/video/fbmem.c

    找到"fb_show_logo_line"函数,把

    image.dx = 0;

    image.dy = y;

    改为

    image.dx = (info->var.xres/2) - (610/2);

    image.dy = (info->var.yres/2) - (206/2);

    [注:

    info->var.xres和info->var.yres是分辨率大小

    610和206是logo图片的大小

    ]

    2、

    vi drivers/video/console/fbcon.c

    找到"fbcon_prepare_logo"函数,在

    logo_height = fb_prepare_logo(info, ops->rotate);

    后面加上

    logo_height += (info->var.yres/2) - (206/2);

    添加新图片:

    在Makefile中有这么一句:extra-y += $(call logo-cfiles,_clut224,ppm)

    它的意思是在当前找到以"_clut224"结尾的ppm图片,然后根据它生成.c文件,所以添加新的图片名可以

    类似这样:logo_linux_sullg_clut224.ppm

    1.Makefile,加入一行

    obj-$(CONFIG_LOGO_LINUX_SULLG_CLUT224)  += logo_linux_sullg_clut224.o

    2.Kconfig,加入

    config LOGO_LINUX_SULLG_CLUT224

        bool "Standard 224-color Linux logo for sullg"

        default y

    3.logo.c,加入

    extern const struct linux_logo logo_linux_sullg_clut224;

    在"fb_find_logo"中找到"#ifdef CONFIG_LOGO_LINUX_CLUT224",在其后加入:

    #ifdef CONFIG_LOGO_LINUX_SULLG_CLUT224

            logo = &logo_linux_sullg_clut224;

    #endif

  • 相关阅读:
    List of the best open source software applications
    Owin对Asp.net Web的扩展
    NSwag给api加上说明
    'workspace' in VS Code
    unable to find valid certification path to requested target
    JMeter的下载以及安装使用
    exception disappear when forgot to await an async method
    Filter execute order in asp.net web api
    记录web api的request以及response(即写log)
    asp.net web api的源码
  • 原文地址:https://www.cnblogs.com/jasonleeee/p/3967768.html
Copyright © 2011-2022 走看看