Lichee zero Logo

初来乍到篇:

  • Linux使用小贴士
  • 认识zero的硬件
  • Docker环境简明教程

系统开发篇:

  • Zero的开发环境分类
  • UBOOT适配
    • Uboot编译
    • Uboot配置
    • 开机logo替换
      • uboot启动界面的版本信息隐藏
      • uboot开机画面更换
        • 准备一张jpeg图片,通过命令行处理为8bit BMP图片
        • 将bmp文件放入/tools/logos中,并修改/tools/下的Makefile
        • 确认配置文件
        • 重新编译u-boot即可得到显示新logo的u-boot。
      • linux开机画面更换
        • 方法一
        • 方法二
      • 隐藏启动光标
  • Linux内核编译
  • BSP内核编译
  • 根文件系统编译
  • SPI系统杂谈
  • Zero 镜像烧录
  • Zero Imager的使用

驱动开发篇:

  • 设备树简介
  • 外设适配
  • 设备驱动

应用开发篇:

  • 开机自启动
  • Segment Fault调试
  • Zero通过otg与PC共享网络
  • USB摄像头使用
  • 基于QT的GUI开发

贡献投稿篇:

  • 荔枝派任务领取
  • 投稿文章精选
  • 文档构建
Lichee zero
  • »
  • 主线Uboot »
  • 开机logo替换

开机logo替换¶

本文目录

  • 开机logo替换

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

    • uboot开机画面更换

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

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

      • 确认配置文件

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

    • linux开机画面更换

      • 方法一

      • 方法二

    • 隐藏启动光标

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

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

uboot开机画面更换¶

Uboot的开机logo默认情况(只定义了 CONFIG_VIDEO_LOGO)是企鹅logo,这个是存在于uboot代码中的一个头文件( include/video_logo.h 或 bmp_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) 用空函数替换。

另一种禁止光标的方法:

drivers/video/console/Makefile¶
#obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o softcursor.o
obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o

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

drivers/video/console/bitblit.c¶
 //ABING
 //      if (err)
 //              soft_cursor(info, &cursor);
Next Previous

© 版权所有 2018, Lichee Pi[镜像].

Built with Sphinx using a theme provided by Read the Docs.