此文是对早期文章《U-boot开机logo的制作方法》  的更新。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      如果在uboot中实现了LCD等显示设备的驱动,uboot在启动的时候会在屏幕的左上角显示一个logo,如下图:
       这个logo默认情况(只定义了CONFIG_VIDEO_LOGO)是如上图所示的企鹅(如果还定义了CONFIG_VIDEO_BMP_LOGO会是denx的标志),这个是存在于uboot代码中的一个头文件(include/video_logo.h或 bmp_logo.h),如果大家看了这个头文件,发现这个是一个巨大的结构体,其中保存着图片每个像素点的色彩数据。
       这样如果要更换这个默认的logo岂不是自己要生成这样一个数据结构体才行?答案是肯定的。
       但是这样一个结构体要怎么生成呢?这个uboot源码早就为我们想好了,方法其实很简单:
一、准备一张jpeg图片,通过命令行处理为8bit  BMP图片。
       处理脚本如下:
  1. #!/bin/sh
  2. #install Netpbm first
  3. jpegtopnm $1 | ppmquant 31 | ppmtobmp -bpp 8 > $2

使用方法: (脚本名)  ( 待处理的JPG图片名)  (输出文件名)

     之所以用jpeg转bmp的办法,是通过实验证明这种方面可行且简便。
     图片的大小不一定要和原来一样,你觉得合适就好。
二、将bmp文件放入/tools/logos中,并修改/tools/下的Makefile
  1. # Generated LCD/video logo
  2. LOGO_H = $(OBJTREE)/include/bmp_logo.h
  3. LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
  4. LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
  5. ifeq ($(LOGO_BMP),)
  6. LOGO_BMP= logos/denx.bmp
  7. endif
  8. ifeq ($(VENDOR),atmel)
  9. LOGO_BMP= logos/atmel.bmp
  10. endif
  11. ifeq ($(VENDOR),esd)
  12. LOGO_BMP= logos/esd.bmp
  13. endif
  14. ifeq ($(VENDOR),freescale)
  15. LOGO_BMP= logos/freescale.bmp
  16. endif
  17. ifeq ($(VENDOR),ronetix)
  18. LOGO_BMP= logos/ronetix.bmp
  19. endif
  20. ifeq ($(VENDOR),syteco)
  21. LOGO_BMP= logos/syteco.bmp
  22. endif

红色字体,替换为你制作的bmp文件名。

三、确认配置文件
一定要定义
  1. #define CONFIG_VIDEO_LOGO
  2. #define CONFIG_VIDEO_BMP_LOGO
编译的时候,你的bmp文件会被tools/bmp_logo.c编译出的工具bmp_logo
制作成include/bmp_logo.h,并编译进uboot中。
四、重新编译u-boot即可得到显示新logo的u-boot。
效果如下图所示:
由于是8bit色深,颜色就有点怪~
如果你看了drivers/video/cfb_console.c源码,你可能会发现还有一个splashimage的东东可以显示。是的,如果你有张非压缩的BMP图片放在了Nor Flash,你可以在ENV中设置splashimage和splashpos告诉uboot读取和显示的位置。启动的时候,uboot就会显示这个bmp图片。
但是,原生的uboot是只支持Nor Flash和内核的读取的,如果你的图片放在nand flash、SD卡或者SPI、I2C 接口flash中,你可以自己实现将图片文件读取到内存中,然后再显示splash。实现起来并不复杂,关键是使用相关的API函数来读取数据。

U-boot开机logo的制作方法相关推荐

  1. android 开机动画尺寸,Android开机Logo动画制作

    开机Logo制作 1.准备Logo图片 准备一张符合尺寸要求(例如:1280x720)的图片,最好是png或jgp. 2.用Hitool工具制作镜像文件 海思芯片使用的是Hitool工具,打开Hito ...

  2. bootanimation文件名_安卓开机动画的制作方法

    有好多的朋友对于手机界面字体都有很高的要求,一定要选自己看的最喜欢的,但是像安卓手机的开机动画有些朋友也不喜欢,想把让改掉但是不会制作怎么办,这不是不能改的,今天小编就来教大家更改安卓开机动画,因为还 ...

  3. 迅为4412开发板驱动-linux 开机 logo 的修改方法

    文档主要介绍 4412 开发板的内核启动 LOGO,请注意如果要修改的屏幕分辨率小于480x640,请参考另外的独立文档"iTOP-4412-内核-4.3 寸屏幕-logo 修改_V1.0& ...

  4. 制作Linux内核开机Logo

    一.前言 有关Linux开机Logo的制作,网上已经有很多例子了,方法都差不多.因为以前用的LCD屏幕分辨率为320*240,现在自己配置了一个480*640的竖屏当横屏用,为测试驱动是否配置成功,我 ...

  5. Tiny6410开机logo制作

    开机logo的制作比较简单 ubuntu下转换PPM: sudo get-apt install netpbm root@emboard:~# apt-get install netpbm Readi ...

  6. 嵌入式开发板更换开机LOGO

    1 先制作好想要的开机图片,此图片有是三个要求,像素是要和屏幕分辨率一样.位深度为 24.图片格式为bmp.我的屏幕是7寸的,所以我设置的分辨率为800*480.如下图 bmp格式图片的信息. 2利用 ...

  7. logo设计的方法和技巧

    一.什么是LOGO 翻开字典,我们可以找到这样的解释:" logo: n.标识语 ".在电脑领域而言,LOGO是标志.徽标的意思.而本站主要所收集的LOGO,是互联网上各个网站用来 ...

  8. LCD驱动移植之开机logo

    移植环境 BootLoader:u-boot-1.1.6 kernel:linux-2.6.30.4 CPU:s3c2440 开发板:TQ2440 LCD:TFT480*272 参考资料:<天嵌 ...

  9. 制作Linux嵌入式系统开机LOGO(图片)

    内核:linux-2.6.22.6 ubuntu:Ubuntu 9.10 开发板: JZ2440(方法通用,不局限于JZ2440) 目的: JZ2440开机logo默认是一只可爱的小企鹅.我们把它替换 ...

最新文章

  1. dataframe 按条件删行_根据列值删除Pandas中的DataFrame行
  2. 技嘉主板万能网卡驱动_技嘉Z490系列主板来袭:16相供电/钽电容,堆料更进一步...
  3. 剑指offer-合并链表
  4. 李开复:年轻人该比谁更拼命吗?
  5. 薪资是跳出来的,不是涨出来的!
  6. poj3187 穷竭搜索 挑战程序设计大赛
  7. 关于C语言中运算符优先级的一次错误
  8. 极简的js点击组图切换效果
  9. 根据深度优先算法(DFS)和标记数组求全排列
  10. 摄像头视频画面接入,使用iframe标签嵌入到页面中(海康威视、萤石)
  11. 在Maya和ZBrush中制作战士模型
  12. 税务Ukey如何进行批量开票
  13. 上海地铁一号线各车站换乘和时刻表
  14. 【ESP32 S3开发】在Arduino IDE中使用PSRAM
  15. 学习Matlab的第一个程序——用二分法求根
  16. CSS 样式属性大全
  17. vue-cli树形结构/组织结构
  18. c语言编译器能不能找出逻辑错误,《C Primer Plus》- 第二章 C语言概述
  19. 2020年有寓意的领证日期_2020年有寓意的领证日期
  20. Android学习之 两个Fragment之间传递信息

热门文章

  1. 1.leetcode
  2. 武汉星起航跨境——中东电商蓬勃发展,亚马逊中东站点如何发货?
  3. Worthington 核糖核酸酶 T1解决方案
  4. 施密特宣布离开谷歌董事会! Facebook却被联邦政府塞高管进来?
  5. 一个程序员的丰功伟绩
  6. spss主成分综合得分_spss主成分分析怎么算出综合得分
  7. HDU6848改编题(弱化)——客星璀璨之夜(stars)
  8. 新家急需入住怎么快速除甲醛,屋里去甲醛最快的方法
  9. UPS不间断电源除尘技巧分析
  10. unity 摄像机镜头跟随鼠标拖拽