学习记录--修改uboot开机logo---正点原子论坛第一次编译是freescale.bmp,正点原子的图标,安装ncurses库后再编译是denx.bmp不知道为什么

①uboot的开机logo图片存放在tools/logos下,将自己要添加的开机图片(bmp格式,且色彩深度为8bit,大小应小于显示屏像素大小)添加到此文件夹下。

②修改logo的图片格式,并设置色深为8bit,shell脚本如下
#输入sudo apt-get install netpbm,安装Netpbm工具包
#使用方法: (脚本名)  ( 待处理的JPG图片名)  (输出文件名)
#!/bin/sh
jpegtopnm $1 | ppmquant 31 | ppmtobmp -bpp 8 > $2



③修改tools文件夹下的Makefile,找到
ifneq ($(wildcard $(srctree)/$(src)/logos/$(BOARD).bmp),)
LOGO_BMP= $(srctree)/$(src)/logos/$(BOARD).bmp
并将LOGO_BMP修改为:
LOGO_BMP= $(srctree)/$(src)/logos/cr2.bmp(此处为自己的添加的bmp图片)

④编译下载


补充:tools/bmp_logo.c文件是将要显示的bmp文件转换成数组存放到include/bmp_logo_data.h中,图片的长宽高等信息存放在include/bmp_logo.h中



学习记录-修改uboot开机logo-OpenEdv-开源电子网

imx6ull启动的时候默认显示uboot自带的开机画面,按照如下步骤修改为我们想要的开机画面,如下:

首先去掉液晶屏右上角的打印信息

 

修改/drivers/video/cfb_console.c注释掉以下代码

  准备需要显示的图片,使用windows的画图工具转换为256色bmp格式,注意分辨率一定要小于屏幕的分辨率,大小在100K以内,否则会显示不正常。

  将准备好的图片复制到/tools/logos/目录下,直接替换目录下的freescale.bmp,或者使用自己图片的名字,比如我的图片的名字为YS.bmp,修改/tools/Makefile文件,如下:

 编译运行

接下来要使图片居中显示,修改drivers/video/cfb_console.c,在函数static void *video_logo(void)中修改

splash_get_pos(&video_logo_xpos, &video_logo_ypos);

//这里是增加的代码,设置图片居中显示

if(video_logo_xpos==0&&video_logo_ypos==0)     

{

           video_logo_xpos= (VIDEO_VISIBLE_COLS - BMP_LOGO_WIDTH)>>1;

           video_logo_ypos= (VIDEO_VISIBLE_ROWS - BMP_LOGO_HEIGHT)>>1;

     }

 编译运行

 修改imx6ull开机LOGO(一) - mcu1234 - 博客园

Uboot Logo位置居中设置和屏蔽uboot的info

麻烦再请教一下在uboot中有以下函数,这个不也是设置位置的吗,为什么不生效。
static void lcd_logo(void)
{
        lcd_logo_plot(0, 0);

#ifdef CONFIG_LCD_INFO
        lcd_set_col(LCD_INFO_X / VIDEO_FONT_WIDTH);
        lcd_set_row(LCD_INFO_Y / VIDEO_FONT_HEIGHT);
        lcd_show_board_info();
#endif /* CONFIG_LCD_INFO */
}

U-Boot启动显示的logo不是在这个函数中处理的,你找到LCD初始化那块看看,分析下是怎么在启动过程中显示logo的

Uboot Logo位置居中设置和屏蔽uboot的info-OpenEdv-开源电子网

U-boot LOGO修改:
 
如何更改Uboot的启动logo:
1、进入tools目录,在该目录下你会看到一个叫logos的目录,里面存的是logo图标,
可以自己添加logo图标到该目录,注意需256色的。
2、打开tools目录下的Makefile文件,在第40行至48行间,有如下一段代码:
ifeq ($(LOGO_BMP),)
LOGO_BMP= logos/denx.bmp
endif
ifeq ($(VENDOR),denx)
LOGO_BMP= logos/denx.bmp
3、"denx.bmp"即为logo图标。你可以用你自己喜欢的图标来代替他,,
4、在common目录下,打开lcd.c文件,可以改变logo的位置,该坐标函数为 bitmap_plot (0, 0);
改变x,y的数字,来改变logo的显示位置。该函数在lcd.c代码的857行
5、进入u-boot根目录,执行make即可!
自己版本的uboot源码位置是打开tools目录下的Makefile文件,在第200行至211行间,有如下一段代码:

# 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

endif
版权声明:本文为CSDN博主「猩猩の點燈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34968572/article/details/105120897

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值