开机logo替换

uboot启动界面的版本信息隐藏

drivers/video/cfb_console.c 中加上 CONFIG_HIDE_LOGO_VERSION
,可以隐藏uboot的版本信息。

uboot开机画面更换

Uboot的开机logo默认情况(只定义了 CONFIG_VIDEO_LOGO)是企鹅logo,这个是存在于uboot代码中的一个头文件( include/video_logo.hbmp_logo.h),这个是一个巨大的结构体,其中保存着图片每个像素点的色彩数据。

准备一张jpeg图片,通过命令行处理为8bit BMP图片

#!/bin/sh
#install Netpbm first
jpegtopnm $1 | ppmquant 31 | ppmtobmp -bpp 8 > $2

使用方法: (脚本名) ( 待处理的JPG图片名) (输出文件名)

//这种方式出来的图不如用专业图片处理软件的好

将bmp文件放入/tools/logos中,并修改/tools/下的Makefile

# Generated LCD/video logo
LOGO_H = $(OBJTREE)/include/bmp_logo.h
LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
ifeq ($(LOGO_BMP),)
LOGO_BMP= logos/mylogo.bmp
endif
ifeq ($(VENDOR),atmel)
LOGO_BMP= logos/atmel.bmp
endif
ifeq ($(VENDOR),esd)
LOGO_BMP= logos/esd.bmp
endif
ifeq ($(VENDOR),freescale)
LOGO_BMP= logos/freescale.bmp
endif
ifeq ($(VENDOR),ronetix)
LOGO_BMP= logos/ronetix.bmp
endif
ifeq ($(VENDOR),syteco)
LOGO_BMP= logos/syteco.bmp
endif

mylogo.bmp 替换成你生成的logo

确认配置文件

include/configs/sun8i.h​ 中加入两个宏定义:

#define CONFIG_VIDEO_LOGO
#define CONFIG_VIDEO_BMP_LOGO

编译的时候,你的bmp文件会被 tools/bmp_logo.c
编译出的工具bmp_logo制作成 include/bmp_logo.h,并编译进uboot中。

重新编译u-boot即可得到显示新logo的u-boot。

相关代码在drivers/video/cfb_console.c下

#ifdef CONFIG_VIDEO_LOGO
        /* Plot the logo and get start point of console */
        debug("Video: Drawing the logo ---\n");
        video_console_address = video_logo();

drv_video_init -> cfg_video_init

linux开机画面更换

方法一

drivers/video/logo/logo_linux_clut224.ppm
是默认的启动Logo图片,把自己的Logo图片(png格式)转换成ppm格式,替换这个文件,同时删除 logo_linux_clut224.c logo_linux_clut224.o 文件,重新编译

具体方法:

#sudo apt-get install netpbm
#pngtopnm your_boot.png > logo_linux_clut2240.pnm
#pnmquant 224 logo_linux_clut2240.pnm > logo_linux_clut2241.pnm
#pnmtoplainpnm logo_linux_clut2241.pnm > logo_linux_clut224.ppm
#cp drivers/video/logo/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm.bak
#cp pic/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm

注:先把png转换成pnm格式,但内核的Logo最高只支持224色,需要把颜色转换成224色,最后把pnm转成ppm,文件名必须是 logo_linux_clut224.ppm

注意在kernel的menuconfig里需要使能LOGO。

方法二

用RedHat9.0自带的图片编辑工具GIMP(其他发行版自己安装就行了)。

  1. 将颜色数改为224(在GIMP中一次选择 图像->模式->索引。如下图所示)。
  2. 调整大小:宽高都小两像素,否则不显示。
  3. 另存为,保存为ppm格式,在弹出的对话框中选择Ascii,然后复制到Logo文件夹替换原来的文件,同时删除 logo_linux_clut224.c logo_linux_clut224.o 文件。

隐藏启动光标

在内核的当前目录进入到 drivers/video/console/fbcon.c 文件

static void fb_flashcursor(void *private),static void fbcon_cursor(struct vc_data *vc, int mode) 用空函数替换。

另一种禁止光标的方法:

#obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o softcursor.o
obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o

编译遇到一个 soft_cursor 没有定义的问题问题,注释代码:

//ABING
//      if (err)
//              soft_cursor(info, &cursor);