uboot的开机logo图片是存放在uboot源码的tools/logos下的,并且对图片的格式是有要求的,必须为bmp格式,且色彩深度为8bit,大小应小于显示屏像素大小。按如下步骤即可在uboot中添加自己的开机logo
1、修改logo的图片格式,并设置色深为8bit
使用linux下的图片工具转成8位的bmp文件:
第一步:安装Netpbm工具包
sudo apt-get install netpbm
第二步:将jpg格式转成指定格式的bmp图片,例如把logo.jpg图片转成logo.bmp
jpegtopnm logo.jpg | ppmquant 31 | ppmtobmp -bpp 8 > logo.bmp
也可以做成个脚本,方便使用。使用方法:(脚本名)( 待处理的JPG图片名)(输出文件名)
2、将图片添加到 tools/logos下
3、修改tools文件夹下Makefile中的LOGO_BMP定义
ifneq ($(wildcard $(srctree)/$(src)/logos/$(BOARD).bmp),)
LOGO_BMP= $(srctree)/$(src)/logos/$(BOARD).bmp
并将LOGO_BMP修改为:
LOGO_BMP= $(srctree)/$(src)/logos/logo.bmp(此处为自己的添加的bmp图片)
4、去掉默认打印
imx6ull启动的时候默认显示uboot自带的开机画面,需要去掉液晶屏右上角的打印信息
修改/drivers/video/cfb_console.c注释掉以下代码
5、编译配置
第一步:打开板卡的头文件 include/configs/xxx.h 中的 CONFIG_VIDEO 和 CONFIG_VIDEO_BMP_LOGO 宏。如果只定义CONFIG_VIDEO_LOGO,没有定义CONFIG_VIDEO_BMP_LOGO就会使用LINUX_LOGO显示,用到include/linux_logo.h中定义的数组
第二步:编译u-boot,此时会执行tools目录下的 bmp_logo程序(该程序的源文件为tools/bmp_logo.c),作用是将要显示的bmp文件转换成数组存放到 include/bmp_logo_data.h 中,图片的长宽高等信息存放在include/bmp_logo.h中