我是靠谱客的博主 无情悟空,这篇文章主要介绍全志v3s学习笔记(3)——u-boot开机logo替换一、图片处理为BMP格式二、修改开机LOGO三、logo居中四、uboot启动界面的版本信息隐藏,现在分享给大家,希望可以做个参考。

一、图片处理为BMP格式

直接使用PS制作一张屏幕像素大小的图片(例如:480*272
或者准备一张jpeg图片,通过命令行处理为8bit BMP图片,命名为mylogo.bmp

复制代码
1
2
3
4
vim to_bmp.sh chmod 777 to_bmp.sh ./to_bmp.sh [待处理的JPG图片名] [输出文件名]

to_bmp.sh

复制代码
1
2
3
4
#!/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
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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 中加入两个宏定义:

复制代码
1
2
3
4
5
6
7
8
9
10
/* * 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下:

复制代码
1
2
3
4
5
#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)中修改:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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的版本信息。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#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启动界面内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部