全志V3s学习记录(4)uboot:开机logo
文章目录
- 一、制作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.h
或bmp_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相关推荐
- 【目录】全志V3S学习记录
全志V3s从一次接触到现在已经有两年了!现在复盘一下! 使用的硬件开发板有: Lichee zero Lichee zero dock CherryPi PC V3s Mangopi v3s SINV ...
- 全志V3s学习记录(5)uboot:传参(boot.scr)参数配置(script.bin)
文章目录 一.boot.scr的简介与制作 1.1 BSP内核配置 1.2 主线内核配置 1.3 使用mkimage工具 使用mkimage生成boot.scr 拷贝boot.scr到启动卡的第一分区 ...
- 全志V3s学习记录(1)资料汇总
文章目录 一.相关网站论坛 二.开发环境分类 2.1 Camdriod官方SDK 2.2 主线Uboot + Bsp内核 2.3 主线Uboot + 主线Linux 三.芯片资源介绍 3.1 Lich ...
- 全志V3s学习记录(13)OV2640的使用
文章目录 硬件分析 一.修改设备树 二.增加Linux驱动配置 三.构建Buildroot文件系统 使用I2c工具调试 意外收获 RAW看图软件 7yuv 测试 参考:https://blog.51c ...
- 全志V3s学习记录--ESP8089的使用
文章目录 一.构建一些Networking相关的工具 二.STA模式--连接WiFi 2.1 加载模块 2.2 打开wlan0 2.3 连接WiFi(wpa_supplicant) 第一步:编辑`vi ...
- U-boot开机logo的制作方法
此文是对早期文章<U-boot开机logo的制作方法> 的更新. -------------------------------------- 如果在uboot中实现了LCD ...
- 全志v3s学习笔记(1)——基础简介及资料
资料: 荔枝派资料下载站 荔枝派Zero 用户指南 荔枝派github 荔枝派中文论坛 荔枝派Zero指南-看云 坑网 开发环境分类: (参考:Zero的开发环境分类) 1.Camdriod 官方SD ...
- u-boot开机logo修改及kernel启动动画去除
1.开机logo: 替换:MfgTool-MYIMX6A9-L4.1.15\Profiles\Linux\OS Firmware\image-L4.1.15-uboot\my_logo.bmp 图片要 ...
- 全志v3s学习笔记(8)——TF卡分区及烧录
一.TF卡分区: sudo fdisk -l # 首先查看电脑上已插入的TF卡的设备号(一般为 /dev/sdb1,下面以/dev/sdb1为例) sudo umount /dev/sdb1 # 若自 ...
最新文章
- 【深度学习】深度学习安防的探索与实践
- 008 RestFul API 拦截器
- Maven 项目的 org.junit.Test 获取不到(转载)
- python使用ssh 中文_Python3制作简易SSH登录工具
- 14 CO配置-控制-内部订单-维护定单编号范围
- HTML5: 两个viewport的故事(第一部分)
- GCD(Grand Central Dispatch)
- java 多线程并容器实现_跟着实例学习java多线程9-并发容器
- Python 第十一篇:开发堡垒机
- QT下添加*.qrc(图标Icon、图像)资源
- 预印本(Preprint)及出版商的投稿政策
- [每日一题] OCP1z0-047 :2013-07-15 drop column
- oracle索引用不了,oracle使用索引与不使用索引的性能详析
- linux wc -l命令,Linux wc sort和uniq的用法
- 数据结构-------图(最通俗易懂的文章)(一)图的数据结构及其遍历
- 航天信息上传服务器地址,金税盘上传参数设置怎么设置?
- 英语语法(简单句型篇)
- jsp高级DOM和BOM
- css 让图标上下跳,使用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果
- python入门(三)列表、元组、range()、字典