文章目录

  • 一、制作JPG图片并处理成BMP格式
  • 二、修改开机LOGO
    • 增加logo显示配置
  • 三、logo居中

参考: 全志v3s学习笔记(3)——u-boot开机logo替换
参考: 开机logo替换

一、制作JPG图片并处理成BMP格式

使用PS制作一张LOGO图片jpeg格式,图片大小就是开机屏幕的大小(像素)比如:

  • 800*480
  • 480*272

通过命令行处理为8bit BMP图片,命名为mylogo.bmp

新建一个脚本,修改权限

vim bmp_app.sh
chmod 777 bmp_app.sh
./bmp_app.sh [待处理图片名字] [输出文件名] # ./bmp_app.sh mylogo.jpg mylogo.bmp./bmp_app.sh logo.jpg mylogo.bmp

bmp_app.sh

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

二、修改开机LOGO

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

  • 将制作好的bmp格式的图片放入uboot/tools/logos中,并修改/tools/目录下的Makefile文件

208行

# Generated LCD/video logo
LOGO_H = $(objtree)/include/bmp_logo.h
LOGO_DATA_H = $(objtree)/include/bmp_logo_data.h
LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_DATA_H)
LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_DATA_H)# Generic logo
ifeq ($(LOGO_BMP),)
LOGO_BMP= $(srctree)/$(src)/logos/denx.bmp# Use board logo and fallback to vendor
ifneq ($(wildcard $(srctree)/$(src)/logos/$(BOARD).bmp),)
LOGO_BMP= $(srctree)/$(src)/logos/$(BOARD).bmp
else
ifneq ($(wildcard $(srctree)/$(src)/logos/$(VENDOR).bmp),)
LOGO_BMP= $(srctree)/$(src)/logos/$(VENDOR).bmp
endif
endifendif # !LOGO_BMP

修改为:

# Generated LCD/video logo
LOGO_H = $(objtree)/include/bmp_logo.h
LOGO_DATA_H = $(objtree)/include/bmp_logo_data.h
LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_DATA_H)
LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_DATA_H)# Generic logo
ifeq ($(LOGO_BMP),)
#LOGO_BMP= $(srctree)/$(src)/logos/denx.bmp
LOGO_BMP= $(srctree)/$(src)/logos/mylogo.bmp   # 修改此处的logo# Use board logo and fallback to vendor
ifneq ($(wildcard $(srctree)/$(src)/logos/$(BOARD).bmp),)
LOGO_BMP= $(srctree)/$(src)/logos/$(BOARD).bmp
else
ifneq ($(wildcard $(srctree)/$(src)/logos/$(VENDOR).bmp),)
LOGO_BMP= $(srctree)/$(src)/logos/$(VENDOR).bmp
endif
endifendif # !LOGO_BMP

bmp文件会被tools/bmp_logo.c编译出的工具bmp_logo制作成include/bmp_logo.h

增加logo显示配置

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

vim include/configs/sun8i.h
/** Include common sunxi configuration where most the settings are*/
#include <configs/sunxi-common.h>#define CONFIG_VIDEO_LOGO
#define CONFIG_VIDEO_BMP_LOGO#endif /* __CONFIG_H */

宏定义CONFIG_VIDEO_LOGO相关执行代码在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();

三、logo居中

修改drivers/video/cfb_console.c,在函数static void *video_logo(void)中修改:

vim drivers/video/cfb_console.c
static void *video_logo(void)
{...splash_get_pos(&video_logo_xpos, &video_logo_ypos);/**增加代码,设置图片居中显示*/if(video_logo_xpos && video_logo_ypos){video_logo_xpos= (VIDEO_VISIBLE_COLS - BMP_LOGO_WIDTH)>>1;video_logo_ypos= (VIDEO_VISIBLE_ROWS - BMP_LOGO_HEIGHT)>>1;}#ifdef CONFIG_SPLASH_SCREEN

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

drivers/video/cfb_console.c 中注释掉#ifndef CONFIG_HIDE_LOGO_VERSION下面的代码,可以隐藏uboot的版本信息。

vim drivers/video/cfb_console.c
#ifndef CONFIG_HIDE_LOGO_VERSION// space = (VIDEO_LINE_LEN / 2 - VIDEO_INFO_X) / VIDEO_FONT_WIDTH;// len = strlen(info);// if (len > space) {//     video_drawchars(VIDEO_INFO_X, VIDEO_INFO_Y,//           (uchar *) info, space);//   video_drawchars(VIDEO_INFO_X + VIDEO_FONT_WIDTH,//             VIDEO_INFO_Y + VIDEO_FONT_HEIGHT,//            (uchar *) info + space, len - space);//    y_off = 1;// } else//  video_drawstring(VIDEO_INFO_X, VIDEO_INFO_Y, (uchar *) info);#ifdef CONFIG_CONSOLE_EXTRA_INFO

编译、烧录、完事!

  • 清除:make clean

  • 配置编译文件(我的屏幕是5寸):make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_800x480LCD_defconfig

  • 编译:time make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 2>&1 | tee build.log

  • 清除TF卡上的uboot区域(假设Uboot区域是1M):sudo dd if=/dev/zero of=/dev/sdb bs=1024 count=1024 seek=8

  • 使用dd命令将bin文件烧录到SD卡的开始位置(多运行几次!):sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8

  • sudo sync && eject /dev/sdb

/dev/sdb是TF卡。

全志V3s学习记录(4)uboot:开机logo相关推荐

  1. 【目录】全志V3S学习记录

    全志V3s从一次接触到现在已经有两年了!现在复盘一下! 使用的硬件开发板有: Lichee zero Lichee zero dock CherryPi PC V3s Mangopi v3s SINV ...

  2. 全志V3s学习记录(5)uboot:传参(boot.scr)参数配置(script.bin)

    文章目录 一.boot.scr的简介与制作 1.1 BSP内核配置 1.2 主线内核配置 1.3 使用mkimage工具 使用mkimage生成boot.scr 拷贝boot.scr到启动卡的第一分区 ...

  3. 全志V3s学习记录(1)资料汇总

    文章目录 一.相关网站论坛 二.开发环境分类 2.1 Camdriod官方SDK 2.2 主线Uboot + Bsp内核 2.3 主线Uboot + 主线Linux 三.芯片资源介绍 3.1 Lich ...

  4. 全志V3s学习记录(13)OV2640的使用

    文章目录 硬件分析 一.修改设备树 二.增加Linux驱动配置 三.构建Buildroot文件系统 使用I2c工具调试 意外收获 RAW看图软件 7yuv 测试 参考:https://blog.51c ...

  5. 全志V3s学习记录--ESP8089的使用

    文章目录 一.构建一些Networking相关的工具 二.STA模式--连接WiFi 2.1 加载模块 2.2 打开wlan0 2.3 连接WiFi(wpa_supplicant) 第一步:编辑`vi ...

  6. U-boot开机logo的制作方法

    此文是对早期文章<U-boot开机logo的制作方法>  的更新. --------------------------------------       如果在uboot中实现了LCD ...

  7. 全志v3s学习笔记(1)——基础简介及资料

    资料: 荔枝派资料下载站 荔枝派Zero 用户指南 荔枝派github 荔枝派中文论坛 荔枝派Zero指南-看云 坑网 开发环境分类: (参考:Zero的开发环境分类) 1.Camdriod 官方SD ...

  8. u-boot开机logo修改及kernel启动动画去除

    1.开机logo: 替换:MfgTool-MYIMX6A9-L4.1.15\Profiles\Linux\OS Firmware\image-L4.1.15-uboot\my_logo.bmp 图片要 ...

  9. 全志v3s学习笔记(8)——TF卡分区及烧录

    一.TF卡分区: sudo fdisk -l # 首先查看电脑上已插入的TF卡的设备号(一般为 /dev/sdb1,下面以/dev/sdb1为例) sudo umount /dev/sdb1 # 若自 ...

最新文章

  1. 【深度学习】深度学习安防的探索与实践
  2. 008 RestFul API 拦截器
  3. Maven 项目的 org.junit.Test 获取不到(转载)
  4. python使用ssh 中文_Python3制作简易SSH登录工具
  5. 14 CO配置-控制-内部订单-维护定单编号范围
  6. HTML5: 两个viewport的故事(第一部分)
  7. GCD(Grand Central Dispatch)
  8. java 多线程并容器实现_跟着实例学习java多线程9-并发容器
  9. Python 第十一篇:开发堡垒机
  10. QT下添加*.qrc(图标Icon、图像)资源
  11. 预印本(Preprint)及出版商的投稿政策
  12. [每日一题] OCP1z0-047 :2013-07-15 drop column
  13. oracle索引用不了,oracle使用索引与不使用索引的性能详析
  14. linux wc -l命令,Linux wc sort和uniq的用法
  15. 数据结构-------图(最通俗易懂的文章)(一)图的数据结构及其遍历
  16. 航天信息上传服务器地址,金税盘上传参数设置怎么设置?
  17. 英语语法(简单句型篇)
  18. jsp高级DOM和BOM
  19. css 让图标上下跳,使用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果
  20. python入门(三)列表、元组、range()、字典

热门文章

  1. quartz - 宕机后的设置
  2. 运算(与运算)和|运算(或运算)
  3. 基于Haar + adaboost人脸识别
  4. vue中将字符转换成数字的简单做法
  5. oracle科目余额表的查询,科目余额表查询 · selfaccount-services · 看云
  6. 2019年架构软考论文押题(二)
  7. ios swiftui_ios swiftui中的本地化
  8. 区块链技术之P2P网络(二)
  9. 拖拽功能之水平拖动图片
  10. 初识Nginx四:nginx代理服务器配置缓存