我是靠谱客的博主 无情悟空,最近开发中收集的这篇文章主要介绍全志v3s学习笔记(3)——u-boot开机logo替换一、图片处理为BMP格式二、修改开机LOGO三、logo居中四、uboot启动界面的版本信息隐藏,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
一、图片处理为BMP格式
直接使用PS制作一张屏幕像素大小的图片(例如:480*272
)
或者准备一张jpeg图片,通过命令行处理为8bit BMP
图片,命名为mylogo.bmp
vim to_bmp.sh
chmod 777 to_bmp.sh
./to_bmp.sh [待处理的JPG图片名] [输出文件名]
to_bmp.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文件
mylogo.bmp
放入uboot/tools/logos
中,并修改/tools/下的Makefile
- bmp文件会被
tools/bmp_logo.c
编译出的工具bmp_logo
制作成include/bmp_logo.h
# 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
endif
endif # !LOGO_BMP
增加LOGO显示配置:
在 include/configs/sun8i.h
�6�7 中加入两个宏定义:
/*
* 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)
中修改:
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的版本信息。
#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
版权声明:本文为CSDN博主「丨匿名用户丨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/p1279030826/article/details/113481100
最后
以上就是无情悟空为你收集整理的全志v3s学习笔记(3)——u-boot开机logo替换一、图片处理为BMP格式二、修改开机LOGO三、logo居中四、uboot启动界面的版本信息隐藏的全部内容,希望文章能够帮你解决全志v3s学习笔记(3)——u-boot开机logo替换一、图片处理为BMP格式二、修改开机LOGO三、logo居中四、uboot启动界面的版本信息隐藏所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复